deno
deno copied to clipboard
fix(ext/web): ReadableStream.from() ignores null Symbol.asyncIterator
If @@asyncIterator is null or undefined, it should ignores and fallback to @@iterator.
Tests have been merged into WPT. https://github.com/web-platform-tests/wpt/pull/46374
The proposal of ReadableStream.from uses TC39 GetIterator and GetMethod within it.
GetMethod treats null as undefined.
So if @@asyncIterator is null it should be ignored and fallback to @@iterator.
> deno eval "ReadableStream.from({ [Symbol.asyncIterator]: null, [Symbol.iterator]: () => ({ next: () => ({ done: true }) }) }).pipeTo(new WritableStream())"
error: Uncaught (in promise) TypeError: obj[SymbolAsyncIterator] is not a function
ReadableStream.from({ [Symbol.asyncIterator]: null, [Symbol.iterator]: () => ({ next: () => ({ done: true }) }) }).pipeTo(new WritableStream())
^
at getIterator (ext:deno_web/06_streams.js:5105:38)
at Function.from (ext:deno_web/06_streams.js:5207:22)
at file:///D:/work/js/deno/tests/wpt/suite/$deno$eval:1:16