@@ -877,7 +877,8 @@ describe('Common implementation mistakes', () => {
877877 // text-encoding is wrong, naive whatwg-encoding usage fails too
878878 // https://webidl.spec.whatwg.org/#dfn-get-buffer-source-copy
879879 // 7. If IsDetachedBuffer(jsArrayBuffer) is true, then return the empty byte sequence.
880- test ( 'decoding detached returns empty data' , { skip : ! globalThis . MessageChannel } , ( t ) => {
880+ const canDetach = ArrayBuffer . prototype . transfer || globalThis . MessageChannel
881+ test ( 'decoding detached returns empty data' , { skip : ! canDetach } , ( t ) => {
881882 for ( const fatal of [ false , true ] ) {
882883 const decoder = new TextDecoder ( 'utf-8' , { fatal } )
883884 const a = new ArrayBuffer ( 2 )
@@ -889,7 +890,12 @@ describe('Common implementation mistakes', () => {
889890 // second time
890891 t . assert . strictEqual ( decoder . decode ( a ) , '$%' )
891892 t . assert . strictEqual ( decoder . decode ( b ) , '$%' )
892- new MessageChannel ( ) . port1 . postMessage ( a , [ a ] )
893+ if ( a . transfer ) {
894+ a . transfer ( )
895+ } else {
896+ new MessageChannel ( ) . port1 . postMessage ( a , [ a ] )
897+ }
898+
893899 // but not anymore
894900 t . assert . strictEqual ( decoder . decode ( a ) , '' )
895901 t . assert . strictEqual ( decoder . decode ( b ) , '' )
0 commit comments