summaryrefslogtreecommitdiff
path: root/tests/wpt
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 /tests/wpt
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 'tests/wpt')
-rw-r--r--tests/wpt/runner/expectation.json17
m---------tests/wpt/suite0
2 files changed, 14 insertions, 3 deletions
diff --git a/tests/wpt/runner/expectation.json b/tests/wpt/runner/expectation.json
index e3f2ac972..78a33badf 100644
--- a/tests/wpt/runner/expectation.json
+++ b/tests/wpt/runner/expectation.json
@@ -3170,8 +3170,14 @@
"owning-type-message-port.any.worker.html": false,
"owning-type.any.html": false,
"owning-type.any.worker.html": false,
- "from.any.html": true,
- "from.any.worker.html": true
+ "from.any.html": [
+ "ReadableStream.from accepts a sync iterable of values",
+ "ReadableStream.from accepts a sync iterable of promises"
+ ],
+ "from.any.worker.html": [
+ "ReadableStream.from accepts a sync iterable of values",
+ "ReadableStream.from accepts a sync iterable of promises"
+ ]
},
"transform-streams": {
"backpressure.any.html": true,
@@ -10072,7 +10078,6 @@
"Worker-replace-event-handler.any.worker.html": true,
"Worker-replace-global-constructor.any.worker.html": true,
"Worker-replace-self.any.worker.html": true,
- "WorkerGlobalScope_requestAnimationFrame.tentative.worker.html": false,
"WorkerLocation-origin.sub.window.html": false,
"WorkerNavigator-hardware-concurrency.any.worker.html": true,
"WorkerNavigator.any.worker.html": false,
@@ -10753,6 +10758,9 @@
},
"service-workers": {
"idlharness.https.any.html": [
+ "ServiceWorkerContainer interface: operation register((TrustedScriptURL or USVString), optional RegistrationOptions)",
+ "ServiceWorkerContainer interface: navigator.serviceWorker must inherit property \"register((TrustedScriptURL or USVString), optional RegistrationOptions)\" with the proper type",
+ "ServiceWorkerContainer interface: calling register((TrustedScriptURL or USVString), optional RegistrationOptions) on navigator.serviceWorker with too few arguments must throw TypeError",
"ServiceWorker interface: existence and properties of interface object",
"ServiceWorker interface object length",
"ServiceWorker interface object name",
@@ -10861,6 +10869,9 @@
"idl_test setup"
],
"idlharness.https.any.worker.html": [
+ "ServiceWorkerContainer interface: operation register((TrustedScriptURL or USVString), optional RegistrationOptions)",
+ "ServiceWorkerContainer interface: navigator.serviceWorker must inherit property \"register((TrustedScriptURL or USVString), optional RegistrationOptions)\" with the proper type",
+ "ServiceWorkerContainer interface: calling register((TrustedScriptURL or USVString), optional RegistrationOptions) on navigator.serviceWorker with too few arguments must throw TypeError",
"ServiceWorker interface: existence and properties of interface object",
"ServiceWorker interface object length",
"ServiceWorker interface object name",
diff --git a/tests/wpt/suite b/tests/wpt/suite
-Subproject 915d40b37fbd3554548d5cbec9f335f329ccc94
+Subproject 5b7a1a44887d1c68ad67a4df894febd45f520c2