@@ -6,10 +6,10 @@ const {
66 FunctionPrototypeBind,
77 FunctionPrototypeCall,
88 ObjectDefineProperties,
9+ ObjectSetPrototypeOf,
910 PromisePrototypeThen,
1011 PromiseResolve,
1112 PromiseReject,
12- ReflectConstruct,
1313 Symbol,
1414 SymbolToStringTag,
1515} = primordials ;
@@ -326,55 +326,63 @@ ObjectDefineProperties(WritableStream.prototype, {
326326 [ SymbolToStringTag ] : getNonWritablePropertyDescriptor ( WritableStream . name ) ,
327327} ) ;
328328
329- function TransferredWritableStream ( ) {
330- return ReflectConstruct (
331- function ( ) {
332- markTransferMode ( this , false , true ) ;
333- this [ kType ] = 'WritableStream' ;
334- this [ kState ] = {
335- close : createDeferredPromise ( ) ,
336- closeRequest : {
337- promise : undefined ,
338- resolve : undefined ,
339- reject : undefined ,
340- } ,
341- inFlightWriteRequest : {
342- promise : undefined ,
343- resolve : undefined ,
344- reject : undefined ,
345- } ,
346- inFlightCloseRequest : {
347- promise : undefined ,
348- resolve : undefined ,
349- reject : undefined ,
350- } ,
351- pendingAbortRequest : {
352- abort : {
353- promise : undefined ,
354- resolve : undefined ,
355- reject : undefined ,
356- } ,
357- reason : undefined ,
358- wasAlreadyErroring : false ,
359- } ,
360- backpressure : false ,
361- controller : undefined ,
362- state : 'writable' ,
363- storedError : undefined ,
364- writeRequests : [ ] ,
365- writer : undefined ,
366- transfer : {
367- promise : undefined ,
368- port1 : undefined ,
369- port2 : undefined ,
370- readable : undefined ,
371- } ,
372- } ;
373- this [ kIsClosedPromise ] = createDeferredPromise ( ) ;
374- this [ kControllerErrorFunction ] = ( ) => { } ;
329+ function InternalTransferredWritableStream ( ) {
330+ markTransferMode ( this , false , true ) ;
331+ this [ kType ] = 'WritableStream' ;
332+ this [ kState ] = {
333+ close : createDeferredPromise ( ) ,
334+ closeRequest : {
335+ promise : undefined ,
336+ resolve : undefined ,
337+ reject : undefined ,
338+ } ,
339+ inFlightWriteRequest : {
340+ promise : undefined ,
341+ resolve : undefined ,
342+ reject : undefined ,
375343 } ,
376- [ ] , WritableStream ) ;
344+ inFlightCloseRequest : {
345+ promise : undefined ,
346+ resolve : undefined ,
347+ reject : undefined ,
348+ } ,
349+ pendingAbortRequest : {
350+ abort : {
351+ promise : undefined ,
352+ resolve : undefined ,
353+ reject : undefined ,
354+ } ,
355+ reason : undefined ,
356+ wasAlreadyErroring : false ,
357+ } ,
358+ backpressure : false ,
359+ controller : undefined ,
360+ state : 'writable' ,
361+ storedError : undefined ,
362+ writeRequests : [ ] ,
363+ writer : undefined ,
364+ transfer : {
365+ readable : undefined ,
366+ port1 : undefined ,
367+ port2 : undefined ,
368+ promise : undefined ,
369+ } ,
370+ } ;
371+
372+ this [ kIsClosedPromise ] = createDeferredPromise ( ) ;
377373}
374+
375+ ObjectSetPrototypeOf ( InternalTransferredWritableStream . prototype , WritableStream . prototype ) ;
376+ ObjectSetPrototypeOf ( InternalTransferredWritableStream , WritableStream ) ;
377+
378+ function TransferredWritableStream ( ) {
379+ const stream = new InternalTransferredWritableStream ( ) ;
380+
381+ stream . constructor = WritableStream ;
382+
383+ return stream ;
384+ }
385+
378386TransferredWritableStream . prototype [ kDeserialize ] = ( ) => { } ;
379387
380388class WritableStreamDefaultWriter {
0 commit comments