diff --git a/spec.html b/spec.html index a4628facd57..57291831e00 100644 --- a/spec.html +++ b/spec.html @@ -42957,7 +42957,7 @@

%AsyncFromSyncIteratorPrototype%.next ( [ _value_ ] )

1. Else, 1. Let _result_ be IteratorNext(_syncIteratorRecord_). 1. IfAbruptRejectPromise(_result_, _promiseCapability_). - 1. Return ! AsyncFromSyncIteratorContinuation(_result_, _promiseCapability_, _syncIteratorRecord_). + 1. Return ! AsyncFromSyncIteratorContinuation(_result_, _promiseCapability_, _syncIteratorRecord_, *true*). @@ -42983,7 +42983,7 @@

%AsyncFromSyncIteratorPrototype%.return ( [ _value_ ] )

1. If Type(_result_) is not Object, then 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « a newly created *TypeError* object »). 1. Return _promiseCapability_.[[Promise]]. - 1. Return ! AsyncFromSyncIteratorContinuation(_result_, _promiseCapability_, _syncIteratorRecord_). + 1. Return ! AsyncFromSyncIteratorContinuation(_result_, _promiseCapability_, _syncIteratorRecord_, *false*). @@ -43009,7 +43009,7 @@

%AsyncFromSyncIteratorPrototype%.throw ( [ _value_ ] )

1. If Type(_result_) is not Object, then 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « a newly created *TypeError* object »). 1. Return _promiseCapability_.[[Promise]]. - 1. Return ! AsyncFromSyncIteratorContinuation(_result_, _promiseCapability_, _syncIteratorRecord_). + 1. Return ! AsyncFromSyncIteratorContinuation(_result_, _promiseCapability_, _syncIteratorRecord_, *true*). @@ -43044,9 +43044,10 @@

Properties of Async-from-Sync Iterator Instances

AsyncFromSyncIteratorContinuation ( - _result_: unknown, - _promiseCapability_: a PromiseCapability Record, - _syncIteratorRecord_: unknown, + _result_: unknown, + _promiseCapability_: a PromiseCapability Record, + _syncIteratorRecord_: unknown, + _closeOnRejection_: a Boolean, )

@@ -43058,14 +43059,14 @@

1. Let _value_ be IteratorValue(_result_). 1. IfAbruptRejectPromise(_value_, _promiseCapability_). 1. Let _valueWrapper_ be PromiseResolve(%Promise%, _value_). - 1. If _valueWrapper_ is an abrupt completion, and _done_ is not *true*, then + 1. If _valueWrapper_ is an abrupt completion, _done_ is *false*, and _closeOnRejection_ is *true*, then 1. Set _valueWrapper_ to IteratorClose(_syncIteratorRecord_, _valueWrapper_). 1. IfAbruptRejectPromise(_valueWrapper_, _promiseCapability_). 1. Let _unwrap_ be a new Abstract Closure with parameters (_value_) that captures _done_ and performs the following steps when called: 1. Return ! CreateIterResultObject(_value_, _done_). 1. Let _onFulfilled_ be ! CreateBuiltinFunction(_unwrap_, 1, *""*, « »). 1. NOTE: _onFulfilled_ is used when processing the *"value"* property of an IteratorResult object in order to wait for its value if it is a promise and re-package the result in a new "unwrapped" IteratorResult object. - 1. If _done_ is *true*, then + 1. If _done_ is *true*, or if _closeOnRejection_ is *false*, then 1. Let _onRejected_ be *undefined*. 1. Else, 1. Let _closeIterator_ be a new Abstract Closure with parameters (_error_) that captures _syncIteratorRecord_ and performs the following steps when called: