diff --git a/lib/internal/webstreams/readablestream.js b/lib/internal/webstreams/readablestream.js index 78313bd03c1a..41ce73ae156e 100644 --- a/lib/internal/webstreams/readablestream.js +++ b/lib/internal/webstreams/readablestream.js @@ -1438,6 +1438,11 @@ function createReadableStreamState() { } function readableStreamFromIterable(iterable) { + if (iterable === null || + (typeof iterable !== 'object' && typeof iterable !== 'function')) { + throw new ERR_ARG_NOT_ITERABLE(iterable); + } + let stream; const iteratorGetter = iterable[SymbolAsyncIterator] ?? iterable[SymbolIterator]; if (iteratorGetter == null || typeof iteratorGetter !== 'function') { diff --git a/test/wpt/status/streams.json b/test/wpt/status/streams.json index 5be444999b00..65ba991136b5 100644 --- a/test/wpt/status/streams.json +++ b/test/wpt/status/streams.json @@ -8,13 +8,6 @@ "readable-streams/cross-realm-crash.window.js": { "skip": "Browser-specific test" }, - "readable-streams/from.any.js": { - "fail": { - "expected": [ - "ReadableStream.from throws on invalid iterables; specifically a string" - ] - } - }, "readable-streams/owning-type-message-port.tentative.any.js": { "fail": { "note": "Readable streams with type owning are not yet supported",