@@ -11,20 +11,29 @@ try {
1111describe ( 'vm' , { skip : ! vm } , ( ) => {
1212 const string = 'Hello, \u2200'
1313 const u = Uint8Array . of ( 0x48 , 0x65 , 0x6c , 0x6c , 0x6f , 0x2c , 0x20 , 0xe2 , 0x88 , 0x80 )
14+ const ctx = { TextDecoder, TextEncoder }
1415
1516 test ( 'TextEncoder' , ( t ) => {
16- const ctx = { TextEncoder }
1717 const outer = new TextEncoder ( ) . encode ( string )
1818 const inner = vm . runInNewContext ( `new TextEncoder().encode(${ JSON . stringify ( string ) } )` , ctx )
1919 t . assert . deepStrictEqual ( outer , u )
2020 t . assert . deepStrictEqual ( inner , u )
2121 } )
2222
23- test ( 'TextDecoder' , ( t ) => {
24- const ctx = { TextDecoder }
23+ test ( 'TextDecoder + Uint8Array' , ( t ) => {
2524 const outer = new TextDecoder ( ) . decode ( u )
2625 const inner = vm . runInNewContext ( `new TextDecoder().decode(Uint8Array.of(${ u . join ( ',' ) } ))` , ctx )
2726 t . assert . deepStrictEqual ( outer , string )
2827 t . assert . deepStrictEqual ( inner , string )
2928 } )
29+
30+ test ( 'TextDecoder + ArrayBuffer' , ( t ) => {
31+ const outer = new TextDecoder ( ) . decode ( u . buffer )
32+ const inner = vm . runInNewContext (
33+ `new TextDecoder().decode(Uint8Array.of(${ u . join ( ',' ) } ).buffer)` ,
34+ ctx
35+ )
36+ t . assert . deepStrictEqual ( outer , string )
37+ t . assert . deepStrictEqual ( inner , string )
38+ } )
3039} )
0 commit comments