diff --git a/lib/internal/webstreams/readablestream.js b/lib/internal/webstreams/readablestream.js index 0df8f7aa7f6f35..588f65f64b9834 100644 --- a/lib/internal/webstreams/readablestream.js +++ b/lib/internal/webstreams/readablestream.js @@ -1939,6 +1939,14 @@ function readableStreamError(stream, error) { } } +function readableStreamHasReader(stream) { + const { + reader, + } = stream[kState]; + + return reader != null; +} + function readableStreamHasDefaultReader(stream) { const { reader, @@ -2230,6 +2238,10 @@ function readableStreamDefaultControllerShouldCallPull(controller) { !controller[kState].started) return false; + if (!readableStreamHasReader(stream)) { + return false; + } + if (isReadableStreamLocked(stream) && readableStreamGetNumReadRequests(stream)) { return true; @@ -2466,6 +2478,11 @@ function readableByteStreamControllerShouldCallPull(controller) { !controller[kState].started) { return false; } + + if (!readableStreamHasReader(stream)) { + return false; + } + if (readableStreamHasDefaultReader(stream) && readableStreamGetNumReadRequests(stream) > 0) { return true;