mirror of
https://github.com/denoland/deno.git
synced 2024-11-24 15:19:26 -05:00
fix(ext/web): update ongoing promise in async iterator return()
method (#23642)
See https://github.com/whatwg/webidl/pull/1387 for context. There are new WPT tests for this change in https://github.com/web-platform-tests/wpt/pull/44456. They pass on my local machine, but I'm not sure if I should update the WPT submodule for all of Deno as part of this PR? Fixes #22389 --------- Co-authored-by: Asher Gomez <ashersaupingomez@gmail.
This commit is contained in:
parent
f2dc3f9a94
commit
9338770a70
3 changed files with 52 additions and 11 deletions
|
@ -4964,11 +4964,11 @@ const readableStreamAsyncIteratorPrototype = ObjectSetPrototypeOf({
|
||||||
return PromiseResolve({ value: undefined, done: true });
|
return PromiseResolve({ value: undefined, done: true });
|
||||||
};
|
};
|
||||||
|
|
||||||
const returnPromise = reader[_iteratorNext]
|
reader[_iteratorNext] = reader[_iteratorNext]
|
||||||
? PromisePrototypeThen(reader[_iteratorNext], returnSteps, returnSteps)
|
? PromisePrototypeThen(reader[_iteratorNext], returnSteps, returnSteps)
|
||||||
: returnSteps();
|
: returnSteps();
|
||||||
return PromisePrototypeThen(
|
return PromisePrototypeThen(
|
||||||
returnPromise,
|
reader[_iteratorNext],
|
||||||
() => ({ value: arg, done: true }),
|
() => ({ value: arg, done: true }),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
|
@ -2795,7 +2795,26 @@
|
||||||
"XSLTProcessor interface: operation reset()",
|
"XSLTProcessor interface: operation reset()",
|
||||||
"Window interface: attribute event",
|
"Window interface: attribute event",
|
||||||
"idl_test setup",
|
"idl_test setup",
|
||||||
"ShadowRoot interface: attribute clonable"
|
"ShadowRoot interface: attribute clonable",
|
||||||
|
"Document interface: operation prepend((Node or TrustedScript or DOMString)...)",
|
||||||
|
"Document interface: operation append((Node or TrustedScript or DOMString)...)",
|
||||||
|
"Document interface: operation replaceChildren((Node or TrustedScript or DOMString)...)",
|
||||||
|
"DocumentType interface: operation before((Node or TrustedScript or DOMString)...)",
|
||||||
|
"DocumentType interface: operation after((Node or TrustedScript or DOMString)...)",
|
||||||
|
"DocumentType interface: operation replaceWith((Node or TrustedScript or DOMString)...)",
|
||||||
|
"DocumentFragment interface: operation prepend((Node or TrustedScript or DOMString)...)",
|
||||||
|
"DocumentFragment interface: operation append((Node or TrustedScript or DOMString)...)",
|
||||||
|
"DocumentFragment interface: operation replaceChildren((Node or TrustedScript or DOMString)...)",
|
||||||
|
"ShadowRoot interface: attribute serializable",
|
||||||
|
"Element interface: operation prepend((Node or TrustedScript or DOMString)...)",
|
||||||
|
"Element interface: operation append((Node or TrustedScript or DOMString)...)",
|
||||||
|
"Element interface: operation replaceChildren((Node or TrustedScript or DOMString)...)",
|
||||||
|
"Element interface: operation before((Node or TrustedScript or DOMString)...)",
|
||||||
|
"Element interface: operation after((Node or TrustedScript or DOMString)...)",
|
||||||
|
"Element interface: operation replaceWith((Node or TrustedScript or DOMString)...)",
|
||||||
|
"CharacterData interface: operation before((Node or TrustedScript or DOMString)...)",
|
||||||
|
"CharacterData interface: operation after((Node or TrustedScript or DOMString)...)",
|
||||||
|
"CharacterData interface: operation replaceWith((Node or TrustedScript or DOMString)...)"
|
||||||
],
|
],
|
||||||
"idlharness.window.html?include=Node": [
|
"idlharness.window.html?include=Node": [
|
||||||
"Node interface: existence and properties of interface object",
|
"Node interface: existence and properties of interface object",
|
||||||
|
@ -3296,8 +3315,18 @@
|
||||||
"valueOf.any.html": true,
|
"valueOf.any.html": true,
|
||||||
"valueOf.any.worker.html": true
|
"valueOf.any.worker.html": true
|
||||||
},
|
},
|
||||||
"idlharness.any.html": true,
|
"idlharness.any.html": [
|
||||||
"idlharness.any.worker.html": true,
|
"Memory interface: operation toFixedLengthBuffer()",
|
||||||
|
"Memory interface: operation toResizableBuffer()",
|
||||||
|
"Memory interface: [object WebAssembly.Memory] must inherit property \"toFixedLengthBuffer()\" with the proper type",
|
||||||
|
"Memory interface: [object WebAssembly.Memory] must inherit property \"toResizableBuffer()\" with the proper type"
|
||||||
|
],
|
||||||
|
"idlharness.any.worker.html": [
|
||||||
|
"Memory interface: operation toFixedLengthBuffer()",
|
||||||
|
"Memory interface: operation toResizableBuffer()",
|
||||||
|
"Memory interface: [object WebAssembly.Memory] must inherit property \"toFixedLengthBuffer()\" with the proper type",
|
||||||
|
"Memory interface: [object WebAssembly.Memory] must inherit property \"toResizableBuffer()\" with the proper type"
|
||||||
|
],
|
||||||
"instance": {
|
"instance": {
|
||||||
"constructor-bad-imports.any.html": true,
|
"constructor-bad-imports.any.html": true,
|
||||||
"constructor-bad-imports.any.worker.html": true,
|
"constructor-bad-imports.any.worker.html": true,
|
||||||
|
@ -4512,7 +4541,15 @@
|
||||||
"<a>: Setting <http://example.net>.hash = ' ' Trailing space should be encoded",
|
"<a>: Setting <http://example.net>.hash = ' ' Trailing space should be encoded",
|
||||||
"<area>: Setting <http://example.net>.hash = ' ' Trailing space should be encoded",
|
"<area>: Setting <http://example.net>.hash = ' ' Trailing space should be encoded",
|
||||||
"<a>: Setting <http://example.net>.hash = '\u0000' Trailing C0 control should be encoded",
|
"<a>: Setting <http://example.net>.hash = '\u0000' Trailing C0 control should be encoded",
|
||||||
"<area>: Setting <http://example.net>.hash = '\u0000' Trailing C0 control should be encoded"
|
"<area>: Setting <http://example.net>.hash = '\u0000' Trailing C0 control should be encoded",
|
||||||
|
"<a>: Setting <http://example.net/path>.host = 'example.com?stuff:8080' Stuff after a ? delimiter is ignored, trailing 'port'",
|
||||||
|
"<area>: Setting <http://example.net/path>.host = 'example.com?stuff:8080' Stuff after a ? delimiter is ignored, trailing 'port'",
|
||||||
|
"<a>: Setting <http://example.net:8080>.host = 'example.com:invalid' Anything other than ASCII digit stops the port parser in a setter but is not an error",
|
||||||
|
"<area>: Setting <http://example.net:8080>.host = 'example.com:invalid' Anything other than ASCII digit stops the port parser in a setter but is not an error",
|
||||||
|
"<a>: Setting <http://example.net:8080/test>.host = '[::1]:invalid' Anything other than ASCII digit stops the port parser in a setter but is not an error",
|
||||||
|
"<area>: Setting <http://example.net:8080/test>.host = '[::1]:invalid' Anything other than ASCII digit stops the port parser in a setter but is not an error",
|
||||||
|
"<a>: Setting <http://example.net:8080/test>.host = '[::1]' IPv6 without port",
|
||||||
|
"<area>: Setting <http://example.net:8080/test>.host = '[::1]' IPv6 without port"
|
||||||
],
|
],
|
||||||
"url-setters-a-area.window.html?include=file": [
|
"url-setters-a-area.window.html?include=file": [
|
||||||
"<a>: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host",
|
"<a>: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host",
|
||||||
|
@ -4599,7 +4636,9 @@
|
||||||
"URL: Setting <non-spec:/>.pathname = '//p'",
|
"URL: Setting <non-spec:/>.pathname = '//p'",
|
||||||
"URL: Setting <non-spec:/.//>.pathname = 'p' Drop /. from path",
|
"URL: Setting <non-spec:/.//>.pathname = 'p' Drop /. from path",
|
||||||
"URL: Setting <data:space ?query#fragment>.search = '' Do not drop trailing spaces from non-trailing opaque paths",
|
"URL: Setting <data:space ?query#fragment>.search = '' Do not drop trailing spaces from non-trailing opaque paths",
|
||||||
"URL: Setting <sc:space ?query#fragment>.search = ''"
|
"URL: Setting <sc:space ?query#fragment>.search = ''",
|
||||||
|
"URL: Setting <http://example.net:8080>.host = 'example.com:invalid' Anything other than ASCII digit stops the port parser in a setter but is not an error",
|
||||||
|
"URL: Setting <http://example.net:8080/test>.host = '[::1]:invalid' Anything other than ASCII digit stops the port parser in a setter but is not an error"
|
||||||
],
|
],
|
||||||
"url-setters.any.html?include=file": [
|
"url-setters.any.html?include=file": [
|
||||||
"URL: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes",
|
"URL: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes",
|
||||||
|
@ -4621,7 +4660,9 @@
|
||||||
"URL: Setting <non-spec:/>.pathname = '//p'",
|
"URL: Setting <non-spec:/>.pathname = '//p'",
|
||||||
"URL: Setting <non-spec:/.//>.pathname = 'p' Drop /. from path",
|
"URL: Setting <non-spec:/.//>.pathname = 'p' Drop /. from path",
|
||||||
"URL: Setting <data:space ?query#fragment>.search = '' Do not drop trailing spaces from non-trailing opaque paths",
|
"URL: Setting <data:space ?query#fragment>.search = '' Do not drop trailing spaces from non-trailing opaque paths",
|
||||||
"URL: Setting <sc:space ?query#fragment>.search = ''"
|
"URL: Setting <sc:space ?query#fragment>.search = ''",
|
||||||
|
"URL: Setting <http://example.net:8080>.host = 'example.com:invalid' Anything other than ASCII digit stops the port parser in a setter but is not an error",
|
||||||
|
"URL: Setting <http://example.net:8080/test>.host = '[::1]:invalid' Anything other than ASCII digit stops the port parser in a setter but is not an error"
|
||||||
],
|
],
|
||||||
"url-setters.any.worker.html?include=file": [
|
"url-setters.any.worker.html?include=file": [
|
||||||
"URL: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes",
|
"URL: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes",
|
||||||
|
@ -6603,8 +6644,8 @@
|
||||||
],
|
],
|
||||||
"forbidden-method.any.html": true,
|
"forbidden-method.any.html": true,
|
||||||
"forbidden-method.any.worker.html": true,
|
"forbidden-method.any.worker.html": true,
|
||||||
"request-bad-port.any.html": false,
|
"request-bad-port.any.html": true,
|
||||||
"request-bad-port.any.worker.html": false,
|
"request-bad-port.any.worker.html": true,
|
||||||
"request-cache-default-conditional.any.html": true,
|
"request-cache-default-conditional.any.html": true,
|
||||||
"request-cache-default-conditional.any.worker.html": true,
|
"request-cache-default-conditional.any.worker.html": true,
|
||||||
"request-cache-default.any.html": [
|
"request-cache-default.any.html": [
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit daa07cf3c47652ed67e637f2a39bbc34f91cfe10
|
Subproject commit 5e8f71d73049d4fca2a8cbc62d40e821400f1624
|
Loading…
Reference in a new issue