@@ -1080,23 +1080,17 @@ function fetchFinale (fetchParams, response) {
10801080 if ( internalResponse . body == null ) {
10811081 processResponseEndOfBody ( )
10821082 } else {
1083+ // mcollina: all the following steps of the specs are skipped.
1084+ // The internal transform stream is not needed.
1085+ //
10831086 // 1. Let transformStream be a new TransformStream.
10841087 // 2. Let identityTransformAlgorithm be an algorithm which, given chunk, enqueues chunk in transformStream.
10851088 // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm and flushAlgorithm
10861089 // set to processResponseEndOfBody.
1087- const transformStream = new TransformStream ( {
1088- start ( ) { } ,
1089- transform ( chunk , controller ) {
1090- controller . enqueue ( chunk )
1091- } ,
1092- flush : processResponseEndOfBody
1093- } )
1094-
10951090 // 4. Set internalResponse’s body’s stream to the result of internalResponse’s body’s stream piped through transformStream.
1096- internalResponse . body . stream . pipeThrough ( transformStream )
10971091
10981092 const byteStream = new ReadableStream ( {
1099- readableStream : transformStream . readable ,
1093+ readableStream : internalResponse . body . stream ,
11001094 async start ( ) {
11011095 this . _bodyReader = this . readableStream . getReader ( )
11021096 } ,
@@ -1105,7 +1099,12 @@ function fetchFinale (fetchParams, response) {
11051099 const { done, value } = await this . _bodyReader . read ( )
11061100
11071101 if ( done ) {
1108- queueMicrotask ( ( ) => readableStreamClose ( controller ) )
1102+ queueMicrotask ( ( ) => {
1103+ readableStreamClose ( controller )
1104+
1105+ // Added to in lieu of steps 1-4 of the spec
1106+ processResponseEndOfBody ( )
1107+ } )
11091108 break
11101109 }
11111110
0 commit comments