Skip to content

Commit 83a0fb3

Browse files
authored
Skip the creation of a transform stream in fetch (#3093)
1 parent 2e128c1 commit 83a0fb3

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

lib/web/fetch/index.js

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)