diff --git a/ext/web/09_file.js b/ext/web/09_file.js index 79a9c41b29..94981a2f42 100644 --- a/ext/web/09_file.js +++ b/ext/web/09_file.js @@ -366,7 +366,11 @@ class Blob { const { value, done } = await AsyncGeneratorPrototypeNext( partIterator, ); - if (done) return controller.close(); + if (done) { + controller.close(); + controller.byobRequest?.respond(0); + return; + } if (TypedArrayPrototypeGetByteLength(value) > 0) { return controller.enqueue(value); } diff --git a/tools/wpt/expectation.json b/tools/wpt/expectation.json index 19075e2244..2eb165dead 100644 --- a/tools/wpt/expectation.json +++ b/tools/wpt/expectation.json @@ -4414,8 +4414,16 @@ "response-consume-empty.any.worker.html": [ "Consume empty FormData response body as text" ], - "response-consume-stream.any.html": false, - "response-consume-stream.any.worker.html": false, + "response-consume-stream.any.html": [ + "Read text response's body as readableStream with mode=byob", + "Read URLSearchParams response's body as readableStream with mode=byob", + "Read array buffer response's body as readableStream with mode=byob" + ], + "response-consume-stream.any.worker.html": [ + "Read text response's body as readableStream with mode=byob", + "Read URLSearchParams response's body as readableStream with mode=byob", + "Read array buffer response's body as readableStream with mode=byob" + ], "response-init-contenttype.any.html": true, "response-init-contenttype.any.worker.html": true, "response-static-json.any.html": true, @@ -5770,8 +5778,8 @@ "Blob-slice-overflow.any.worker.html": true, "Blob-slice.any.html": true, "Blob-slice.any.worker.html": true, - "Blob-stream.any.html": false, - "Blob-stream.any.worker.html": false, + "Blob-stream.any.html": true, + "Blob-stream.any.worker.html": true, "Blob-text.any.html": true, "Blob-text.any.worker.html": true, "Blob-in-worker.worker.html": true,