Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 72c371adc8fe1744446197b6b816e538a83ef676
https://github.com/WebKit/WebKit/commit/72c371adc8fe1744446197b6b816e538a83ef676
Author: Sosuke Suzuki <[email protected]>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
A JSTests/stress/async-from-sync-iterator-prototype-throw-close-sync-iter.js
M JSTests/test262/expectations.yaml
M Source/JavaScriptCore/builtins/AsyncFromSyncIteratorPrototype.js
Log Message:
-----------
[JSC] `AsyncFromSyncIterator` should close its sync-iterator when `throw` is
null or undefined
https://bugs.webkit.org/show_bug.cgi?id=286885
Reviewed by Yusuke Suzuki.
The normative change for `AsyncFromSyncIterator`[1] includes the following two
changes:
1. AsyncFromSyncIterator now closes the sync iterator when `throw` is called on
the
wrapper but is not implemented on the sync iterator. In that case, it updates
the
rejection value to a `TypeError` to reflect the contract violation.
2. AsyncFromSyncIterator closes its sync iterator when the sync iterator yields
a
rejected promise as its value.
This normative change has already been implemented in V8[2]. This patch changes
to
implement only the first change.
[1]: https://github.com/tc39/ecma262/pull/2600
[2]:
https://github.com/v8/v8/commit/6c3f7aa4c76af4c3e0c89c5c279f2b98867c35f0#diff-c18e5d5743326f6ba544801f6ce25154b785f759885651f98924d5b56dc1c2e6
* JSTests/stress/async-from-sync-iterator-prototype-throw-close-sync-iter.js:
Added.
(shouldBe):
(shouldThrowAsync):
(throw.new.Error.const.syncIterator.get throw):
(throw.new.Error.const.asyncIterator):
(throw.new.Error.async OurError):
(throw.new.Error):
(const.syncIterator.get throw):
(throw.new.Error.async drainMicrotasks):
(const.asyncIterator):
(async OurError):
(OurError):
(NotOurError):
(const.syncIterator.get return):
(async drainMicrotasks):
(async asyncIterator):
* JSTests/test262/expectations.yaml:
* Source/JavaScriptCore/builtins/AsyncFromSyncIteratorPrototype.js:
(throw):
Canonical link: https://commits.webkit.org/289726@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes