summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/fetch/22_body.js4
-rw-r--r--ext/web/06_streams.js10
2 files changed, 14 insertions, 0 deletions
diff --git a/ext/fetch/22_body.js b/ext/fetch/22_body.js
index 97a8a8db1..6e9a57447 100644
--- a/ext/fetch/22_body.js
+++ b/ext/fetch/22_body.js
@@ -28,6 +28,8 @@
const {
isReadableStreamDisturbed,
errorReadableStream,
+ readableStreamClose,
+ readableStreamDisturb,
createProxy,
ReadableStreamPrototype,
} = globalThis.__bootstrap.streams;
@@ -92,6 +94,8 @@
if (consumed) {
this.streamOrStatic = new ReadableStream();
this.streamOrStatic.getReader();
+ readableStreamDisturb(this.streamOrStatic);
+ readableStreamClose(this.streamOrStatic);
} else {
this.streamOrStatic = new ReadableStream({
start(controller) {
diff --git a/ext/web/06_streams.js b/ext/web/06_streams.js
index bd1714964..bd3b79149 100644
--- a/ext/web/06_streams.js
+++ b/ext/web/06_streams.js
@@ -1153,6 +1153,15 @@
reader[_closedPromise].resolve(undefined);
}
+ /**
+ * @template R
+ * @param {ReadableStream<R>} stream
+ * @returns {void}
+ */
+ function readableStreamDisturb(stream) {
+ stream[_disturbed] = true;
+ }
+
/** @param {ReadableStreamDefaultController<any>} controller */
function readableStreamDefaultControllerCallPullIfNeeded(controller) {
const shouldPull = readableStreamDefaultcontrollerShouldCallPull(
@@ -5910,6 +5919,7 @@
createProxy,
writableStreamClose,
readableStreamClose,
+ readableStreamDisturb,
readableStreamForRid,
getReadableStreamRid,
Deferred,