summaryrefslogtreecommitdiff
path: root/ext/node/polyfills/perf_hooks.ts
diff options
context:
space:
mode:
authorMilly <milly.ca@gmail.com>2024-05-23 20:55:07 +0900
committerGitHub <noreply@github.com>2024-05-23 13:55:07 +0200
commitfa273509771c01d603d403002481bc1d01e4dd8b (patch)
tree578f03b94f5ddbd93b826a4d4a43cb8b5e19d541 /ext/node/polyfills/perf_hooks.ts
parentde5b47b13c457800828d2f3720706c44932ad772 (diff)
fix(ext/web): `ReadableStream.from()` ignores null `Symbol.asyncIterator` (#23910)
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`. [GetIterator]: https://tc39.es/ecma262/#sec-getiterator [GetMethod]: https://tc39.es/ecma262/#sec-getmethod ```bash > 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 ``` --------- Co-authored-by: Asher Gomez <ashersaupingomez@gmail.com>
Diffstat (limited to 'ext/node/polyfills/perf_hooks.ts')
0 files changed, 0 insertions, 0 deletions