summaryrefslogtreecommitdiff
path: root/ext/web/06_streams.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/web/06_streams.js')
-rw-r--r--ext/web/06_streams.js9
1 files changed, 8 insertions, 1 deletions
diff --git a/ext/web/06_streams.js b/ext/web/06_streams.js
index 361e5e055..c783b9518 100644
--- a/ext/web/06_streams.js
+++ b/ext/web/06_streams.js
@@ -2616,6 +2616,7 @@
assert(typeof cloneForBranch2 === "boolean");
const reader = acquireReadableStreamDefaultReader(stream);
let reading = false;
+ let readAgain = false;
let canceled1 = false;
let canceled2 = false;
/** @type {any} */
@@ -2634,6 +2635,7 @@
function pullAlgorithm() {
if (reading === true) {
+ readAgain = true;
return resolvePromiseWith(undefined);
}
reading = true;
@@ -2641,7 +2643,7 @@
const readRequest = {
chunkSteps(value) {
queueMicrotask(() => {
- reading = false;
+ readAgain = false;
const value1 = value;
const value2 = value;
@@ -2663,6 +2665,11 @@
value2,
);
}
+
+ reading = false;
+ if (readAgain === true) {
+ pullAlgorithm();
+ }
});
},
closeSteps() {