diff --git a/spec.html b/spec.html index 6ece793366f..501909d7831 100644 --- a/spec.html +++ b/spec.html @@ -1577,7 +1577,7 @@

- 1. Let _oldValue_ be ! ToInt32(_x_). + 1. Let _oldValue_ be ! ToInt32(_x_). 1. Return the result of applying bitwise complement to _oldValue_. The mathematical value of the result is exactly representable as a 32-bit two's complement bit string. @@ -1772,8 +1772,8 @@

- 1. Let _lnum_ be ! ToInt32(_x_). - 1. Let _rnum_ be ! ToUint32(_y_). + 1. Let _lnum_ be ! ToInt32(_x_). + 1. Let _rnum_ be ! ToUint32(_y_). 1. Let _shiftCount_ be ℝ(_rnum_) modulo 32. 1. Return the result of left shifting _lnum_ by _shiftCount_ bits. The mathematical value of the result is exactly representable as a 32-bit two's complement bit string. @@ -1789,8 +1789,8 @@

- 1. Let _lnum_ be ! ToInt32(_x_). - 1. Let _rnum_ be ! ToUint32(_y_). + 1. Let _lnum_ be ! ToInt32(_x_). + 1. Let _rnum_ be ! ToUint32(_y_). 1. Let _shiftCount_ be ℝ(_rnum_) modulo 32. 1. Return the result of performing a sign-extending right shift of _lnum_ by _shiftCount_ bits. The most significant bit is propagated. The mathematical value of the result is exactly representable as a 32-bit two's complement bit string. @@ -1806,8 +1806,8 @@

- 1. Let _lnum_ be ! ToUint32(_x_). - 1. Let _rnum_ be ! ToUint32(_y_). + 1. Let _lnum_ be ! ToUint32(_x_). + 1. Let _rnum_ be ! ToUint32(_y_). 1. Let _shiftCount_ be ℝ(_rnum_) modulo 32. 1. Return the result of performing a zero-filling right shift of _lnum_ by _shiftCount_ bits. Vacated bits are filled with zero. The mathematical value of the result is exactly representable as a 32-bit unsigned bit string. @@ -1903,8 +1903,8 @@

- 1. Let _lnum_ be ! ToInt32(_x_). - 1. Let _rnum_ be ! ToInt32(_y_). + 1. Let _lnum_ be ! ToInt32(_x_). + 1. Let _rnum_ be ! ToInt32(_y_). 1. Let _lbits_ be the 32-bit two's complement bit string representing ℝ(_lnum_). 1. Let _rbits_ be the 32-bit two's complement bit string representing ℝ(_rnum_). 1. If _op_ is `&`, let _result_ be the result of applying the bitwise AND operation to _lbits_ and _rbits_. @@ -4252,17 +4252,17 @@

1. Let _obj_ be ! OrdinaryObjectCreate(%Object.prototype%). 1. Assert: _obj_ is an extensible ordinary object with no own properties. 1. If _Desc_ has a [[Value]] field, then - 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"value"*, _Desc_.[[Value]]). + 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"value"*, _Desc_.[[Value]]). 1. If _Desc_ has a [[Writable]] field, then - 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"writable"*, _Desc_.[[Writable]]). + 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"writable"*, _Desc_.[[Writable]]). 1. If _Desc_ has a [[Get]] field, then - 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"get"*, _Desc_.[[Get]]). + 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"get"*, _Desc_.[[Get]]). 1. If _Desc_ has a [[Set]] field, then - 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"set"*, _Desc_.[[Set]]). + 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"set"*, _Desc_.[[Set]]). 1. If _Desc_ has an [[Enumerable]] field, then - 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"enumerable"*, _Desc_.[[Enumerable]]). + 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"enumerable"*, _Desc_.[[Enumerable]]). 1. If _Desc_ has a [[Configurable]] field, then - 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"configurable"*, _Desc_.[[Configurable]]). + 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"configurable"*, _Desc_.[[Configurable]]). 1. Return _obj_. @@ -5579,7 +5579,7 @@

1. Let _key_ be ? ToPrimitive(_argument_, ~string~). 1. If Type(_key_) is Symbol, then 1. Return _key_. - 1. Return ! ToString(_key_). + 1. Return ! ToString(_key_). @@ -5612,8 +5612,8 @@

1. If _argument_ is *"-0"*, return *-0*𝔽. - 1. Let _n_ be ! ToNumber(_argument_). - 1. If SameValue(! ToString(_n_), _argument_) is *false*, return *undefined*. + 1. Let _n_ be ! ToNumber(_argument_). + 1. If SameValue(! ToString(_n_), _argument_) is *false*, return *undefined*. 1. Return _n_.

A canonical numeric string is any String value for which the CanonicalNumericIndexString abstract operation does not return *undefined*.

@@ -5634,7 +5634,7 @@

1. Return 0. 1. Else, 1. Let _integer_ be ? ToIntegerOrInfinity(_value_). - 1. Let _clamped_ be ! ToLength(𝔽(_integer_)). + 1. Let _clamped_ be ! ToLength(𝔽(_integer_)). 1. If ! SameValue(𝔽(_integer_), _clamped_) is *false*, throw a *RangeError* exception. 1. Assert: 0 ≤ _integer_ ≤ 253 - 1. 1. Return _integer_. @@ -6014,15 +6014,15 @@

1. If _x_ is *null* and _y_ is *undefined*, return *true*. 1. If _x_ is *undefined* and _y_ is *null*, return *true*. 1. [id="step-abstract-equality-comparison-web-compat-insertion-point"] NOTE: This step is replaced in section . - 1. If Type(_x_) is Number and Type(_y_) is String, return IsLooselyEqual(_x_, ! ToNumber(_y_)). - 1. If Type(_x_) is String and Type(_y_) is Number, return IsLooselyEqual(! ToNumber(_x_), _y_). + 1. If Type(_x_) is Number and Type(_y_) is String, return IsLooselyEqual(_x_, ! ToNumber(_y_)). + 1. If Type(_x_) is String and Type(_y_) is Number, return IsLooselyEqual(! ToNumber(_x_), _y_). 1. If Type(_x_) is BigInt and Type(_y_) is String, then 1. Let _n_ be ! StringToBigInt(_y_). 1. If _n_ is *NaN*, return *false*. 1. Return IsLooselyEqual(_x_, _n_). 1. If Type(_x_) is String and Type(_y_) is BigInt, return IsLooselyEqual(_y_, _x_). - 1. If Type(_x_) is Boolean, return IsLooselyEqual(! ToNumber(_x_), _y_). - 1. If Type(_y_) is Boolean, return IsLooselyEqual(_x_, ! ToNumber(_y_)). + 1. If Type(_x_) is Boolean, return IsLooselyEqual(! ToNumber(_x_), _y_). + 1. If Type(_y_) is Boolean, return IsLooselyEqual(_x_, ! ToNumber(_y_)). 1. If Type(_x_) is either String, Number, BigInt, or Symbol and Type(_y_) is Object, return IsLooselyEqual(_x_, ? ToPrimitive(_y_)). 1. If Type(_x_) is Object and Type(_y_) is either String, Number, BigInt, or Symbol, return IsLooselyEqual(? ToPrimitive(_x_), _y_). 1. If Type(_x_) is BigInt and Type(_y_) is Number, or if Type(_x_) is Number and Type(_y_) is BigInt, then @@ -6429,7 +6429,7 @@

1. Let _array_ be ! ArrayCreate(0). 1. Let _n_ be 0. 1. For each element _e_ of _elements_, do - 1. Perform ! CreateDataPropertyOrThrow(_array_, ! ToString(𝔽(_n_)), _e_). + 1. Perform ! CreateDataPropertyOrThrow(_array_, ! ToString(𝔽(_n_)), _e_). 1. Set _n_ to _n_ + 1. 1. Return _array_. @@ -6475,7 +6475,7 @@

1. Let _list_ be a new empty List. 1. Let _index_ be 0. 1. Repeat, while _index_ < _len_, - 1. Let _indexName_ be ! ToString(𝔽(_index_)). + 1. Let _indexName_ be ! ToString(𝔽(_index_)). 1. Let _next_ be ? Get(_obj_, _indexName_). 1. If Type(_next_) is not an element of _elementTypes_, throw a *TypeError* exception. 1. Append _next_ as the last element of _list_. @@ -6632,7 +6632,7 @@

1. Let _desc_ be ? _from_.[[GetOwnProperty]](_nextKey_). 1. If _desc_ is not *undefined* and _desc_.[[Enumerable]] is *true*, then 1. Let _propValue_ be ? Get(_from_, _nextKey_). - 1. Perform ! CreateDataPropertyOrThrow(_target_, _nextKey_, _propValue_). + 1. Perform ! CreateDataPropertyOrThrow(_target_, _nextKey_, _propValue_). 1. Return _target_. @@ -6955,8 +6955,8 @@

1. Let _obj_ be ! OrdinaryObjectCreate(%Object.prototype%). - 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"value"*, _value_). - 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"done"*, _done_). + 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"value"*, _value_). + 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"done"*, _done_). 1. Return _obj_. @@ -9472,7 +9472,7 @@

1. Let _nextValue_ be IteratorValue(_next_). 1. If _nextValue_ is an abrupt completion, set _iteratorRecord_.[[Done]] to *true*. 1. ReturnIfAbrupt(_nextValue_). - 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_n_)), _nextValue_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_n_)), _nextValue_). 1. Set _n_ to _n_ + 1. BindingRestElement : `...` BindingPattern @@ -9490,7 +9490,7 @@

1. Let _nextValue_ be IteratorValue(_next_). 1. If _nextValue_ is an abrupt completion, set _iteratorRecord_.[[Done]] to *true*. 1. ReturnIfAbrupt(_nextValue_). - 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_n_)), _nextValue_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_n_)), _nextValue_). 1. Set _n_ to _n_ + 1. FormalParameters : [empty] @@ -9729,7 +9729,7 @@

Static Semantics: PropName

LiteralPropertyName : NumericLiteral 1. Let _nbr_ be the NumericValue of |NumericLiteral|. - 1. Return ! ToString(_nbr_). + 1. Return ! ToString(_nbr_). ComputedPropertyName : `[` AssignmentExpression `]` @@ -13319,8 +13319,8 @@

1. Assert: _realm_.[[Intrinsics]].[[%ThrowTypeError%]] exists and has been initialized. 1. Let _thrower_ be _realm_.[[Intrinsics]].[[%ThrowTypeError%]]. - 1. Perform ! DefinePropertyOrThrow(_F_, *"caller"*, PropertyDescriptor { [[Get]]: _thrower_, [[Set]]: _thrower_, [[Enumerable]]: *false*, [[Configurable]]: *true* }). - 1. Return ! DefinePropertyOrThrow(_F_, *"arguments"*, PropertyDescriptor { [[Get]]: _thrower_, [[Set]]: _thrower_, [[Enumerable]]: *false*, [[Configurable]]: *true* }). + 1. Perform ! DefinePropertyOrThrow(_F_, *"caller"*, PropertyDescriptor { [[Get]]: _thrower_, [[Set]]: _thrower_, [[Enumerable]]: *false*, [[Configurable]]: *true* }). + 1. Return ! DefinePropertyOrThrow(_F_, *"arguments"*, PropertyDescriptor { [[Get]]: _thrower_, [[Set]]: _thrower_, [[Enumerable]]: *false*, [[Configurable]]: *true* }). @@ -13358,8 +13358,8 @@

1. If _writablePrototype_ is not present, set _writablePrototype_ to *true*. 1. If _prototype_ is not present, then 1. Set _prototype_ to ! OrdinaryObjectCreate(%Object.prototype%). - 1. Perform ! DefinePropertyOrThrow(_prototype_, *"constructor"*, PropertyDescriptor { [[Value]]: _F_, [[Writable]]: _writablePrototype_, [[Enumerable]]: *false*, [[Configurable]]: *true* }). - 1. Perform ! DefinePropertyOrThrow(_F_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: _writablePrototype_, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! DefinePropertyOrThrow(_prototype_, *"constructor"*, PropertyDescriptor { [[Value]]: _F_, [[Writable]]: _writablePrototype_, [[Enumerable]]: *false*, [[Configurable]]: *true* }). + 1. Perform ! DefinePropertyOrThrow(_F_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: _writablePrototype_, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return NormalCompletion(*undefined*). @@ -13443,7 +13443,7 @@

1. Set _name_ to the string-concatenation of _prefix_, the code unit 0x0020 (SPACE), and _name_. 1. If _F_ has an [[InitialName]] internal slot, then 1. Optionally, set _F_.[[InitialName]] to _name_. - 1. Return ! DefinePropertyOrThrow(_F_, *"name"*, PropertyDescriptor { [[Value]]: _name_, [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *true* }). + 1. Return ! DefinePropertyOrThrow(_F_, *"name"*, PropertyDescriptor { [[Value]]: _name_, [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *true* }). @@ -13460,7 +13460,7 @@

1. Assert: _F_ is an extensible object that does not have a *"length"* own property. - 1. Return ! DefinePropertyOrThrow(_F_, *"length"*, PropertyDescriptor { [[Value]]: 𝔽(_length_), [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *true* }). + 1. Return ! DefinePropertyOrThrow(_F_, *"length"*, PropertyDescriptor { [[Value]]: 𝔽(_length_), [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *true* }). @@ -13857,9 +13857,9 @@

1. Assert: _oldLenDesc_.[[Configurable]] is *false*. 1. Let _oldLen_ be _oldLenDesc_.[[Value]]. 1. Assert: _oldLen_ is a non-negative integral Number. - 1. Let _index_ be ! ToUint32(_P_). + 1. Let _index_ be ! ToUint32(_P_). 1. If _index_ ≥ _oldLen_ and _oldLenDesc_.[[Writable]] is *false*, return *false*. - 1. Let _succeeded_ be ! OrdinaryDefineOwnProperty(_A_, _P_, _Desc_). + 1. Let _succeeded_ be ! OrdinaryDefineOwnProperty(_A_, _P_, _Desc_). 1. If _succeeded_ is *false*, return *false*. 1. If _index_ ≥ _oldLen_, then 1. Set _oldLenDesc_.[[Value]] to _index_ + *1*𝔽. @@ -13887,7 +13887,7 @@

1. Let _A_ be ! MakeBasicObject(« [[Prototype]], [[Extensible]] »). 1. Set _A_.[[Prototype]] to _proto_. 1. Set _A_.[[DefineOwnProperty]] as specified in . - 1. Perform ! OrdinaryDefineOwnProperty(_A_, *"length"*, PropertyDescriptor { [[Value]]: 𝔽(_length_), [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! OrdinaryDefineOwnProperty(_A_, *"length"*, PropertyDescriptor { [[Value]]: 𝔽(_length_), [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return _A_. @@ -13955,17 +13955,17 @@

1. NOTE: Setting the [[Writable]] attribute to *false* is deferred in case any elements cannot be deleted. 1. Let _newWritable_ be *false*. 1. Set _newLenDesc_.[[Writable]] to *true*. - 1. Let _succeeded_ be ! OrdinaryDefineOwnProperty(_A_, *"length"*, _newLenDesc_). + 1. Let _succeeded_ be ! OrdinaryDefineOwnProperty(_A_, *"length"*, _newLenDesc_). 1. If _succeeded_ is *false*, return *false*. 1. For each own property key _P_ of _A_ that is an array index, whose numeric value is greater than or equal to _newLen_, in descending numeric index order, do 1. Let _deleteSucceeded_ be ! _A_.[[Delete]](_P_). 1. If _deleteSucceeded_ is *false*, then - 1. Set _newLenDesc_.[[Value]] to ! ToUint32(_P_) + *1*𝔽. + 1. Set _newLenDesc_.[[Value]] to ! ToUint32(_P_) + *1*𝔽. 1. If _newWritable_ is *false*, set _newLenDesc_.[[Writable]] to *false*. - 1. Perform ! OrdinaryDefineOwnProperty(_A_, *"length"*, _newLenDesc_). + 1. Perform ! OrdinaryDefineOwnProperty(_A_, *"length"*, _newLenDesc_). 1. Return *false*. 1. If _newWritable_ is *false*, then - 1. Set _succeeded_ to ! OrdinaryDefineOwnProperty(_A_, *"length"*, PropertyDescriptor { [[Writable]]: *false* }). + 1. Set _succeeded_ to ! OrdinaryDefineOwnProperty(_A_, *"length"*, PropertyDescriptor { [[Writable]]: *false* }). 1. Assert: _succeeded_ is *true*. 1. Return *true*. @@ -14016,7 +14016,7 @@

1. If _stringDesc_ is not *undefined*, then 1. Let _extensible_ be _S_.[[Extensible]]. 1. Return ! IsCompatiblePropertyDescriptor(_extensible_, _Desc_, _stringDesc_). - 1. Return ! OrdinaryDefineOwnProperty(_S_, _P_, _Desc_). + 1. Return ! OrdinaryDefineOwnProperty(_S_, _P_, _Desc_). @@ -14032,8 +14032,8 @@

[[OwnPropertyKeys]] ( )

1. Assert: Type(_str_) is String. 1. Let _len_ be the length of _str_. 1. For each integer _i_ starting with 0 such that _i_ < _len_, in ascending order, do - 1. Add ! ToString(𝔽(_i_)) as the last element of _keys_. - 1. For each own property key _P_ of _O_ such that _P_ is an array index and ! ToIntegerOrInfinity(_P_) ≥ _len_, in ascending numeric index order, do + 1. Add ! ToString(𝔽(_i_)) as the last element of _keys_. + 1. For each own property key _P_ of _O_ such that _P_ is an array index and ! ToIntegerOrInfinity(_P_) ≥ _len_, in ascending numeric index order, do 1. Add _P_ as the last element of _keys_. 1. For each own property key _P_ of _O_ such that Type(_P_) is String and _P_ is not an array index, in ascending chronological order of property creation, do 1. Add _P_ as the last element of _keys_. @@ -14062,7 +14062,7 @@

1. Set _S_.[[DefineOwnProperty]] as specified in . 1. Set _S_.[[OwnPropertyKeys]] as specified in . 1. Let _length_ be the number of code unit elements in _value_. - 1. Perform ! DefinePropertyOrThrow(_S_, *"length"*, PropertyDescriptor { [[Value]]: 𝔽(_length_), [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! DefinePropertyOrThrow(_S_, *"length"*, PropertyDescriptor { [[Value]]: 𝔽(_length_), [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return _S_. @@ -14132,7 +14132,7 @@

1. Let _desc_ be OrdinaryGetOwnProperty(_args_, _P_). 1. If _desc_ is *undefined*, return _desc_. 1. Let _map_ be _args_.[[ParameterMap]]. - 1. Let _isMapped_ be ! HasOwnProperty(_map_, _P_). + 1. Let _isMapped_ be ! HasOwnProperty(_map_, _P_). 1. If _isMapped_ is *true*, then 1. Set _desc_.[[Value]] to Get(_map_, _P_). 1. Return _desc_. @@ -14188,7 +14188,7 @@

1. Let _map_ be _args_.[[ParameterMap]]. - 1. Let _isMapped_ be ! HasOwnProperty(_map_, _P_). + 1. Let _isMapped_ be ! HasOwnProperty(_map_, _P_). 1. If _isMapped_ is *false*, then 1. Return ? OrdinaryGet(_args_, _P_, _Receiver_). 1. Else, @@ -14214,7 +14214,7 @@

1. Let _isMapped_ be *false*. 1. Else, 1. Let _map_ be _args_.[[ParameterMap]]. - 1. Let _isMapped_ be ! HasOwnProperty(_map_, _P_). + 1. Let _isMapped_ be ! HasOwnProperty(_map_, _P_). 1. If _isMapped_ is *true*, then 1. Let _setStatus_ be Set(_map_, _P_, _V_, *false*). 1. Assert: _setStatus_ is *true* because formal parameters mapped by argument objects are always writable. @@ -14236,7 +14236,7 @@

1. Let _map_ be _args_.[[ParameterMap]]. - 1. Let _isMapped_ be ! HasOwnProperty(_map_, _P_). + 1. Let _isMapped_ be ! HasOwnProperty(_map_, _P_). 1. Let _result_ be ? OrdinaryDelete(_args_, _P_). 1. If _result_ is *true* and _isMapped_ is *true*, then 1. Call _map_.[[Delete]](_P_). @@ -14260,10 +14260,10 @@

1. Let _index_ be 0. 1. Repeat, while _index_ < _len_, 1. Let _val_ be _argumentsList_[_index_]. - 1. Perform ! CreateDataPropertyOrThrow(_obj_, ! ToString(𝔽(_index_)), _val_). + 1. Perform ! CreateDataPropertyOrThrow(_obj_, ! ToString(𝔽(_index_)), _val_). 1. Set _index_ to _index_ + 1. - 1. Perform ! DefinePropertyOrThrow(_obj_, @@iterator, PropertyDescriptor { [[Value]]: %Array.prototype.values%, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *true* }). - 1. Perform ! DefinePropertyOrThrow(_obj_, *"callee"*, PropertyDescriptor { [[Get]]: %ThrowTypeError%, [[Set]]: %ThrowTypeError%, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! DefinePropertyOrThrow(_obj_, @@iterator, PropertyDescriptor { [[Value]]: %Array.prototype.values%, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *true* }). + 1. Perform ! DefinePropertyOrThrow(_obj_, *"callee"*, PropertyDescriptor { [[Get]]: %ThrowTypeError%, [[Set]]: %ThrowTypeError%, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return _obj_. @@ -14298,9 +14298,9 @@

1. Let _index_ be 0. 1. Repeat, while _index_ < _len_, 1. Let _val_ be _argumentsList_[_index_]. - 1. Perform ! CreateDataPropertyOrThrow(_obj_, ! ToString(𝔽(_index_)), _val_). + 1. Perform ! CreateDataPropertyOrThrow(_obj_, ! ToString(𝔽(_index_)), _val_). 1. Set _index_ to _index_ + 1. - 1. Perform ! DefinePropertyOrThrow(_obj_, *"length"*, PropertyDescriptor { [[Value]]: 𝔽(_len_), [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *true* }). + 1. Perform ! DefinePropertyOrThrow(_obj_, *"length"*, PropertyDescriptor { [[Value]]: 𝔽(_len_), [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *true* }). 1. Let _mappedNames_ be a new empty List. 1. Set _index_ to _numberOfParameters_ - 1. 1. Repeat, while _index_ ≥ 0, @@ -14310,10 +14310,10 @@

1. If _index_ < _len_, then 1. Let _g_ be MakeArgGetter(_name_, _env_). 1. Let _p_ be MakeArgSetter(_name_, _env_). - 1. Perform _map_.[[DefineOwnProperty]](! ToString(𝔽(_index_)), PropertyDescriptor { [[Set]]: _p_, [[Get]]: _g_, [[Enumerable]]: *false*, [[Configurable]]: *true* }). + 1. Perform _map_.[[DefineOwnProperty]](! ToString(𝔽(_index_)), PropertyDescriptor { [[Set]]: _p_, [[Get]]: _g_, [[Enumerable]]: *false*, [[Configurable]]: *true* }). 1. Set _index_ to _index_ - 1. - 1. Perform ! DefinePropertyOrThrow(_obj_, @@iterator, PropertyDescriptor { [[Value]]: %Array.prototype.values%, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *true* }). - 1. Perform ! DefinePropertyOrThrow(_obj_, *"callee"*, PropertyDescriptor { [[Value]]: _func_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *true* }). + 1. Perform ! DefinePropertyOrThrow(_obj_, @@iterator, PropertyDescriptor { [[Value]]: %Array.prototype.values%, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *true* }). + 1. Perform ! DefinePropertyOrThrow(_obj_, *"callee"*, PropertyDescriptor { [[Value]]: _func_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *true* }). 1. Return _obj_. @@ -14426,7 +14426,7 @@

1. If _Desc_ has a [[Writable]] field and if _Desc_.[[Writable]] is *false*, return *false*. 1. If _Desc_ has a [[Value]] field, perform ? IntegerIndexedElementSet(_O_, _numericIndex_, _Desc_.[[Value]]). 1. Return *true*. - 1. Return ! OrdinaryDefineOwnProperty(_O_, _P_, _Desc_). + 1. Return ! OrdinaryDefineOwnProperty(_O_, _P_, _Desc_). @@ -14501,7 +14501,7 @@

[[OwnPropertyKeys]] ( )

1. Let _keys_ be a new empty List. 1. If IsDetachedBuffer(_O_.[[ViewedArrayBuffer]]) is *false*, then 1. For each integer _i_ starting with 0 such that _i_ < _O_.[[ArrayLength]], in ascending order, do - 1. Add ! ToString(𝔽(_i_)) as the last element of _keys_. + 1. Add ! ToString(𝔽(_i_)) as the last element of _keys_. 1. For each own property key _P_ of _O_ such that Type(_P_) is String and _P_ is not an integer index, in ascending chronological order of property creation, do 1. Add _P_ as the last element of _keys_. 1. For each own property key _P_ of _O_ such that Type(_P_) is Symbol, in ascending chronological order of property creation, do @@ -14832,7 +14832,7 @@

[[OwnPropertyKeys]] ( )

1. Let _exports_ be _O_.[[Exports]]. - 1. Let _symbolKeys_ be ! OrdinaryOwnPropertyKeys(_O_). + 1. Let _symbolKeys_ be ! OrdinaryOwnPropertyKeys(_O_). 1. Return the list-concatenation of _exports_ and _symbolKeys_. @@ -17995,7 +17995,7 @@

1. ReturnIfAbrupt(_nextIndex_). 1. Let _initResult_ be the result of evaluating |AssignmentExpression|. 1. Let _initValue_ be ? GetValue(_initResult_). - 1. Let _created_ be ! CreateDataPropertyOrThrow(_array_, ! ToString(𝔽(_nextIndex_)), _initValue_). + 1. Let _created_ be ! CreateDataPropertyOrThrow(_array_, ! ToString(𝔽(_nextIndex_)), _initValue_). 1. Return _nextIndex_ + 1. ElementList : Elision? SpreadElement @@ -18014,7 +18014,7 @@

1. ReturnIfAbrupt(_nextIndex_). 1. Let _initResult_ be the result of evaluating |AssignmentExpression|. 1. Let _initValue_ be ? GetValue(_initResult_). - 1. Let _created_ be ! CreateDataPropertyOrThrow(_array_, ! ToString(𝔽(_nextIndex_)), _initValue_). + 1. Let _created_ be ! CreateDataPropertyOrThrow(_array_, ! ToString(𝔽(_nextIndex_)), _initValue_). 1. Return _nextIndex_ + 1. ElementList : ElementList `,` Elision? SpreadElement @@ -18035,7 +18035,7 @@

1. Let _next_ be ? IteratorStep(_iteratorRecord_). 1. If _next_ is *false*, return _nextIndex_. 1. Let _nextValue_ be ? IteratorValue(_next_). - 1. Perform ! CreateDataPropertyOrThrow(_array_, ! ToString(𝔽(_nextIndex_)), _nextValue_). + 1. Perform ! CreateDataPropertyOrThrow(_array_, ! ToString(𝔽(_nextIndex_)), _nextValue_). 1. Set _nextIndex_ to _nextIndex_ + 1. @@ -18217,7 +18217,7 @@

Runtime Semantics: Evaluation

LiteralPropertyName : NumericLiteral 1. Let _nbr_ be the NumericValue of |NumericLiteral|. - 1. Return ! ToString(_nbr_). + 1. Return ! ToString(_nbr_). ComputedPropertyName : `[` AssignmentExpression `]` @@ -18254,7 +18254,7 @@

1. Let _exprValue_ be the result of evaluating |IdentifierReference|. 1. Let _propValue_ be ? GetValue(_exprValue_). 1. Assert: _object_ is an ordinary, extensible object with no non-configurable properties. - 1. Return ! CreateDataPropertyOrThrow(_object_, _propName_, _propValue_). + 1. Return ! CreateDataPropertyOrThrow(_object_, _propName_, _propValue_). PropertyDefinition : PropertyName `:` AssignmentExpression @@ -18276,7 +18276,7 @@

1. Return ! _object_.[[SetPrototypeOf]](_propValue_). 1. Return NormalCompletion(~empty~). 1. Assert: _object_ is an ordinary, extensible object with no non-configurable properties. - 1. Return ! CreateDataPropertyOrThrow(_object_, _propKey_, _propValue_). + 1. Return ! CreateDataPropertyOrThrow(_object_, _propKey_, _propValue_). PropertyDefinition : MethodDefinition @@ -18495,15 +18495,15 @@

1. Let _rawObj_ be ! ArrayCreate(_count_). 1. Let _index_ be 0. 1. Repeat, while _index_ < _count_, - 1. Let _prop_ be ! ToString(𝔽(_index_)). + 1. Let _prop_ be ! ToString(𝔽(_index_)). 1. Let _cookedValue_ be _cookedStrings_[_index_]. - 1. Perform ! DefinePropertyOrThrow(_template_, _prop_, PropertyDescriptor { [[Value]]: _cookedValue_, [[Writable]]: *false*, [[Enumerable]]: *true*, [[Configurable]]: *false* }). + 1. Perform ! DefinePropertyOrThrow(_template_, _prop_, PropertyDescriptor { [[Value]]: _cookedValue_, [[Writable]]: *false*, [[Enumerable]]: *true*, [[Configurable]]: *false* }). 1. Let _rawValue_ be the String value _rawStrings_[_index_]. - 1. Perform ! DefinePropertyOrThrow(_rawObj_, _prop_, PropertyDescriptor { [[Value]]: _rawValue_, [[Writable]]: *false*, [[Enumerable]]: *true*, [[Configurable]]: *false* }). + 1. Perform ! DefinePropertyOrThrow(_rawObj_, _prop_, PropertyDescriptor { [[Value]]: _rawValue_, [[Writable]]: *false*, [[Enumerable]]: *true*, [[Configurable]]: *false* }). 1. Set _index_ to _index_ + 1. - 1. Perform ! SetIntegrityLevel(_rawObj_, ~frozen~). - 1. Perform ! DefinePropertyOrThrow(_template_, *"raw"*, PropertyDescriptor { [[Value]]: _rawObj_, [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). - 1. Perform ! SetIntegrityLevel(_template_, ~frozen~). + 1. Perform ! SetIntegrityLevel(_rawObj_, ~frozen~). + 1. Perform ! DefinePropertyOrThrow(_template_, *"raw"*, PropertyDescriptor { [[Value]]: _rawObj_, [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! SetIntegrityLevel(_template_, ~frozen~). 1. Append the Record { [[Site]]: _templateLiteral_, [[Array]]: _template_ } to _templateRegistry_. 1. Return _template_. @@ -19250,10 +19250,10 @@

Runtime Semantics: Evaluation

1. Let _referencingScriptOrModule_ be ! GetActiveScriptOrModule(). 1. Let _argRef_ be the result of evaluating |AssignmentExpression|. 1. Let _specifier_ be ? GetValue(_argRef_). - 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). + 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). 1. Let _specifierString_ be ToString(_specifier_). 1. IfAbruptRejectPromise(_specifierString_, _promiseCapability_). - 1. Perform ! HostImportModuleDynamically(_referencingScriptOrModule_, _specifierString_, _promiseCapability_). + 1. Perform ! HostImportModuleDynamically(_referencingScriptOrModule_, _specifierString_, _promiseCapability_). 1. Return _promiseCapability_.[[Promise]].
@@ -19303,10 +19303,10 @@

Runtime Semantics: Evaluation

1. Let _importMeta_ be _module_.[[ImportMeta]]. 1. If _importMeta_ is ~empty~, then 1. Set _importMeta_ to ! OrdinaryObjectCreate(*null*). - 1. Let _importMetaValues_ be ! HostGetImportMetaProperties(_module_). + 1. Let _importMetaValues_ be ! HostGetImportMetaProperties(_module_). 1. For each Record { [[Key]], [[Value]] } _p_ of _importMetaValues_, do - 1. Perform ! CreateDataPropertyOrThrow(_importMeta_, _p_.[[Key]], _p_.[[Value]]). - 1. Perform ! HostFinalizeImportMeta(_importMeta_, _module_). + 1. Perform ! CreateDataPropertyOrThrow(_importMeta_, _p_.[[Key]], _p_.[[Value]]). + 1. Perform ! HostFinalizeImportMeta(_importMeta_, _module_). 1. Set _module_.[[ImportMeta]] to _importMeta_. 1. Return _importMeta_. 1. Else, @@ -19406,7 +19406,7 @@

Runtime Semantics: Evaluation

1. Let _lhs_ be the result of evaluating |LeftHandSideExpression|. 1. Let _oldValue_ be ? ToNumeric(? GetValue(_lhs_)). - 1. Let _newValue_ be ! Type(_oldValue_)::add(_oldValue_, Type(_oldValue_)::unit). + 1. Let _newValue_ be ! Type(_oldValue_)::add(_oldValue_, Type(_oldValue_)::unit). 1. Perform ? PutValue(_lhs_, _newValue_). 1. Return _oldValue_. @@ -19422,7 +19422,7 @@

Runtime Semantics: Evaluation

1. Let _lhs_ be the result of evaluating |LeftHandSideExpression|. 1. Let _oldValue_ be ? ToNumeric(? GetValue(_lhs_)). - 1. Let _newValue_ be ! Type(_oldValue_)::subtract(_oldValue_, Type(_oldValue_)::unit). + 1. Let _newValue_ be ! Type(_oldValue_)::subtract(_oldValue_, Type(_oldValue_)::unit). 1. Perform ? PutValue(_lhs_, _newValue_). 1. Return _oldValue_. @@ -19438,7 +19438,7 @@

Runtime Semantics: Evaluation

1. Let _expr_ be the result of evaluating |UnaryExpression|. 1. Let _oldValue_ be ? ToNumeric(? GetValue(_expr_)). - 1. Let _newValue_ be ! Type(_oldValue_)::add(_oldValue_, Type(_oldValue_)::unit). + 1. Let _newValue_ be ! Type(_oldValue_)::add(_oldValue_, Type(_oldValue_)::unit). 1. Perform ? PutValue(_expr_, _newValue_). 1. Return _newValue_. @@ -19454,7 +19454,7 @@

Runtime Semantics: Evaluation

1. Let _expr_ be the result of evaluating |UnaryExpression|. 1. Let _oldValue_ be ? ToNumeric(? GetValue(_expr_)). - 1. Let _newValue_ be ! Type(_oldValue_)::subtract(_oldValue_, Type(_oldValue_)::unit). + 1. Let _newValue_ be ! Type(_oldValue_)::subtract(_oldValue_, Type(_oldValue_)::unit). 1. Perform ? PutValue(_expr_, _newValue_). 1. Return _newValue_. @@ -19512,7 +19512,7 @@

Runtime Semantics: Evaluation

1. Assert: _ref_.[[Strict]] is *false*. 1. Return *true*. 1. If IsPropertyReference(_ref_) is *true*, then - 1. Assert: ! IsPrivateReference(_ref_) is *false*. + 1. Assert: ! IsPrivateReference(_ref_) is *false*. 1. If IsSuperReference(_ref_) is *true*, throw a *ReferenceError* exception. 1. [id="step-delete-operator-toobject"] Let _baseObj_ be ? ToObject(_ref_.[[Base]]). 1. Let _deleteStatus_ be ? _baseObj_.[[Delete]](_ref_.[[ReferencedName]]). @@ -20739,7 +20739,7 @@

1. Let _nextValue_ be IteratorValue(_next_). 1. If _nextValue_ is an abrupt completion, set _iteratorRecord_.[[Done]] to *true*. 1. ReturnIfAbrupt(_nextValue_). - 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_n_)), _nextValue_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_n_)), _nextValue_). 1. Set _n_ to _n_ + 1. 1. If |DestructuringAssignmentTarget| is neither an |ObjectLiteral| nor an |ArrayLiteral|, then 1. Return ? PutValue(_lref_, _A_). @@ -21903,7 +21903,7 @@

1. Return Completion { [[Type]]: ~break~, [[Value]]: ~empty~, [[Target]]: ~empty~ }. 1. Let _obj_ be ! ToObject(_exprValue_). 1. Let _iterator_ be ? EnumerateObjectProperties(_obj_). - 1. Let _nextMethod_ be ! GetV(_iterator_, *"next"*). + 1. Let _nextMethod_ be ! GetV(_iterator_, *"next"*). 1. Return the Record { [[Iterator]]: _iterator_, [[NextMethod]]: _nextMethod_, [[Done]]: *false* }. 1. Else, 1. Assert: _iterationKind_ is ~iterate~ or ~async-iterate~. @@ -21954,7 +21954,7 @@

1. If _destructuring_ is *false*, then 1. Assert: _lhs_ binds a single name. 1. Let _lhsName_ be the sole element of BoundNames of _lhs_. - 1. Let _lhsRef_ be ! ResolveBinding(_lhsName_). + 1. Let _lhsRef_ be ! ResolveBinding(_lhsName_). 1. If _destructuring_ is *false*, then 1. If _lhsRef_ is an abrupt completion, then 1. Let _status_ be _lhsRef_. @@ -23567,7 +23567,7 @@

1. Perform MakeMethod(_closure_, _object_). 1. Perform SetFunctionName(_closure_, _propKey_). 1. Let _prototype_ be ! OrdinaryObjectCreate(%GeneratorFunction.prototype.prototype%). - 1. Perform ! DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return ? DefineMethodProperty(_object_, _propKey_, _closure_, _enumerable_). @@ -23581,9 +23581,9 @@

1. Let _sourceText_ be the source text matched by |AsyncGeneratorMethod|. 1. Let _closure_ be ! OrdinaryFunctionCreate(%AsyncGeneratorFunction.prototype%, _sourceText_, |UniqueFormalParameters|, |AsyncGeneratorBody|, ~non-lexical-this~, _scope_, _privateScope_). 1. Perform ! MakeMethod(_closure_, _object_). - 1. Perform ! SetFunctionName(_closure_, _propKey_). + 1. Perform ! SetFunctionName(_closure_, _propKey_). 1. Let _prototype_ be ! OrdinaryObjectCreate(%AsyncGeneratorFunction.prototype.prototype%). - 1. Perform ! DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return ? DefineMethodProperty(_object_, _propKey_, _closure_, _enumerable_). @@ -23953,7 +23953,7 @@

1. Let _F_ be ! OrdinaryFunctionCreate(%AsyncGeneratorFunction.prototype%, _sourceText_, |FormalParameters|, |AsyncGeneratorBody|, ~non-lexical-this~, _scope_, _privateScope_). 1. Perform ! SetFunctionName(_F_, _name_). 1. Let _prototype_ be ! OrdinaryObjectCreate(%AsyncGeneratorFunction.prototype.prototype%). - 1. Perform ! DefinePropertyOrThrow(_F_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! DefinePropertyOrThrow(_F_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return _F_. @@ -23991,7 +23991,7 @@

1. Let _closure_ be ! OrdinaryFunctionCreate(%AsyncGeneratorFunction.prototype%, _sourceText_, |FormalParameters|, |AsyncGeneratorBody|, ~non-lexical-this~, _scope_, _privateScope_). 1. Perform SetFunctionName(_closure_, _name_). 1. Let _prototype_ be ! OrdinaryObjectCreate(%AsyncGeneratorFunction.prototype.prototype%). - 1. Perform ! DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return _closure_. @@ -24008,7 +24008,7 @@

1. Let _closure_ be ! OrdinaryFunctionCreate(%AsyncGeneratorFunction.prototype%, _sourceText_, |FormalParameters|, |AsyncGeneratorBody|, ~non-lexical-this~, _funcEnv_, _privateScope_). 1. Perform ! SetFunctionName(_closure_, _name_). 1. Let _prototype_ be ! OrdinaryObjectCreate(%AsyncGeneratorFunction.prototype.prototype%). - 1. Perform ! DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Perform ! _funcEnv_.InitializeBinding(_name_, _closure_). 1. Return _closure_. @@ -24663,7 +24663,7 @@

1. Perform ! SetFunctionName(_F_, _className_). 1. Perform ! MakeConstructor(_F_, *false*, _proto_). 1. If |ClassHeritage_opt| is present, set _F_.[[ConstructorKind]] to ~derived~. - 1. Perform ! CreateMethodProperty(_proto_, *"constructor"*, _F_). + 1. Perform ! CreateMethodProperty(_proto_, *"constructor"*, _F_). 1. If |ClassBody_opt| is not present, let _elements_ be a new empty List. 1. Else, let _elements_ be NonConstructorElements of |ClassBody|. 1. Let _instancePrivateMethods_ be a new empty List. @@ -24938,12 +24938,12 @@

AsyncFunctionBody : FunctionBody - 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). + 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). 1. Let _declResult_ be FunctionDeclarationInstantiation(_functionObject_, _argumentsList_). 1. If _declResult_ is not an abrupt completion, then 1. Perform ! AsyncFunctionStart(_promiseCapability_, |FunctionBody|). 1. Else, - 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _declResult_.[[Value]] »). + 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _declResult_.[[Value]] »). 1. Return Completion { [[Type]]: ~return~, [[Value]]: _promiseCapability_.[[Promise]], [[Target]]: ~empty~ }. @@ -25046,12 +25046,12 @@

AsyncConciseBody : ExpressionBody - 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). + 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). 1. Let _declResult_ be FunctionDeclarationInstantiation(_functionObject_, _argumentsList_). 1. If _declResult_ is not an abrupt completion, then 1. Perform ! AsyncFunctionStart(_promiseCapability_, |ExpressionBody|). 1. Else, - 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _declResult_.[[Value]] »). + 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _declResult_.[[Value]] »). 1. Return Completion { [[Type]]: ~return~, [[Value]]: _promiseCapability_.[[Promise]], [[Target]]: ~empty~ }. @@ -26251,7 +26251,7 @@

Evaluate ( )

1. If _module_.[[TopLevelCapability]] is not ~empty~, then 1. Return _module_.[[TopLevelCapability]].[[Promise]]. 1. Let _stack_ be a new empty List. - 1. Let _capability_ be ! NewPromiseCapability(%Promise%). + 1. Let _capability_ be ! NewPromiseCapability(%Promise%). 1. Set _module_.[[TopLevelCapability]] to _capability_. 1. Let _result_ be InnerModuleEvaluation(_module_, _stack_, 0). 1. If _result_ is an abrupt completion, then @@ -26261,13 +26261,13 @@

Evaluate ( )

1. Set _m_.[[EvaluationError]] to _result_. 1. Assert: _module_.[[Status]] is ~evaluated~. 1. Assert: _module_.[[EvaluationError]] is _result_. - 1. Perform ! Call(_capability_.[[Reject]], *undefined*, « _result_.[[Value]] »). + 1. Perform ! Call(_capability_.[[Reject]], *undefined*, « _result_.[[Value]] »). 1. Else, 1. Assert: _module_.[[Status]] is ~evaluating-async~ or ~evaluated~. 1. Assert: _module_.[[EvaluationError]] is ~empty~. 1. If _module_.[[AsyncEvaluation]] is *false*, then 1. Assert: _module_.[[Status]] is ~evaluated~. - 1. Perform ! Call(_capability_.[[Resolve]], *undefined*, « *undefined* »). + 1. Perform ! Call(_capability_.[[Resolve]], *undefined*, « *undefined* »). 1. Assert: _stack_ is empty. 1. Return _capability_.[[Promise]]. @@ -26359,7 +26359,7 @@

1. Assert: _module_.[[Status]] is ~evaluating~ or ~evaluating-async~. 1. Assert: _module_.[[HasTLA]] is *true*. - 1. Let _capability_ be ! NewPromiseCapability(%Promise%). + 1. Let _capability_ be ! NewPromiseCapability(%Promise%). 1. Let _fulfilledClosure_ be a new Abstract Closure with no parameters that captures _module_ and performs the following steps when called: 1. Perform ! AsyncModuleExecutionFulfilled(_module_). 1. Return *undefined*. @@ -26418,7 +26418,7 @@

1. Set _module_.[[Status]] to ~evaluated~. 1. If _module_.[[TopLevelCapability]] is not ~empty~, then 1. Assert: _module_.[[CycleRoot]] is _module_. - 1. Perform ! Call(_module_.[[TopLevelCapability]].[[Resolve]], *undefined*, « *undefined* »). + 1. Perform ! Call(_module_.[[TopLevelCapability]].[[Resolve]], *undefined*, « *undefined* »). 1. Let _execList_ be a new empty List. 1. Perform ! GatherAvailableAncestors(_module_, _execList_). 1. Let _sortedExecList_ be a List whose elements are the elements of _execList_, in the order in which they had their [[AsyncEvaluation]] fields set to *true* in InnerModuleEvaluation. @@ -26436,7 +26436,7 @@

1. Set _m_.[[Status]] to ~evaluated~. 1. If _m_.[[TopLevelCapability]] is not ~empty~, then 1. Assert: _m_.[[CycleRoot]] is _m_. - 1. Perform ! Call(_m_.[[TopLevelCapability]].[[Resolve]], *undefined*, « *undefined* »). + 1. Perform ! Call(_m_.[[TopLevelCapability]].[[Resolve]], *undefined*, « *undefined* »). @@ -26462,7 +26462,7 @@

1. Perform ! AsyncModuleExecutionRejected(_m_, _error_). 1. If _module_.[[TopLevelCapability]] is not ~empty~, then 1. Assert: _module_.[[CycleRoot]] is _module_. - 1. Perform ! Call(_module_.[[TopLevelCapability]].[[Reject]], *undefined*, « _error_ »). + 1. Perform ! Call(_module_.[[TopLevelCapability]].[[Reject]], *undefined*, « _error_ »). @@ -27734,13 +27734,13 @@

1. Assert: Evaluate has already been invoked on _moduleRecord_ and successfully completed. 1. Let _namespace_ be GetModuleNamespace(_moduleRecord_). 1. If _namespace_ is an abrupt completion, then - 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _namespace_.[[Value]] »). + 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _namespace_.[[Value]] »). 1. Else, - 1. Perform ! Call(_promiseCapability_.[[Resolve]], *undefined*, « _namespace_.[[Value]] »). + 1. Perform ! Call(_promiseCapability_.[[Resolve]], *undefined*, « _namespace_.[[Value]] »). 1. Return *undefined*. 1. Let _onFulfilled_ be ! CreateBuiltinFunction(_fulfilledClosure_, 0, *""*, « »). 1. Let _rejectedClosure_ be a new Abstract Closure with parameters (_error_) that captures _promiseCapability_ and performs the following steps when called: - 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _error_ »). + 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _error_ »). 1. Return *undefined*. 1. Let _onRejected_ be ! CreateBuiltinFunction(_rejectedClosure_, 0, *""*, « »). 1. Perform ! PerformPromiseThen(_innerPromise_, _onFulfilled_, _onRejected_). @@ -28696,7 +28696,7 @@

parseFloat ( _string_ )

The `parseFloat` function is the %parseFloat% intrinsic object. When the `parseFloat` function is called with one argument _string_, the following steps are taken:

1. Let _inputString_ be ? ToString(_string_). - 1. Let _trimmedString_ be ! TrimString(_inputString_, ~start~). + 1. Let _trimmedString_ be ! TrimString(_inputString_, ~start~). 1. If neither _trimmedString_ nor any prefix of _trimmedString_ satisfies the syntax of a |StrDecimalLiteral| (see ), return *NaN*. 1. Let _numberString_ be the longest prefix of _trimmedString_, which might be _trimmedString_ itself, that satisfies the syntax of a |StrDecimalLiteral|. 1. Let _parsedNumber_ be ParseText(! StringToCodePoints(_numberString_), |StrDecimalLiteral|). @@ -28714,7 +28714,7 @@

parseInt ( _string_, _radix_ )

The `parseInt` function is the %parseInt% intrinsic object. When the `parseInt` function is called, the following steps are taken:

1. Let _inputString_ be ? ToString(_string_). - 1. Let _S_ be ! TrimString(_inputString_, ~start~). + 1. Let _S_ be ! TrimString(_inputString_, ~start~). 1. Let _sign_ be 1. 1. If _S_ is not empty and the first code unit of _S_ is the code unit 0x002D (HYPHEN-MINUS), set _sign_ to -1. 1. If _S_ is not empty and the first code unit of _S_ is the code unit 0x002B (PLUS SIGN) or the code unit 0x002D (HYPHEN-MINUS), remove the first code unit from _S_. @@ -29321,7 +29321,7 @@

Object.fromEntries ( _iterable_ )

1. Assert: _obj_ is an extensible ordinary object with no own properties. 1. Let _closure_ be a new Abstract Closure with parameters (_key_, _value_) that captures _obj_ and performs the following steps when called: 1. Let _propertyKey_ be ? ToPropertyKey(_key_). - 1. Perform ! CreateDataPropertyOrThrow(_obj_, _propertyKey_, _value_). + 1. Perform ! CreateDataPropertyOrThrow(_obj_, _propertyKey_, _value_). 1. Return *undefined*. 1. Let _adder_ be ! CreateBuiltinFunction(_closure_, 2, *""*, « »). 1. Return ? AddEntriesFromIterable(_obj_, _iterable_, _adder_). @@ -29352,7 +29352,7 @@

Object.getOwnPropertyDescriptors ( _O_ )

1. For each element _key_ of _ownKeys_, do 1. Let _desc_ be ? _obj_.[[GetOwnProperty]](_key_). 1. Let _descriptor_ be ! FromPropertyDescriptor(_desc_). - 1. If _descriptor_ is not *undefined*, perform ! CreateDataPropertyOrThrow(_descriptors_, _key_, _descriptor_). + 1. If _descriptor_ is not *undefined*, perform ! CreateDataPropertyOrThrow(_descriptors_, _key_, _descriptor_). 1. Return _descriptors_.
@@ -29917,7 +29917,7 @@

Function.prototype.bind ( _thisArg_, ..._args_ )

1. If _targetLen_ is *+∞*𝔽, set _L_ to +∞. 1. Else if _targetLen_ is *-∞*𝔽, set _L_ to 0. 1. Else, - 1. Let _targetLenAsInt_ be ! ToIntegerOrInfinity(_targetLen_). + 1. Let _targetLenAsInt_ be ! ToIntegerOrInfinity(_targetLen_). 1. Assert: _targetLenAsInt_ is finite. 1. Let _argCount_ be the number of elements in _args_. 1. Set _L_ to max(_targetLenAsInt_ - _argCount_, 0). @@ -30442,7 +30442,7 @@

Error ( _message_ )

1. If _message_ is not *undefined*, then 1. Let _msg_ be ? ToString(_message_). 1. Let _msgDesc_ be the PropertyDescriptor { [[Value]]: _msg_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *true* }. - 1. Perform ! DefinePropertyOrThrow(_O_, *"message"*, _msgDesc_). + 1. Perform ! DefinePropertyOrThrow(_O_, *"message"*, _msgDesc_). 1. Return _O_.
@@ -30573,7 +30573,7 @@

_NativeError_ ( _message_ )

1. If _message_ is not *undefined*, then 1. Let _msg_ be ? ToString(_message_). 1. Let _msgDesc_ be the PropertyDescriptor { [[Value]]: _msg_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *true* }. - 1. Perform ! DefinePropertyOrThrow(_O_, *"message"*, _msgDesc_). + 1. Perform ! DefinePropertyOrThrow(_O_, *"message"*, _msgDesc_). 1. Return _O_.

The actual value of the string passed in step is either *"%EvalError.prototype%"*, *"%RangeError.prototype%"*, *"%ReferenceError.prototype%"*, *"%SyntaxError.prototype%"*, *"%TypeError.prototype%"*, or *"%URIError.prototype%"* corresponding to which _NativeError_ constructor is being defined.

@@ -30649,9 +30649,9 @@

AggregateError ( _errors_, _message_ )

1. If _message_ is not *undefined*, then 1. Let _msg_ be ? ToString(_message_). 1. Let _msgDesc_ be the PropertyDescriptor { [[Value]]: _msg_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *true* }. - 1. Perform ! DefinePropertyOrThrow(_O_, *"message"*, _msgDesc_). + 1. Perform ! DefinePropertyOrThrow(_O_, *"message"*, _msgDesc_). 1. Let _errorsList_ be ? IterableToList(_errors_). - 1. Perform ! DefinePropertyOrThrow(_O_, *"errors"*, PropertyDescriptor { [[Configurable]]: *true*, [[Enumerable]]: *false*, [[Writable]]: *true*, [[Value]]: ! CreateArrayFromList(_errorsList_) }). + 1. Perform ! DefinePropertyOrThrow(_O_, *"errors"*, PropertyDescriptor { [[Configurable]]: *true*, [[Enumerable]]: *false*, [[Writable]]: *true*, [[Value]]: ! CreateArrayFromList(_errorsList_) }). 1. Return _O_. @@ -30955,7 +30955,7 @@

Number.prototype.toFixed ( _fractionDigits_ )

1. Set _s_ to *"-"*. 1. Set _x_ to -_x_. 1. If _x_ ≥ 1021, then - 1. Let _m_ be ! ToString(𝔽(_x_)). + 1. Let _m_ be ! ToString(𝔽(_x_)). 1. Else, 1. Let _n_ be an integer for which _n_ / 10_f_ - _x_ is as close to zero as possible. If there are two such _n_, pick the larger _n_. 1. If _n_ = 0, let _m_ be the String *"0"*. Otherwise, let _m_ be the String value consisting of the digits of the decimal representation of _n_ (in order, with no leading zeroes). @@ -30990,7 +30990,7 @@

Number.prototype.toPrecision ( _precision_ )

Return a String containing this Number value represented either in decimal exponential notation with one digit before the significand's decimal point and _precision_ - 1 digits after the significand's decimal point or in decimal fixed notation with _precision_ significant digits. If _precision_ is *undefined*, call ToString instead. Specifically, perform the following steps:

1. Let _x_ be ? thisNumberValue(*this* value). - 1. If _precision_ is *undefined*, return ! ToString(_x_). + 1. If _precision_ is *undefined*, return ! ToString(_x_). 1. Let _p_ be ? ToIntegerOrInfinity(_precision_). 1. If _x_ is not finite, return ! Number::toString(_x_). 1. If _p_ < 1 or _p_ > 100, throw a *RangeError* exception. @@ -31039,7 +31039,7 @@

Number.prototype.toString ( [ _radix_ ] )

1. If _radix_ is *undefined*, let _radixMV_ be 10. 1. Else, let _radixMV_ be ? ToIntegerOrInfinity(_radix_). 1. If _radixMV_ < 2 or _radixMV_ > 36, throw a *RangeError* exception. - 1. If _radixMV_ = 10, return ! ToString(_x_). + 1. If _radixMV_ = 10, return ! ToString(_x_). 1. Return the String representation of this Number value using the radix specified by _radixMV_. Letters `a`-`z` are used for digits with values 10 through 35. The precise algorithm is implementation-defined, however the algorithm should be a generalization of that specified in .

The `toString` function is not generic; it throws a *TypeError* exception if its *this* value is not a Number or a Number object. Therefore, it cannot be transferred to other kinds of objects for use as a method.

@@ -31176,7 +31176,7 @@

BigInt.prototype.toString ( [ _radix_ ] )

1. If _radix_ is *undefined*, let _radixMV_ be 10. 1. Else, let _radixMV_ be ? ToIntegerOrInfinity(_radix_). 1. If _radixMV_ < 2 or _radixMV_ > 36, throw a *RangeError* exception. - 1. If _radixMV_ = 10, return ! ToString(_x_). + 1. If _radixMV_ = 10, return ! ToString(_x_). 1. Return the String representation of this Number value using the radix specified by _radixMV_. Letters `a`-`z` are used for digits with values 10 through 35. The precise algorithm is implementation-defined, however the algorithm should be a generalization of that specified in .

The `toString` function is not generic; it throws a *TypeError* exception if its *this* value is not a BigInt or a BigInt object. Therefore, it cannot be transferred to other kinds of objects for use as a method.

@@ -31987,10 +31987,10 @@

1. If _hour_ is not finite or _min_ is not finite or _sec_ is not finite or _ms_ is not finite, return *NaN*. - 1. Let _h_ be 𝔽(! ToIntegerOrInfinity(_hour_)). - 1. Let _m_ be 𝔽(! ToIntegerOrInfinity(_min_)). - 1. Let _s_ be 𝔽(! ToIntegerOrInfinity(_sec_)). - 1. Let _milli_ be 𝔽(! ToIntegerOrInfinity(_ms_)). + 1. Let _h_ be 𝔽(! ToIntegerOrInfinity(_hour_)). + 1. Let _m_ be 𝔽(! ToIntegerOrInfinity(_min_)). + 1. Let _s_ be 𝔽(! ToIntegerOrInfinity(_sec_)). + 1. Let _milli_ be 𝔽(! ToIntegerOrInfinity(_ms_)). 1. Let _t_ be ((_h_ `*` msPerHour `+` _m_ `*` msPerMinute) `+` _s_ `*` msPerSecond) `+` _milli_, performing the arithmetic according to IEEE 754-2019 rules (that is, as if using the ECMAScript operators `*` and `+`). 1. Return _t_. @@ -32010,9 +32010,9 @@

1. If _year_ is not finite or _month_ is not finite or _date_ is not finite, return *NaN*. - 1. Let _y_ be 𝔽(! ToIntegerOrInfinity(_year_)). - 1. Let _m_ be 𝔽(! ToIntegerOrInfinity(_month_)). - 1. Let _dt_ be 𝔽(! ToIntegerOrInfinity(_date_)). + 1. Let _y_ be 𝔽(! ToIntegerOrInfinity(_year_)). + 1. Let _m_ be 𝔽(! ToIntegerOrInfinity(_month_)). + 1. Let _dt_ be 𝔽(! ToIntegerOrInfinity(_date_)). 1. Let _ym_ be _y_ + 𝔽(floor(ℝ(_m_) / 12)). 1. If _ym_ is not finite, return *NaN*. 1. Let _mn_ be 𝔽(ℝ(_m_) modulo 12). @@ -32053,7 +32053,7 @@

1. If _time_ is not finite, return *NaN*. 1. If abs(ℝ(_time_)) > 8.64 × 1015, return *NaN*. - 1. Return 𝔽(! ToIntegerOrInfinity(_time_)). + 1. Return 𝔽(! ToIntegerOrInfinity(_time_)). @@ -32273,7 +32273,7 @@

Date ( ..._values_ )

1. If _numberOfArgs_ > 6, let _milli_ be ? ToNumber(_values_[6]); else let _milli_ be *+0*𝔽. 1. If _y_ is *NaN*, let _yr_ be *NaN*. 1. Else, - 1. Let _yi_ be ! ToIntegerOrInfinity(_y_). + 1. Let _yi_ be ! ToIntegerOrInfinity(_y_). 1. If 0 ≤ _yi_ ≤ 99, let _yr_ be *1900*𝔽 + 𝔽(_yi_); otherwise, let _yr_ be _y_. 1. Let _finalDate_ be MakeDate(MakeDay(_yr_, _m_, _dt_), MakeTime(_h_, _min_, _s_, _milli_)). 1. Let _dv_ be TimeClip(UTC(_finalDate_)). @@ -32334,7 +32334,7 @@

Date.UTC ( _year_ [ , _month_ [ , _date_ [ , _hours_ [ , _minutes_ [ , _seco 1. If _ms_ is present, let _milli_ be ? ToNumber(_ms_); else let _milli_ be *+0*𝔽. 1. If _y_ is *NaN*, let _yr_ be *NaN*. 1. Else, - 1. Let _yi_ be ! ToIntegerOrInfinity(_y_). + 1. Let _yi_ be ! ToIntegerOrInfinity(_y_). 1. If 0 ≤ _yi_ ≤ 99, let _yr_ be *1900*𝔽 + 𝔽(_yi_); otherwise, let _yr_ be _y_. 1. Return TimeClip(MakeDate(MakeDay(_yr_, _m_, _dt_), MakeTime(_h_, _min_, _s_, _milli_))). @@ -32909,7 +32909,7 @@

1. Let _yv_ be YearFromTime(_tv_). 1. If _yv_ ≥ *+0*𝔽, let _yearSign_ be the empty String; otherwise, let _yearSign_ be *"-"*. 1. Let _year_ be the String representation of abs(ℝ(_yv_)), formatted as a decimal number. - 1. Let _paddedYear_ be ! StringPad(_year_, *4*𝔽, *"0"*, ~start~). + 1. Let _paddedYear_ be ! StringPad(_year_, *4*𝔽, *"0"*, ~start~). 1. Return the string-concatenation of _weekday_, the code unit 0x0020 (SPACE), _month_, the code unit 0x0020 (SPACE), _day_, the code unit 0x0020 (SPACE), _yearSign_, and _paddedYear_. @@ -33158,7 +33158,7 @@

Date.prototype.toUTCString ( )

1. Let _yv_ be YearFromTime(_tv_). 1. If _yv_ ≥ *+0*𝔽, let _yearSign_ be the empty String; otherwise, let _yearSign_ be *"-"*. 1. Let _year_ be the String representation of abs(ℝ(_yv_)), formatted as a decimal number. - 1. Let _paddedYear_ be ! StringPad(_year_, *4*𝔽, *"0"*, ~start~). + 1. Let _paddedYear_ be ! StringPad(_year_, *4*𝔽, *"0"*, ~start~). 1. Return the string-concatenation of _weekday_, *","*, the code unit 0x0020 (SPACE), _day_, the code unit 0x0020 (SPACE), _month_, the code unit 0x0020 (SPACE), _yearSign_, _paddedYear_, the code unit 0x0020 (SPACE), and TimeString(_tv_). @@ -33284,7 +33284,7 @@

String.raw ( _template_, ..._substitutions_ )

1. Let _stringElements_ be a new empty List. 1. Let _nextIndex_ be 0. 1. Repeat, - 1. Let _nextKey_ be ! ToString(𝔽(_nextIndex_)). + 1. Let _nextKey_ be ! ToString(𝔽(_nextIndex_)). 1. Let _nextSeg_ be ? ToString(? Get(_raw_, _nextKey_)). 1. Append the code unit elements of _nextSeg_ to the end of _stringElements_. 1. If _nextIndex_ + 1 = _literalSegments_, then @@ -33514,7 +33514,7 @@

String.prototype.lastIndexOf ( _searchString_ [ , _position_ ] )

1. Let _searchStr_ be ? ToString(_searchString_). 1. Let _numPos_ be ? ToNumber(_position_). 1. Assert: If _position_ is *undefined*, then _numPos_ is *NaN*. - 1. If _numPos_ is *NaN*, let _pos_ be +∞; otherwise, let _pos_ be ! ToIntegerOrInfinity(_numPos_). + 1. If _numPos_ is *NaN*, let _pos_ be +∞; otherwise, let _pos_ be ! ToIntegerOrInfinity(_numPos_). 1. Let _len_ be the length of _S_. 1. Let _start_ be the result of clamping _pos_ between 0 and _len_. 1. If _searchStr_ is the empty String, return 𝔽(_start_). @@ -33966,12 +33966,12 @@

String.prototype.split ( _separator_, _limit_ )

1. Let _R_ be ? ToString(_separator_). 1. If _lim_ = 0, return _A_. 1. If _separator_ is *undefined*, then - 1. Perform ! CreateDataPropertyOrThrow(_A_, *"0"*, _S_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, *"0"*, _S_). 1. Return _A_. 1. Let _s_ be the length of _S_. 1. If _s_ = 0, then 1. If _R_ is not the empty String, then - 1. Perform ! CreateDataPropertyOrThrow(_A_, *"0"*, _S_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, *"0"*, _S_). 1. Return _A_. 1. Let _p_ be 0. 1. Let _q_ be _p_. @@ -33983,13 +33983,13 @@

String.prototype.split ( _separator_, _limit_ )

1. If _e_ = _p_, set _q_ to _q_ + 1. 1. Else, 1. Let _T_ be the substring of _S_ from _p_ to _q_. - 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_lengthA_)), _T_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_lengthA_)), _T_). 1. Set _lengthA_ to _lengthA_ + 1. 1. If _lengthA_ = _lim_, return _A_. 1. Set _p_ to _e_. 1. Set _q_ to _p_. 1. Let _T_ be the substring of _S_ from _p_ to _s_. - 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_lengthA_)), _T_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_lengthA_)), _T_). 1. Return _A_. @@ -35851,7 +35851,7 @@

1. Let _obj_ be ? OrdinaryCreateFromConstructor(_newTarget_, *"%RegExp.prototype%"*, « [[RegExpMatcher]], [[OriginalSource]], [[OriginalFlags]] »). - 1. Perform ! DefinePropertyOrThrow(_obj_, *"lastIndex"*, PropertyDescriptor { [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! DefinePropertyOrThrow(_obj_, *"lastIndex"*, PropertyDescriptor { [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return _obj_. @@ -36065,15 +36065,15 @@

1. Assert: _n_ < 232 - 1. 1. Let _A_ be ! ArrayCreate(_n_ + 1). 1. Assert: The mathematical value of _A_'s *"length"* property is _n_ + 1. - 1. Perform ! CreateDataPropertyOrThrow(_A_, *"index"*, 𝔽(_lastIndex_)). - 1. Perform ! CreateDataPropertyOrThrow(_A_, *"input"*, _S_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, *"index"*, 𝔽(_lastIndex_)). + 1. Perform ! CreateDataPropertyOrThrow(_A_, *"input"*, _S_). 1. Let _matchedSubstr_ be the substring of _S_ from _lastIndex_ to _e_. - 1. Perform ! CreateDataPropertyOrThrow(_A_, *"0"*, _matchedSubstr_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, *"0"*, _matchedSubstr_). 1. If _R_ contains any |GroupName|, then 1. Let _groups_ be ! OrdinaryObjectCreate(*null*). 1. Else, 1. Let _groups_ be *undefined*. - 1. Perform ! CreateDataPropertyOrThrow(_A_, *"groups"*, _groups_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, *"groups"*, _groups_). 1. For each integer _i_ such that _i_ ≥ 1 and _i_ ≤ _n_, in ascending order, do 1. Let _captureI_ be _i_th element of _r_'s _captures_ List. 1. If _captureI_ is *undefined*, let _capturedValue_ be *undefined*. @@ -36084,10 +36084,10 @@

1. Assert: _fullUnicode_ is *false*. 1. Assert: _captureI_ is a List of code units. 1. Let _capturedValue_ be the String value consisting of the code units of _captureI_. - 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_i_)), _capturedValue_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_i_)), _capturedValue_). 1. If the _i_th capture of _R_ was defined with a |GroupName|, then 1. Let _s_ be the CapturingGroupName of the corresponding |RegExpIdentifierName|. - 1. Perform ! CreateDataPropertyOrThrow(_groups_, _s_, _capturedValue_). + 1. Perform ! CreateDataPropertyOrThrow(_groups_, _s_, _capturedValue_). 1. Return _A_. @@ -36209,7 +36209,7 @@

RegExp.prototype [ @@match ] ( _string_ )

1. Return _A_. 1. Else, 1. Let _matchStr_ be ? ToString(? Get(_result_, *"0"*)). - 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_n_)), _matchStr_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_n_)), _matchStr_). 1. If _matchStr_ is the empty String, then 1. Let _thisIndex_ be ℝ(? ToLength(? Get(_rx_, *"lastIndex"*))). 1. Let _nextIndex_ be AdvanceStringIndex(_S_, _thisIndex_, _fullUnicode_). @@ -36238,7 +36238,7 @@

RegExp.prototype [ @@matchAll ] ( _string_ )

1. Else, let _global_ be *false*. 1. If _flags_ contains *"u"*, let _fullUnicode_ be *true*. 1. Else, let _fullUnicode_ be *false*. - 1. Return ! CreateRegExpStringIterator(_matcher_, _S_, _global_, _fullUnicode_). + 1. Return ! CreateRegExpStringIterator(_matcher_, _S_, _global_, _fullUnicode_).

The value of the *"name"* property of this function is *"[Symbol.matchAll]"*.

@@ -36294,7 +36294,7 @@

RegExp.prototype [ @@replace ] ( _string_, _replaceValue_ )

1. Let _n_ be 1. 1. Let _captures_ be a new empty List. 1. Repeat, while _n_ ≤ _nCaptures_, - 1. Let _capN_ be ? Get(_result_, ! ToString(𝔽(_n_))). + 1. Let _capN_ be ? Get(_result_, ! ToString(𝔽(_n_))). 1. If _capN_ is not *undefined*, then 1. Set _capN_ to ? ToString(_capN_). 1. Append _capN_ as the last element of _captures_. @@ -36393,7 +36393,7 @@

RegExp.prototype [ @@split ] ( _string_, _limit_ )

1. If _size_ is 0, then 1. Let _z_ be ? RegExpExec(_splitter_, _S_). 1. If _z_ is not *null*, return _A_. - 1. Perform ! CreateDataPropertyOrThrow(_A_, *"0"*, _S_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, *"0"*, _S_). 1. Return _A_. 1. Let _p_ be 0. 1. Let _q_ be _p_. @@ -36407,7 +36407,7 @@

RegExp.prototype [ @@split ] ( _string_, _limit_ )

1. If _e_ = _p_, set _q_ to AdvanceStringIndex(_S_, _q_, _unicodeMatching_). 1. Else, 1. Let _T_ be the substring of _S_ from _p_ to _q_. - 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_lengthA_)), _T_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_lengthA_)), _T_). 1. Set _lengthA_ to _lengthA_ + 1. 1. If _lengthA_ = _lim_, return _A_. 1. Set _p_ to _e_. @@ -36415,14 +36415,14 @@

RegExp.prototype [ @@split ] ( _string_, _limit_ )

1. Set _numberOfCaptures_ to max(_numberOfCaptures_ - 1, 0). 1. Let _i_ be 1. 1. Repeat, while _i_ ≤ _numberOfCaptures_, - 1. Let _nextCapture_ be ? Get(_z_, ! ToString(𝔽(_i_))). - 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_lengthA_)), _nextCapture_). + 1. Let _nextCapture_ be ? Get(_z_, ! ToString(𝔽(_i_))). + 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_lengthA_)), _nextCapture_). 1. Set _i_ to _i_ + 1. 1. Set _lengthA_ to _lengthA_ + 1. 1. If _lengthA_ = _lim_, return _A_. 1. Set _q_ to _p_. 1. Let _T_ be the substring of _S_ from _p_ to _size_. - 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_lengthA_)), _T_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_lengthA_)), _T_). 1. Return _A_.

The value of the *"name"* property of this function is *"[Symbol.split]"*.

@@ -36586,21 +36586,21 @@

Array ( ..._values_ )

1. Let _len_ be _values_[0]. 1. Let _array_ be ! ArrayCreate(0, _proto_). 1. If Type(_len_) is not Number, then - 1. Perform ! CreateDataPropertyOrThrow(_array_, *"0"*, _len_). + 1. Perform ! CreateDataPropertyOrThrow(_array_, *"0"*, _len_). 1. Let _intLen_ be *1*𝔽. 1. Else, - 1. Let _intLen_ be ! ToUint32(_len_). + 1. Let _intLen_ be ! ToUint32(_len_). 1. If SameValueZero(_intLen_, _len_) is *false*, throw a *RangeError* exception. - 1. Perform ! Set(_array_, *"length"*, _intLen_, *true*). + 1. Perform ! Set(_array_, *"length"*, _intLen_, *true*). 1. Return _array_. 1. Else, 1. Assert: _numberOfArgs_ ≥ 2. 1. Let _array_ be ? ArrayCreate(_numberOfArgs_, _proto_). 1. Let _k_ be 0. 1. Repeat, while _k_ < _numberOfArgs_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _itemK_ be _values_[_k_]. - 1. Perform ! CreateDataPropertyOrThrow(_array_, _Pk_, _itemK_). + 1. Perform ! CreateDataPropertyOrThrow(_array_, _Pk_, _itemK_). 1. Set _k_ to _k_ + 1. 1. Assert: The mathematical value of _array_'s *"length"* property is _numberOfArgs_. 1. Return _array_. @@ -36637,7 +36637,7 @@

Array.from ( _items_ [ , _mapfn_ [ , _thisArg_ ] ] )

1. If _k_ ≥ 253 - 1, then 1. Let _error_ be ThrowCompletion(a newly created *TypeError* object). 1. Return ? IteratorClose(_iteratorRecord_, _error_). - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _next_ be ? IteratorStep(_iteratorRecord_). 1. If _next_ is *false*, then 1. Perform ? Set(_A_, *"length"*, 𝔽(_k_), *true*). @@ -36659,7 +36659,7 @@

Array.from ( _items_ [ , _mapfn_ [ , _thisArg_ ] ] )

1. Let _A_ be ? ArrayCreate(_len_). 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _kValue_ be ? Get(_arrayLike_, _Pk_). 1. If _mapping_ is *true*, then 1. Let _mappedValue_ be ? Call(_mapfn_, _thisArg_, « _kValue_, 𝔽(_k_) »). @@ -36696,7 +36696,7 @@

Array.of ( ..._items_ )

1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, 1. Let _kValue_ be _items_[_k_]. - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Perform ? CreateDataPropertyOrThrow(_A_, _Pk_, _kValue_). 1. Set _k_ to _k_ + 1. 1. Perform ? Set(_A_, *"length"*, _lenNumber_, *true*). @@ -36750,7 +36750,7 @@

Array.prototype.at ( _index_ )

1. Else, 1. Let _k_ be _len_ + _relativeIndex_. 1. If _k_ < 0 or _k_ ≥ _len_, return *undefined*. - 1. Return ? Get(_O_, ! ToString(𝔽(_k_))). + 1. Return ? Get(_O_, ! ToString(𝔽(_k_))). @@ -36770,17 +36770,17 @@

Array.prototype.concat ( ..._items_ )

1. Let _len_ be ? LengthOfArrayLike(_E_). 1. If _n_ + _len_ > 253 - 1, throw a *TypeError* exception. 1. Repeat, while _k_ < _len_, - 1. Let _P_ be ! ToString(𝔽(_k_)). + 1. Let _P_ be ! ToString(𝔽(_k_)). 1. Let _exists_ be ? HasProperty(_E_, _P_). 1. If _exists_ is *true*, then 1. Let _subElement_ be ? Get(_E_, _P_). - 1. Perform ? CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_n_)), _subElement_). + 1. Perform ? CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_n_)), _subElement_). 1. Set _n_ to _n_ + 1. 1. Set _k_ to _k_ + 1. 1. Else, 1. NOTE: _E_ is added as a single item rather than spread. 1. If _n_ ≥ 253 - 1, throw a *TypeError* exception. - 1. Perform ? CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_n_)), _E_). + 1. Perform ? CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_n_)), _E_). 1. Set _n_ to _n_ + 1. 1. [id="step-array-proto-concat-set-length"] Perform ? Set(_A_, *"length"*, 𝔽(_n_), *true*). 1. Return _A_. @@ -36847,8 +36847,8 @@

Array.prototype.copyWithin ( _target_, _start_ [ , _end_ ] )

1. Else, 1. Let _direction_ be 1. 1. Repeat, while _count_ > 0, - 1. Let _fromKey_ be ! ToString(𝔽(_from_)). - 1. Let _toKey_ be ! ToString(𝔽(_to_)). + 1. Let _fromKey_ be ! ToString(𝔽(_from_)). + 1. Let _toKey_ be ! ToString(𝔽(_to_)). 1. Let _fromPresent_ be ? HasProperty(_O_, _fromKey_). 1. If _fromPresent_ is *true*, then 1. Let _fromVal_ be ? Get(_O_, _fromKey_). @@ -36891,7 +36891,7 @@

Array.prototype.every ( _callbackfn_ [ , _thisArg_ ] )

1. If IsCallable(_callbackfn_) is *false*, throw a *TypeError* exception. 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _kPresent_ be ? HasProperty(_O_, _Pk_). 1. If _kPresent_ is *true*, then 1. Let _kValue_ be ? Get(_O_, _Pk_). @@ -36927,7 +36927,7 @@

Array.prototype.fill ( _value_ [ , _start_ [ , _end_ ] ] )

1. Else if _relativeEnd_ < 0, let _final_ be max(_len_ + _relativeEnd_, 0). 1. Else, let _final_ be min(_relativeEnd_, _len_). 1. Repeat, while _k_ < _final_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Perform ? Set(_O_, _Pk_, _value_, *true*). 1. Set _k_ to _k_ + 1. 1. Return _O_. @@ -36955,13 +36955,13 @@

Array.prototype.filter ( _callbackfn_ [ , _thisArg_ ] )

1. Let _k_ be 0. 1. Let _to_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _kPresent_ be ? HasProperty(_O_, _Pk_). 1. If _kPresent_ is *true*, then 1. Let _kValue_ be ? Get(_O_, _Pk_). 1. Let _selected_ be ! ToBoolean(? Call(_callbackfn_, _thisArg_, « _kValue_, 𝔽(_k_), _O_ »)). 1. If _selected_ is *true*, then - 1. Perform ? CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_to_)), _kValue_). + 1. Perform ? CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_to_)), _kValue_). 1. Set _to_ to _to_ + 1. 1. Set _k_ to _k_ + 1. 1. Return _A_. @@ -36987,7 +36987,7 @@

Array.prototype.find ( _predicate_ [ , _thisArg_ ] )

1. If IsCallable(_predicate_) is *false*, throw a *TypeError* exception. 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _kValue_ be ? Get(_O_, _Pk_). 1. Let _testResult_ be ! ToBoolean(? Call(_predicate_, _thisArg_, « _kValue_, 𝔽(_k_), _O_ »)). 1. If _testResult_ is *true*, return _kValue_. @@ -37015,7 +37015,7 @@

Array.prototype.findIndex ( _predicate_ [ , _thisArg_ ] )

1. If IsCallable(_predicate_) is *false*, throw a *TypeError* exception. 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _kValue_ be ? Get(_O_, _Pk_). 1. Let _testResult_ be ! ToBoolean(? Call(_predicate_, _thisArg_, « _kValue_, 𝔽(_k_), _O_ »)). 1. If _testResult_ is *true*, return 𝔽(_k_). @@ -37061,7 +37061,7 @@

1. Let _targetIndex_ be _start_. 1. Let _sourceIndex_ be *+0*𝔽. 1. Repeat, while ℝ(_sourceIndex_) < _sourceLen_, - 1. Let _P_ be ! ToString(_sourceIndex_). + 1. Let _P_ be ! ToString(_sourceIndex_). 1. Let _exists_ be ? HasProperty(_source_, _P_). 1. If _exists_ is *true*, then 1. Let _element_ be ? Get(_source_, _P_). @@ -37077,7 +37077,7 @@

1. Set _targetIndex_ to ? FlattenIntoArray(_target_, _element_, _elementLen_, _targetIndex_, _newDepth_). 1. Else, 1. If _targetIndex_ ≥ 253 - 1, throw a *TypeError* exception. - 1. Perform ? CreateDataPropertyOrThrow(_target_, ! ToString(𝔽(_targetIndex_)), _element_). + 1. Perform ? CreateDataPropertyOrThrow(_target_, ! ToString(𝔽(_targetIndex_)), _element_). 1. Set _targetIndex_ to _targetIndex_ + 1. 1. Set _sourceIndex_ to _sourceIndex_ + *1*𝔽. 1. Return _targetIndex_. @@ -37114,7 +37114,7 @@

Array.prototype.forEach ( _callbackfn_ [ , _thisArg_ ] )

1. If IsCallable(_callbackfn_) is *false*, throw a *TypeError* exception. 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _kPresent_ be ? HasProperty(_O_, _Pk_). 1. If _kPresent_ is *true*, then 1. Let _kValue_ be ? Get(_O_, _Pk_). @@ -37148,7 +37148,7 @@

Array.prototype.includes ( _searchElement_ [ , _fromIndex_ ] )

1. Let _k_ be _len_ + _n_. 1. If _k_ < 0, set _k_ to 0. 1. Repeat, while _k_ < _len_, - 1. Let _elementK_ be ? Get(_O_, ! ToString(𝔽(_k_))). + 1. Let _elementK_ be ? Get(_O_, ! ToString(𝔽(_k_))). 1. If SameValueZero(_searchElement_, _elementK_) is *true*, return *true*. 1. Set _k_ to _k_ + 1. 1. Return *false*. @@ -37182,9 +37182,9 @@

Array.prototype.indexOf ( _searchElement_ [ , _fromIndex_ ] )

1. Let _k_ be _len_ + _n_. 1. If _k_ < 0, set _k_ to 0. 1. Repeat, while _k_ < _len_, - 1. Let _kPresent_ be ? HasProperty(_O_, ! ToString(𝔽(_k_))). + 1. Let _kPresent_ be ? HasProperty(_O_, ! ToString(𝔽(_k_))). 1. If _kPresent_ is *true*, then - 1. Let _elementK_ be ? Get(_O_, ! ToString(𝔽(_k_))). + 1. Let _elementK_ be ? Get(_O_, ! ToString(𝔽(_k_))). 1. Let _same_ be IsStrictlyEqual(_searchElement_, _elementK_). 1. If _same_ is *true*, return 𝔽(_k_). 1. Set _k_ to _k_ + 1. @@ -37208,7 +37208,7 @@

Array.prototype.join ( _separator_ )

1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, 1. If _k_ > 0, set _R_ to the string-concatenation of _R_ and _sep_. - 1. Let _element_ be ? Get(_O_, ! ToString(𝔽(_k_))). + 1. Let _element_ be ? Get(_O_, ! ToString(𝔽(_k_))). 1. If _element_ is *undefined* or *null*, let _next_ be the empty String; otherwise, let _next_ be ? ToString(_element_). 1. Set _R_ to the string-concatenation of _R_ and _next_. 1. Set _k_ to _k_ + 1. @@ -37246,9 +37246,9 @@

Array.prototype.lastIndexOf ( _searchElement_ [ , _fromIndex_ ] )

1. Else, 1. Let _k_ be _len_ + _n_. 1. Repeat, while _k_ ≥ 0, - 1. Let _kPresent_ be ? HasProperty(_O_, ! ToString(𝔽(_k_))). + 1. Let _kPresent_ be ? HasProperty(_O_, ! ToString(𝔽(_k_))). 1. If _kPresent_ is *true*, then - 1. Let _elementK_ be ? Get(_O_, ! ToString(𝔽(_k_))). + 1. Let _elementK_ be ? Get(_O_, ! ToString(𝔽(_k_))). 1. Let _same_ be IsStrictlyEqual(_searchElement_, _elementK_). 1. If _same_ is *true*, return 𝔽(_k_). 1. Set _k_ to _k_ - 1. @@ -37276,7 +37276,7 @@

Array.prototype.map ( _callbackfn_ [ , _thisArg_ ] )

1. Let _A_ be ? ArraySpeciesCreate(_O_, _len_). 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _kPresent_ be ? HasProperty(_O_, _Pk_). 1. If _kPresent_ is *true*, then 1. Let _kValue_ be ? Get(_O_, _Pk_). @@ -37305,7 +37305,7 @@

Array.prototype.pop ( )

1. Else, 1. Assert: _len_ > 0. 1. Let _newLen_ be 𝔽(_len_ - 1). - 1. Let _index_ be ! ToString(_newLen_). + 1. Let _index_ be ! ToString(_newLen_). 1. Let _element_ be ? Get(_O_, _index_). 1. Perform ? DeletePropertyOrThrow(_O_, _index_). 1. Perform ? Set(_O_, *"length"*, _newLen_, *true*). @@ -37328,7 +37328,7 @@

Array.prototype.push ( ..._items_ )

1. Let _argCount_ be the number of elements in _items_. 1. If _len_ + _argCount_ > 253 - 1, throw a *TypeError* exception. 1. For each element _E_ of _items_, do - 1. Perform ? Set(_O_, ! ToString(𝔽(_len_)), _E_, *true*). + 1. Perform ? Set(_O_, ! ToString(𝔽(_len_)), _E_, *true*). 1. Set _len_ to _len_ + 1. 1. Perform ? Set(_O_, *"length"*, 𝔽(_len_), *true*). 1. Return 𝔽(_len_). @@ -37360,14 +37360,14 @@

Array.prototype.reduce ( _callbackfn_ [ , _initialValue_ ] )

1. Else, 1. Let _kPresent_ be *false*. 1. Repeat, while _kPresent_ is *false* and _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Set _kPresent_ to ? HasProperty(_O_, _Pk_). 1. If _kPresent_ is *true*, then 1. Set _accumulator_ to ? Get(_O_, _Pk_). 1. Set _k_ to _k_ + 1. 1. If _kPresent_ is *false*, throw a *TypeError* exception. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _kPresent_ be ? HasProperty(_O_, _Pk_). 1. If _kPresent_ is *true*, then 1. Let _kValue_ be ? Get(_O_, _Pk_). @@ -37401,14 +37401,14 @@

Array.prototype.reduceRight ( _callbackfn_ [ , _initialValue_ ] )

1. Else, 1. Let _kPresent_ be *false*. 1. Repeat, while _kPresent_ is *false* and _k_ ≥ 0, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Set _kPresent_ to ? HasProperty(_O_, _Pk_). 1. If _kPresent_ is *true*, then 1. Set _accumulator_ to ? Get(_O_, _Pk_). 1. Set _k_ to _k_ - 1. 1. If _kPresent_ is *false*, throw a *TypeError* exception. 1. Repeat, while _k_ ≥ 0, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _kPresent_ be ? HasProperty(_O_, _Pk_). 1. If _kPresent_ is *true*, then 1. Let _kValue_ be ? Get(_O_, _Pk_). @@ -37434,8 +37434,8 @@

Array.prototype.reverse ( )

1. Let _lower_ be 0. 1. Repeat, while _lower_ ≠ _middle_, 1. Let _upper_ be _len_ - _lower_ - 1. - 1. Let _upperP_ be ! ToString(𝔽(_upper_)). - 1. Let _lowerP_ be ! ToString(𝔽(_lower_)). + 1. Let _upperP_ be ! ToString(𝔽(_upper_)). + 1. Let _lowerP_ be ! ToString(𝔽(_lower_)). 1. Let _lowerExists_ be ? HasProperty(_O_, _lowerP_). 1. If _lowerExists_ is *true*, then 1. Let _lowerValue_ be ? Get(_O_, _lowerP_). @@ -37475,8 +37475,8 @@

Array.prototype.shift ( )

1. Let _first_ be ? Get(_O_, *"0"*). 1. Let _k_ be 1. 1. Repeat, while _k_ < _len_, - 1. Let _from_ be ! ToString(𝔽(_k_)). - 1. Let _to_ be ! ToString(𝔽(_k_ - 1)). + 1. Let _from_ be ! ToString(𝔽(_k_)). + 1. Let _to_ be ! ToString(𝔽(_k_ - 1)). 1. Let _fromPresent_ be ? HasProperty(_O_, _from_). 1. If _fromPresent_ is *true*, then 1. Let _fromVal_ be ? Get(_O_, _from_). @@ -37485,7 +37485,7 @@

Array.prototype.shift ( )

1. Assert: _fromPresent_ is *false*. 1. Perform ? DeletePropertyOrThrow(_O_, _to_). 1. Set _k_ to _k_ + 1. - 1. Perform ? DeletePropertyOrThrow(_O_, ! ToString(𝔽(_len_ - 1))). + 1. Perform ? DeletePropertyOrThrow(_O_, ! ToString(𝔽(_len_ - 1))). 1. Perform ? Set(_O_, *"length"*, 𝔽(_len_ - 1), *true*). 1. Return _first_. @@ -37513,11 +37513,11 @@

Array.prototype.slice ( _start_, _end_ )

1. Let _A_ be ? ArraySpeciesCreate(_O_, _count_). 1. Let _n_ be 0. 1. Repeat, while _k_ < _final_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _kPresent_ be ? HasProperty(_O_, _Pk_). 1. If _kPresent_ is *true*, then 1. Let _kValue_ be ? Get(_O_, _Pk_). - 1. Perform ? CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_n_)), _kValue_). + 1. Perform ? CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_n_)), _kValue_). 1. Set _k_ to _k_ + 1. 1. Set _n_ to _n_ + 1. 1. [id="step-array-proto-slice-set-length"] Perform ? Set(_A_, *"length"*, 𝔽(_n_), *true*). @@ -37547,7 +37547,7 @@

Array.prototype.some ( _callbackfn_ [ , _thisArg_ ] )

1. If IsCallable(_callbackfn_) is *false*, throw a *TypeError* exception. 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _kPresent_ be ? HasProperty(_O_, _Pk_). 1. If _kPresent_ is *true*, then 1. Let _kValue_ be ? Get(_O_, _Pk_). @@ -37572,7 +37572,7 @@

Array.prototype.sort ( _comparefn_ )

1. Let _items_ be a new empty List. 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _kPresent_ be ? HasProperty(_obj_, _Pk_). 1. If _kPresent_ is *true*, then 1. Let _kValue_ be ? Get(_obj_, _Pk_). @@ -37582,10 +37582,10 @@

Array.prototype.sort ( _comparefn_ )

1. [id="step-array-sort"] Sort _items_ using an implementation-defined sequence of calls to SortCompare. If any such call returns an abrupt completion, stop before performing any further calls to SortCompare or steps in this algorithm and return that completion. 1. Let _j_ be 0. 1. Repeat, while _j_ < _itemCount_, - 1. Perform ? Set(_obj_, ! ToString(𝔽(_j_)), _items_[_j_], *true*). + 1. Perform ? Set(_obj_, ! ToString(𝔽(_j_)), _items_[_j_], *true*). 1. Set _j_ to _j_ + 1. 1. Repeat, while _j_ < _len_, - 1. Perform ? DeletePropertyOrThrow(_obj_, ! ToString(𝔽(_j_))). + 1. Perform ? DeletePropertyOrThrow(_obj_, ! ToString(𝔽(_j_))). 1. Set _j_ to _j_ + 1. 1. Return _obj_. @@ -37706,19 +37706,19 @@

Array.prototype.splice ( _start_, _deleteCount_, ..._items_ )

1. Let _A_ be ? ArraySpeciesCreate(_O_, _actualDeleteCount_). 1. Let _k_ be 0. 1. Repeat, while _k_ < _actualDeleteCount_, - 1. Let _from_ be ! ToString(𝔽(_actualStart_ + _k_)). + 1. Let _from_ be ! ToString(𝔽(_actualStart_ + _k_)). 1. Let _fromPresent_ be ? HasProperty(_O_, _from_). 1. If _fromPresent_ is *true*, then 1. Let _fromValue_ be ? Get(_O_, _from_). - 1. Perform ? CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_k_)), _fromValue_). + 1. Perform ? CreateDataPropertyOrThrow(_A_, ! ToString(𝔽(_k_)), _fromValue_). 1. Set _k_ to _k_ + 1. 1. Perform ? Set(_A_, *"length"*, 𝔽(_actualDeleteCount_), *true*). 1. Let _itemCount_ be the number of elements in _items_. 1. If _itemCount_ < _actualDeleteCount_, then 1. Set _k_ to _actualStart_. 1. Repeat, while _k_ < (_len_ - _actualDeleteCount_), - 1. Let _from_ be ! ToString(𝔽(_k_ + _actualDeleteCount_)). - 1. Let _to_ be ! ToString(𝔽(_k_ + _itemCount_)). + 1. Let _from_ be ! ToString(𝔽(_k_ + _actualDeleteCount_)). + 1. Let _to_ be ! ToString(𝔽(_k_ + _itemCount_)). 1. Let _fromPresent_ be ? HasProperty(_O_, _from_). 1. If _fromPresent_ is *true*, then 1. Let _fromValue_ be ? Get(_O_, _from_). @@ -37729,13 +37729,13 @@

Array.prototype.splice ( _start_, _deleteCount_, ..._items_ )

1. Set _k_ to _k_ + 1. 1. Set _k_ to _len_. 1. Repeat, while _k_ > (_len_ - _actualDeleteCount_ + _itemCount_), - 1. Perform ? DeletePropertyOrThrow(_O_, ! ToString(𝔽(_k_ - 1))). + 1. Perform ? DeletePropertyOrThrow(_O_, ! ToString(𝔽(_k_ - 1))). 1. Set _k_ to _k_ - 1. 1. Else if _itemCount_ > _actualDeleteCount_, then 1. Set _k_ to (_len_ - _actualDeleteCount_). 1. Repeat, while _k_ > _actualStart_, - 1. Let _from_ be ! ToString(𝔽(_k_ + _actualDeleteCount_ - 1)). - 1. Let _to_ be ! ToString(𝔽(_k_ + _itemCount_ - 1)). + 1. Let _from_ be ! ToString(𝔽(_k_ + _actualDeleteCount_ - 1)). + 1. Let _to_ be ! ToString(𝔽(_k_ + _itemCount_ - 1)). 1. Let _fromPresent_ be ? HasProperty(_O_, _from_). 1. If _fromPresent_ is *true*, then 1. Let _fromValue_ be ? Get(_O_, _from_). @@ -37746,7 +37746,7 @@

Array.prototype.splice ( _start_, _deleteCount_, ..._items_ )

1. Set _k_ to _k_ - 1. 1. Set _k_ to _actualStart_. 1. For each element _E_ of _items_, do - 1. Perform ? Set(_O_, ! ToString(𝔽(_k_)), _E_, *true*). + 1. Perform ? Set(_O_, ! ToString(𝔽(_k_)), _E_, *true*). 1. Set _k_ to _k_ + 1. 1. [id="step-array-proto-splice-set-length"] Perform ? Set(_O_, *"length"*, 𝔽(_len_ - _actualDeleteCount_ + _itemCount_), *true*). 1. Return _A_. @@ -37776,7 +37776,7 @@

Array.prototype.toLocaleString ( [ _reserved1_ [ , _reserved2_ ] ] )

1. Repeat, while _k_ < _len_, 1. If _k_ > 0, then 1. Set _R_ to the string-concatenation of _R_ and _separator_. - 1. Let _nextElement_ be ? Get(_array_, ! ToString(𝔽(_k_))). + 1. Let _nextElement_ be ? Get(_array_, ! ToString(𝔽(_k_))). 1. If _nextElement_ is not *undefined* or *null*, then 1. Let _S_ be ? ToString(? Invoke(_nextElement_, *"toLocaleString"*)). 1. Set _R_ to the string-concatenation of _R_ and _S_. @@ -37817,8 +37817,8 @@

Array.prototype.unshift ( ..._items_ )

1. If _len_ + _argCount_ > 253 - 1, throw a *TypeError* exception. 1. Let _k_ be _len_. 1. Repeat, while _k_ > 0, - 1. Let _from_ be ! ToString(𝔽(_k_ - 1)). - 1. Let _to_ be ! ToString(𝔽(_k_ + _argCount_ - 1)). + 1. Let _from_ be ! ToString(𝔽(_k_ - 1)). + 1. Let _to_ be ! ToString(𝔽(_k_ + _argCount_ - 1)). 1. Let _fromPresent_ be ? HasProperty(_O_, _from_). 1. If _fromPresent_ is *true*, then 1. Let _fromValue_ be ? Get(_O_, _from_). @@ -37829,7 +37829,7 @@

Array.prototype.unshift ( ..._items_ )

1. Set _k_ to _k_ - 1. 1. Let _j_ be *+0*𝔽. 1. For each element _E_ of _items_, do - 1. Perform ? Set(_O_, ! ToString(_j_), _E_, *true*). + 1. Perform ? Set(_O_, ! ToString(_j_), _E_, *true*). 1. Set _j_ to _j_ + *1*𝔽. 1. Perform ? Set(_O_, *"length"*, 𝔽(_len_ + _argCount_), *true*). 1. Return 𝔽(_len_ + _argCount_). @@ -37859,17 +37859,17 @@

Array.prototype [ @@unscopables ]

The initial value of the @@unscopables data property is an object created by the following steps:

1. Let _unscopableList_ be ! OrdinaryObjectCreate(*null*). - 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"at"*, *true*). - 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"copyWithin"*, *true*). - 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"entries"*, *true*). - 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"fill"*, *true*). - 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"find"*, *true*). - 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"findIndex"*, *true*). - 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"flat"*, *true*). - 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"flatMap"*, *true*). - 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"includes"*, *true*). - 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"keys"*, *true*). - 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"values"*, *true*). + 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"at"*, *true*). + 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"copyWithin"*, *true*). + 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"entries"*, *true*). + 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"fill"*, *true*). + 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"find"*, *true*). + 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"findIndex"*, *true*). + 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"flat"*, *true*). + 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"flatMap"*, *true*). + 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"includes"*, *true*). + 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"keys"*, *true*). + 1. Perform ! CreateDataPropertyOrThrow(_unscopableList_, *"values"*, *true*). 1. Return _unscopableList_.

This property has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *true* }.

@@ -37921,7 +37921,7 @@

1. If _index_ ≥ _len_, return *undefined*. 1. If _kind_ is ~key~, perform ? Yield(𝔽(_index_)). 1. Else, - 1. Let _elementKey_ be ! ToString(𝔽(_index_)). + 1. Let _elementKey_ be ! ToString(𝔽(_index_)). 1. Let _elementValue_ be ? Get(_array_, _elementKey_). 1. If _kind_ is ~value~, perform ? Yield(_elementValue_). 1. Else, @@ -38240,7 +38240,7 @@

%TypedArray%.from ( _source_ [ , _mapfn_ [ , _thisArg_ ] ] )

1. Let _targetObj_ be ? TypedArrayCreate(_C_, « 𝔽(_len_) »). 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _kValue_ be the first element of _values_ and remove that element from _values_. 1. If _mapping_ is *true*, then 1. Let _mappedValue_ be ? Call(_mapfn_, _thisArg_, « _kValue_, 𝔽(_k_) »). @@ -38255,7 +38255,7 @@

%TypedArray%.from ( _source_ [ , _mapfn_ [ , _thisArg_ ] ] )

1. Let _targetObj_ be ? TypedArrayCreate(_C_, « 𝔽(_len_) »). 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _kValue_ be ? Get(_arrayLike_, _Pk_). 1. If _mapping_ is *true*, then 1. Let _mappedValue_ be ? Call(_mapfn_, _thisArg_, « _kValue_, 𝔽(_k_) »). @@ -38277,7 +38277,7 @@

%TypedArray%.of ( ..._items_ )

1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, 1. Let _kValue_ be _items_[_k_]. - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Perform ? Set(_newObj_, _Pk_, _kValue_, *true*). 1. Set _k_ to _k_ + 1. 1. Return _newObj_. @@ -38325,7 +38325,7 @@

%TypedArray%.prototype.at ( _index_ )

1. Else, 1. Let _k_ be _len_ + _relativeIndex_. 1. If _k_ < 0 or _k_ ≥ _len_, return *undefined*. - 1. Return ! Get(_O_, ! ToString(𝔽(_k_))). + 1. Return ! Get(_O_, ! ToString(𝔽(_k_))). @@ -38442,8 +38442,8 @@

%TypedArray%.prototype.every ( _callbackfn_ [ , _thisArg_ ] )

1. If IsCallable(_callbackfn_) is *false*, throw a *TypeError* exception. 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). - 1. Let _kValue_ be ! Get(_O_, _Pk_). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _kValue_ be ! Get(_O_, _Pk_). 1. Let _testResult_ be ! ToBoolean(? Call(_callbackfn_, _thisArg_, « _kValue_, 𝔽(_k_), _O_ »)). 1. If _testResult_ is *false*, return *false*. 1. Set _k_ to _k_ + 1. @@ -38472,8 +38472,8 @@

%TypedArray%.prototype.fill ( _value_ [ , _start_ [ , _end_ ] ] )

1. Else, let _final_ be min(_relativeEnd_, _len_). 1. If IsDetachedBuffer(_O_.[[ViewedArrayBuffer]]) is *true*, throw a *TypeError* exception. 1. Repeat, while _k_ < _final_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). - 1. Perform ! Set(_O_, _Pk_, _value_, *true*). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Perform ! Set(_O_, _Pk_, _value_, *true*). 1. Set _k_ to _k_ + 1. 1. Return _O_. @@ -38492,8 +38492,8 @@

%TypedArray%.prototype.filter ( _callbackfn_ [ , _thisArg_ ] )

1. Let _k_ be 0. 1. Let _captured_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). - 1. Let _kValue_ be ! Get(_O_, _Pk_). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _kValue_ be ! Get(_O_, _Pk_). 1. Let _selected_ be ! ToBoolean(? Call(_callbackfn_, _thisArg_, « _kValue_, 𝔽(_k_), _O_ »)). 1. If _selected_ is *true*, then 1. Append _kValue_ to the end of _kept_. @@ -38502,7 +38502,7 @@

%TypedArray%.prototype.filter ( _callbackfn_ [ , _thisArg_ ] )

1. Let _A_ be ? TypedArraySpeciesCreate(_O_, « 𝔽(_captured_) »). 1. Let _n_ be 0. 1. For each element _e_ of _kept_, do - 1. Perform ! Set(_A_, ! ToString(𝔽(_n_)), _e_, *true*). + 1. Perform ! Set(_A_, ! ToString(𝔽(_n_)), _e_, *true*). 1. Set _n_ to _n_ + 1. 1. Return _A_. @@ -38520,8 +38520,8 @@

%TypedArray%.prototype.find ( _predicate_ [ , _thisArg_ ] )

1. If IsCallable(_predicate_) is *false*, throw a *TypeError* exception. 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). - 1. Let _kValue_ be ! Get(_O_, _Pk_). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _kValue_ be ! Get(_O_, _Pk_). 1. Let _testResult_ be ! ToBoolean(? Call(_predicate_, _thisArg_, « _kValue_, 𝔽(_k_), _O_ »)). 1. If _testResult_ is *true*, return _kValue_. 1. Set _k_ to _k_ + 1. @@ -38541,8 +38541,8 @@

%TypedArray%.prototype.findIndex ( _predicate_ [ , _thisArg_ ] )

1. If IsCallable(_predicate_) is *false*, throw a *TypeError* exception. 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). - 1. Let _kValue_ be ! Get(_O_, _Pk_). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _kValue_ be ! Get(_O_, _Pk_). 1. Let _testResult_ be ! ToBoolean(? Call(_predicate_, _thisArg_, « _kValue_, 𝔽(_k_), _O_ »)). 1. If _testResult_ is *true*, return 𝔽(_k_). 1. Set _k_ to _k_ + 1. @@ -38562,8 +38562,8 @@

%TypedArray%.prototype.forEach ( _callbackfn_ [ , _thisArg_ ] )

1. If IsCallable(_callbackfn_) is *false*, throw a *TypeError* exception. 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). - 1. Let _kValue_ be ! Get(_O_, _Pk_). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _kValue_ be ! Get(_O_, _Pk_). 1. Perform ? Call(_callbackfn_, _thisArg_, « _kValue_, 𝔽(_k_), _O_ »). 1. Set _k_ to _k_ + 1. 1. Return *undefined*. @@ -38590,7 +38590,7 @@

%TypedArray%.prototype.includes ( _searchElement_ [ , _fromIndex_ ] )

1. Let _k_ be _len_ + _n_. 1. If _k_ < 0, set _k_ to 0. 1. Repeat, while _k_ < _len_, - 1. Let _elementK_ be ! Get(_O_, ! ToString(𝔽(_k_))). + 1. Let _elementK_ be ! Get(_O_, ! ToString(𝔽(_k_))). 1. If SameValueZero(_searchElement_, _elementK_) is *true*, return *true*. 1. Set _k_ to _k_ + 1. 1. Return *false*. @@ -38617,9 +38617,9 @@

%TypedArray%.prototype.indexOf ( _searchElement_ [ , _fromIndex_ ] )

1. Let _k_ be _len_ + _n_. 1. If _k_ < 0, set _k_ to 0. 1. Repeat, while _k_ < _len_, - 1. Let _kPresent_ be ! HasProperty(_O_, ! ToString(𝔽(_k_))). + 1. Let _kPresent_ be ! HasProperty(_O_, ! ToString(𝔽(_k_))). 1. If _kPresent_ is *true*, then - 1. Let _elementK_ be ! Get(_O_, ! ToString(𝔽(_k_))). + 1. Let _elementK_ be ! Get(_O_, ! ToString(𝔽(_k_))). 1. Let _same_ be IsStrictlyEqual(_searchElement_, _elementK_). 1. If _same_ is *true*, return 𝔽(_k_). 1. Set _k_ to _k_ + 1. @@ -38642,8 +38642,8 @@

%TypedArray%.prototype.join ( _separator_ )

1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, 1. If _k_ > 0, set _R_ to the string-concatenation of _R_ and _sep_. - 1. Let _element_ be ! Get(_O_, ! ToString(𝔽(_k_))). - 1. If _element_ is *undefined*, let _next_ be the empty String; otherwise, let _next_ be ! ToString(_element_). + 1. Let _element_ be ! Get(_O_, ! ToString(𝔽(_k_))). + 1. If _element_ is *undefined*, let _next_ be the empty String; otherwise, let _next_ be ! ToString(_element_). 1. Set _R_ to the string-concatenation of _R_ and _next_. 1. Set _k_ to _k_ + 1. 1. Return _R_. @@ -38677,9 +38677,9 @@

%TypedArray%.prototype.lastIndexOf ( _searchElement_ [ , _fromIndex_ ] )

HasProperty(_O_, ! ToString(𝔽(_k_))). 1. If _kPresent_ is *true*, then - 1. Let _elementK_ be ! Get(_O_, ! ToString(𝔽(_k_))). + 1. Let _elementK_ be ! Get(_O_, ! ToString(𝔽(_k_))). 1. Let _same_ be IsStrictlyEqual(_searchElement_, _elementK_). 1. If _same_ is *true*, return 𝔽(_k_). 1. Set _k_ to _k_ - 1. @@ -38715,8 +38715,8 @@

%TypedArray%.prototype.map ( _callbackfn_ [ , _thisArg_ ] )

1. Let _A_ be ? TypedArraySpeciesCreate(_O_, « 𝔽(_len_) »). 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). - 1. Let _kValue_ be ! Get(_O_, _Pk_). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _kValue_ be ! Get(_O_, _Pk_). 1. Let _mappedValue_ be ? Call(_callbackfn_, _thisArg_, « _kValue_, 𝔽(_k_), _O_ »). 1. Perform ? Set(_A_, _Pk_, _mappedValue_, *true*). 1. Set _k_ to _k_ + 1. @@ -38740,12 +38740,12 @@

%TypedArray%.prototype.reduce ( _callbackfn_ [ , _initialValue_ ] )

1. If _initialValue_ is present, then 1. Set _accumulator_ to _initialValue_. 1. Else, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). - 1. Set _accumulator_ to ! Get(_O_, _Pk_). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Set _accumulator_ to ! Get(_O_, _Pk_). 1. Set _k_ to _k_ + 1. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). - 1. Let _kValue_ be ! Get(_O_, _Pk_). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _kValue_ be ! Get(_O_, _Pk_). 1. Set _accumulator_ to ? Call(_callbackfn_, *undefined*, « _accumulator_, _kValue_, 𝔽(_k_), _O_ »). 1. Set _k_ to _k_ + 1. 1. Return _accumulator_. @@ -38768,12 +38768,12 @@

%TypedArray%.prototype.reduceRight ( _callbackfn_ [ , _initialValue_ ] )

ToString(𝔽(_k_)). + 1. Set _accumulator_ to ! Get(_O_, _Pk_). 1. Set _k_ to _k_ - 1. 1. Repeat, while _k_ ≥ 0, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). - 1. Let _kValue_ be ! Get(_O_, _Pk_). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _kValue_ be ! Get(_O_, _Pk_). 1. Set _accumulator_ to ? Call(_callbackfn_, *undefined*, « _accumulator_, _kValue_, 𝔽(_k_), _O_ »). 1. Set _k_ to _k_ - 1. 1. Return _accumulator_. @@ -38793,12 +38793,12 @@

%TypedArray%.prototype.reverse ( )

1. Let _lower_ be 0. 1. Repeat, while _lower_ ≠ _middle_, 1. Let _upper_ be _len_ - _lower_ - 1. - 1. Let _upperP_ be ! ToString(𝔽(_upper_)). - 1. Let _lowerP_ be ! ToString(𝔽(_lower_)). - 1. Let _lowerValue_ be ! Get(_O_, _lowerP_). - 1. Let _upperValue_ be ! Get(_O_, _upperP_). - 1. Perform ! Set(_O_, _lowerP_, _upperValue_, *true*). - 1. Perform ! Set(_O_, _upperP_, _lowerValue_, *true*). + 1. Let _upperP_ be ! ToString(𝔽(_upper_)). + 1. Let _lowerP_ be ! ToString(𝔽(_lower_)). + 1. Let _lowerValue_ be ! Get(_O_, _lowerP_). + 1. Let _upperValue_ be ! Get(_O_, _upperP_). + 1. Perform ! Set(_O_, _lowerP_, _upperValue_, *true*). + 1. Perform ! Set(_O_, _upperP_, _lowerValue_, *true*). 1. Set _lower_ to _lower_ + 1. 1. Return _O_. @@ -38909,7 +38909,7 @@

1. Let _k_ be 0. 1. Let _limit_ be _targetByteIndex_ + _targetElementSize_ × _srcLength_. 1. Repeat, while _targetByteIndex_ < _limit_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _value_ be ? Get(_src_, _Pk_). 1. If _target_.[[ContentType]] is ~BigInt~, set _value_ to ? ToBigInt(_value_). 1. Otherwise, set _value_ to ? ToNumber(_value_). @@ -38948,9 +38948,9 @@

%TypedArray%.prototype.slice ( _start_, _end_ )

1. If _srcType_ is different from _targetType_, then 1. Let _n_ be 0. 1. Repeat, while _k_ < _final_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). - 1. Let _kValue_ be ! Get(_O_, _Pk_). - 1. Perform ! Set(_A_, ! ToString(𝔽(_n_)), _kValue_, *true*). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _kValue_ be ! Get(_O_, _Pk_). + 1. Perform ! Set(_A_, ! ToString(𝔽(_n_)), _kValue_, *true*). 1. Set _k_ to _k_ + 1. 1. Set _n_ to _n_ + 1. 1. Else, @@ -38983,8 +38983,8 @@

%TypedArray%.prototype.some ( _callbackfn_ [ , _thisArg_ ] )

1. If IsCallable(_callbackfn_) is *false*, throw a *TypeError* exception. 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). - 1. Let _kValue_ be ! Get(_O_, _Pk_). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _kValue_ be ! Get(_O_, _Pk_). 1. Let _testResult_ be ! ToBoolean(? Call(_callbackfn_, _thisArg_, « _kValue_, 𝔽(_k_), _O_ »)). 1. If _testResult_ is *true*, return *true*. 1. Set _k_ to _k_ + 1. @@ -39335,7 +39335,7 @@

1. Perform ? AllocateTypedArrayBuffer(_O_, _len_). 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _kValue_ be the first element of _values_ and remove that element from _values_. 1. Perform ? Set(_O_, _Pk_, _kValue_, *true*). 1. Set _k_ to _k_ + 1. @@ -39357,7 +39357,7 @@

1. Perform ? AllocateTypedArrayBuffer(_O_, _len_). 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _Pk_ be ! ToString(𝔽(_k_)). + 1. Let _Pk_ be ! ToString(𝔽(_k_)). 1. Let _kValue_ be ? Get(_arrayLike_, _Pk_). 1. Perform ? Set(_O_, _Pk_, _kValue_, *true*). 1. Set _k_ to _k_ + 1. @@ -41932,7 +41932,7 @@

JSON.parse ( _text_ [ , _reviver_ ] )

1. If IsCallable(_reviver_) is *true*, then 1. Let _root_ be ! OrdinaryObjectCreate(%Object.prototype%). 1. Let _rootName_ be the empty String. - 1. Perform ! CreateDataPropertyOrThrow(_root_, _rootName_, _unfiltered_). + 1. Perform ! CreateDataPropertyOrThrow(_root_, _rootName_, _unfiltered_). 1. Return ? InternalizeJSONProperty(_root_, _rootName_, _reviver_). 1. Else, 1. Return _unfiltered_. @@ -41967,7 +41967,7 @@

1. Let _I_ be 0. 1. Let _len_ be ? LengthOfArrayLike(_val_). 1. Repeat, while _I_ < _len_, - 1. Let _prop_ be ! ToString(𝔽(_I_)). + 1. Let _prop_ be ! ToString(𝔽(_I_)). 1. Let _newElement_ be ? InternalizeJSONProperty(_val_, _prop_, _reviver_). 1. If _newElement_ is *undefined*, then 1. Perform ? _val_.[[Delete]](_prop_). @@ -42009,11 +42009,11 @@

JSON.stringify ( _value_ [ , _replacer_ [ , _space_ ] ] )

1. Let _len_ be ? LengthOfArrayLike(_replacer_). 1. Let _k_ be 0. 1. Repeat, while _k_ < _len_, - 1. Let _prop_ be ! ToString(𝔽(_k_)). + 1. Let _prop_ be ! ToString(𝔽(_k_)). 1. Let _v_ be ? Get(_replacer_, _prop_). 1. Let _item_ be *undefined*. 1. If Type(_v_) is String, set _item_ to _v_. - 1. Else if Type(_v_) is Number, set _item_ to ! ToString(_v_). + 1. Else if Type(_v_) is Number, set _item_ to ! ToString(_v_). 1. Else if Type(_v_) is Object, then 1. If _v_ has a [[StringData]] or [[NumberData]] internal slot, set _item_ to ? ToString(_v_). 1. If _item_ is not *undefined* and _item_ is not currently an element of _PropertyList_, then @@ -42025,7 +42025,7 @@

JSON.stringify ( _value_ [ , _replacer_ [ , _space_ ] ] )

1. Else if _space_ has a [[StringData]] internal slot, then 1. Set _space_ to ? ToString(_space_). 1. If Type(_space_) is Number, then - 1. Let _spaceMV_ be ! ToIntegerOrInfinity(_space_). + 1. Let _spaceMV_ be ! ToIntegerOrInfinity(_space_). 1. Set _spaceMV_ to min(10, _spaceMV_). 1. If _spaceMV_ < 1, let _gap_ be the empty String; otherwise let _gap_ be the String value containing _spaceMV_ occurrences of the code unit 0x0020 (SPACE). 1. Else if Type(_space_) is String, then @@ -42033,7 +42033,7 @@

JSON.stringify ( _value_ [ , _replacer_ [ , _space_ ] ] )

1. Else, 1. Let _gap_ be the empty String. 1. Let _wrapper_ be ! OrdinaryObjectCreate(%Object.prototype%). - 1. Perform ! CreateDataPropertyOrThrow(_wrapper_, the empty String, _value_). + 1. Perform ! CreateDataPropertyOrThrow(_wrapper_, the empty String, _value_). 1. Let _state_ be the Record { [[ReplacerFunction]]: _ReplacerFunction_, [[Stack]]: _stack_, [[Indent]]: _indent_, [[Gap]]: _gap_, [[PropertyList]]: _PropertyList_ }. 1. Return ? SerializeJSONProperty(_state_, the empty String, _wrapper_). @@ -42108,7 +42108,7 @@

1. If _value_ is *false*, return *"false"*. 1. If Type(_value_) is String, return QuoteJSONString(_value_). 1. If Type(_value_) is Number, then - 1. If _value_ is finite, return ! ToString(_value_). + 1. If _value_ is finite, return ! ToString(_value_). 1. Return *"null"*. 1. If Type(_value_) is BigInt, throw a *TypeError* exception. 1. If Type(_value_) is Object and IsCallable(_value_) is *false*, then @@ -42324,7 +42324,7 @@

1. Let _len_ be ? LengthOfArrayLike(_value_). 1. Let _index_ be 0. 1. Repeat, while _index_ < _len_, - 1. Let _strP_ be ? SerializeJSONProperty(_state_, ! ToString(𝔽(_index_)), _value_). + 1. Let _strP_ be ? SerializeJSONProperty(_state_, ! ToString(𝔽(_index_)), _value_). 1. If _strP_ is *undefined*, then 1. Append *"null"* to _partial_. 1. Else, @@ -42932,7 +42932,7 @@

1. Let _asyncIterator_ be ! OrdinaryObjectCreate(%AsyncFromSyncIteratorPrototype%, « [[SyncIteratorRecord]] »). 1. Set _asyncIterator_.[[SyncIteratorRecord]] to _syncIteratorRecord_. - 1. Let _nextMethod_ be ! Get(_asyncIterator_, *"next"*). + 1. Let _nextMethod_ be ! Get(_asyncIterator_, *"next"*). 1. Let _iteratorRecord_ be the Record { [[Iterator]]: _asyncIterator_, [[NextMethod]]: _nextMethod_, [[Done]]: *false* }. 1. Return _iteratorRecord_. @@ -42953,7 +42953,7 @@

%AsyncFromSyncIteratorPrototype%.next ( [ _value_ ] )

1. Let _O_ be the *this* value. 1. Assert: _O_ is an Object that has a [[SyncIteratorRecord]] internal slot. - 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). + 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). 1. Let _syncIteratorRecord_ be _O_.[[SyncIteratorRecord]]. 1. If _value_ is present, then 1. Let _result_ be IteratorNext(_syncIteratorRecord_, _value_). @@ -42970,13 +42970,13 @@

%AsyncFromSyncIteratorPrototype%.return ( [ _value_ ] )

1. Let _O_ be the *this* value. 1. Assert: _O_ is an Object that has a [[SyncIteratorRecord]] internal slot. - 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). + 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). 1. Let _syncIterator_ be _O_.[[SyncIteratorRecord]].[[Iterator]]. 1. Let _return_ be GetMethod(_syncIterator_, *"return"*). 1. IfAbruptRejectPromise(_return_, _promiseCapability_). 1. If _return_ is *undefined*, then 1. Let _iterResult_ be ! CreateIterResultObject(_value_, *true*). - 1. Perform ! Call(_promiseCapability_.[[Resolve]], *undefined*, « _iterResult_ »). + 1. Perform ! Call(_promiseCapability_.[[Resolve]], *undefined*, « _iterResult_ »). 1. Return _promiseCapability_.[[Promise]]. 1. If _value_ is present, then 1. Let _result_ be Call(_return_, _syncIterator_, « _value_ »). @@ -42984,7 +42984,7 @@

%AsyncFromSyncIteratorPrototype%.return ( [ _value_ ] )

1. Let _result_ be Call(_return_, _syncIterator_). 1. IfAbruptRejectPromise(_result_, _promiseCapability_). 1. If Type(_result_) is not Object, then - 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « a newly created *TypeError* object »). + 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « a newly created *TypeError* object »). 1. Return _promiseCapability_.[[Promise]]. 1. Return ! AsyncFromSyncIteratorContinuation(_result_, _promiseCapability_).
@@ -42997,12 +42997,12 @@

%AsyncFromSyncIteratorPrototype%.throw ( [ _value_ ] )

1. Let _O_ be the *this* value. 1. Assert: _O_ is an Object that has a [[SyncIteratorRecord]] internal slot. - 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). + 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). 1. Let _syncIterator_ be _O_.[[SyncIteratorRecord]].[[Iterator]]. 1. Let _throw_ be GetMethod(_syncIterator_, *"throw"*). 1. IfAbruptRejectPromise(_throw_, _promiseCapability_). 1. If _throw_ is *undefined*, then - 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _value_ »). + 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _value_ »). 1. Return _promiseCapability_.[[Promise]]. 1. If _value_ is present, then 1. Let _result_ be Call(_throw_, _syncIterator_, « _value_ »). @@ -43010,7 +43010,7 @@

%AsyncFromSyncIteratorPrototype%.throw ( [ _value_ ] )

1. Let _result_ be Call(_throw_, _syncIterator_). 1. IfAbruptRejectPromise(_result_, _promiseCapability_). 1. If Type(_result_) is not Object, then - 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « a newly created *TypeError* object »). + 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « a newly created *TypeError* object »). 1. Return _promiseCapability_.[[Promise]]. 1. Return ! AsyncFromSyncIteratorContinuation(_result_, _promiseCapability_).
@@ -43745,8 +43745,8 @@

`Promise.allSettled` Resolve Element Functions

1. Let _promiseCapability_ be _F_.[[Capability]]. 1. Let _remainingElementsCount_ be _F_.[[RemainingElements]]. 1. Let _obj_ be ! OrdinaryObjectCreate(%Object.prototype%). - 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"status"*, *"fulfilled"*). - 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"value"*, _x_). + 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"status"*, *"fulfilled"*). + 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"value"*, _x_). 1. Set _values_[_index_] to _obj_. 1. Set _remainingElementsCount_.[[Value]] to _remainingElementsCount_.[[Value]] - 1. 1. If _remainingElementsCount_.[[Value]] is 0, then @@ -43771,8 +43771,8 @@

`Promise.allSettled` Reject Element Functions

1. Let _promiseCapability_ be _F_.[[Capability]]. 1. Let _remainingElementsCount_ be _F_.[[RemainingElements]]. 1. Let _obj_ be ! OrdinaryObjectCreate(%Object.prototype%). - 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"status"*, *"rejected"*). - 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"reason"*, _x_). + 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"status"*, *"rejected"*). + 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"reason"*, _x_). 1. Set _values_[_index_] to _obj_. 1. Set _remainingElementsCount_.[[Value]] to _remainingElementsCount_.[[Value]] - 1. 1. If _remainingElementsCount_.[[Value]] is 0, then @@ -43828,7 +43828,7 @@

1. Set _remainingElementsCount_.[[Value]] to _remainingElementsCount_.[[Value]] - 1. 1. If _remainingElementsCount_.[[Value]] is 0, then 1. Let _error_ be a newly created *AggregateError* object. - 1. Perform ! DefinePropertyOrThrow(_error_, *"errors"*, PropertyDescriptor { [[Configurable]]: *true*, [[Enumerable]]: *false*, [[Writable]]: *true*, [[Value]]: ! CreateArrayFromList(_errors_) }). + 1. Perform ! DefinePropertyOrThrow(_error_, *"errors"*, PropertyDescriptor { [[Configurable]]: *true*, [[Enumerable]]: *false*, [[Writable]]: *true*, [[Value]]: ! CreateArrayFromList(_errors_) }). 1. Return ThrowCompletion(_error_). 1. Return _resultCapability_.[[Promise]]. 1. Let _nextValue_ be IteratorValue(_next_). @@ -43866,7 +43866,7 @@

`Promise.any` Reject Element Functions

1. Set _remainingElementsCount_.[[Value]] to _remainingElementsCount_.[[Value]] - 1. 1. If _remainingElementsCount_.[[Value]] is 0, then 1. Let _error_ be a newly created *AggregateError* object. - 1. Perform ! DefinePropertyOrThrow(_error_, *"errors"*, PropertyDescriptor { [[Configurable]]: *true*, [[Enumerable]]: *false*, [[Writable]]: *true*, [[Value]]: ! CreateArrayFromList(_errors_) }). + 1. Perform ! DefinePropertyOrThrow(_error_, *"errors"*, PropertyDescriptor { [[Configurable]]: *true*, [[Enumerable]]: *false*, [[Writable]]: *true*, [[Value]]: ! CreateArrayFromList(_errors_) }). 1. Return ? Call(_promiseCapability_.[[Reject]], *undefined*, « _error_ »). 1. Return *undefined*.
@@ -44071,6 +44071,8 @@

description
It performs the “then” operation on _promise_ using _onFulfilled_ and _onRejected_ as its settlement actions. If _resultCapability_ is passed, the result is stored by updating _resultCapability_'s promise. If it is not passed, then PerformPromiseThen is being called by a specification-internal operation where the result does not matter.
+
effects
+
user-code
1. Assert: IsPromise(_promise_) is *true*. @@ -44096,7 +44098,7 @@

1. Else, 1. Assert: The value of _promise_.[[PromiseState]] is ~rejected~. 1. Let _reason_ be _promise_.[[PromiseResult]]. - 1. If _promise_.[[PromiseIsHandled]] is *false*, perform HostPromiseRejectionTracker(_promise_, *"handle"*). + 1. If _promise_.[[PromiseIsHandled]] is *false*, perform HostPromiseRejectionTracker(_promise_, *"handle"*). 1. Let _rejectJob_ be NewPromiseReactionJob(_rejectReaction_, _reason_). 1. Perform HostEnqueuePromiseJob(_rejectJob_.[[Job]], _rejectJob_.[[Realm]]). 1. Set _promise_.[[PromiseIsHandled]] to *true*. @@ -44714,13 +44716,13 @@

AsyncGenerator.prototype.constructor

AsyncGenerator.prototype.next ( _value_ )

1. Let _generator_ be the *this* value. - 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). + 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). 1. Let _result_ be AsyncGeneratorValidate(_generator_, ~empty~). 1. IfAbruptRejectPromise(_result_, _promiseCapability_). 1. Let _state_ be _generator_.[[AsyncGeneratorState]]. 1. If _state_ is ~completed~, then 1. Let _iteratorResult_ be ! CreateIterResultObject(*undefined*, *true*). - 1. Perform ! Call(_promiseCapability_.[[Resolve]], *undefined*, « _iteratorResult_ »). + 1. Perform ! Call(_promiseCapability_.[[Resolve]], *undefined*, « _iteratorResult_ »). 1. Return _promiseCapability_.[[Promise]]. 1. Let _completion_ be NormalCompletion(_value_). 1. Perform ! AsyncGeneratorEnqueue(_generator_, _completion_, _promiseCapability_). @@ -44736,7 +44738,7 @@

AsyncGenerator.prototype.next ( _value_ )

AsyncGenerator.prototype.return ( _value_ )

1. Let _generator_ be the *this* value. - 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). + 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). 1. Let _result_ be AsyncGeneratorValidate(_generator_, ~empty~). 1. IfAbruptRejectPromise(_result_, _promiseCapability_). 1. Let _completion_ be Completion { [[Type]]: ~return~, [[Value]]: _value_, [[Target]]: ~empty~ }. @@ -44744,7 +44746,7 @@

AsyncGenerator.prototype.return ( _value_ )

1. Let _state_ be _generator_.[[AsyncGeneratorState]]. 1. If _state_ is either ~suspendedStart~ or ~completed~, then 1. Set _generator_.[[AsyncGeneratorState]] to ~awaiting-return~. - 1. Perform ! AsyncGeneratorAwaitReturn(_generator_). + 1. Perform ! AsyncGeneratorAwaitReturn(_generator_). 1. Else if _state_ is ~suspendedYield~, then 1. Perform ! AsyncGeneratorResume(_generator_, _completion_). 1. Else, @@ -44757,7 +44759,7 @@

AsyncGenerator.prototype.return ( _value_ )

AsyncGenerator.prototype.throw ( _exception_ )

1. Let _generator_ be the *this* value. - 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). + 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). 1. Let _result_ be AsyncGeneratorValidate(_generator_, ~empty~). 1. IfAbruptRejectPromise(_result_, _promiseCapability_). 1. Let _state_ be _generator_.[[AsyncGeneratorState]]. @@ -44765,7 +44767,7 @@

AsyncGenerator.prototype.throw ( _exception_ )

1. Set _generator_.[[AsyncGeneratorState]] to ~completed~. 1. Set _state_ to ~completed~. 1. If _state_ is ~completed~, then - 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _exception_ »). + 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _exception_ »). 1. Return _promiseCapability_.[[Promise]]. 1. Let _completion_ be ThrowCompletion(_exception_). 1. Perform ! AsyncGeneratorEnqueue(_generator_, _completion_, _promiseCapability_). @@ -44930,7 +44932,7 @@

1. Let _promiseCapability_ be _next_.[[Capability]]. 1. Let _value_ be _completion_.[[Value]]. 1. If _completion_.[[Type]] is ~throw~, then - 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _value_ »). + 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _value_ »). 1. Else, 1. Assert: _completion_.[[Type]] is ~normal~. 1. If _realm_ is present, then @@ -44940,7 +44942,7 @@

1. Set the running execution context's Realm to _oldRealm_. 1. Else, 1. Let _iteratorResult_ be ! CreateIterResultObject(_value_, _done_). - 1. Perform ! Call(_promiseCapability_.[[Resolve]], *undefined*, « _iteratorResult_ »). + 1. Perform ! Call(_promiseCapability_.[[Resolve]], *undefined*, « _iteratorResult_ »). @@ -44952,6 +44954,8 @@

)

+
effects
+
user-code
1. Assert: _generator_.[[AsyncGeneratorState]] is either ~suspendedStart~ or ~suspendedYield~. @@ -45044,7 +45048,7 @@

1. Let _rejectedClosure_ be a new Abstract Closure with parameters (_reason_) that captures _generator_ and performs the following steps when called: 1. Set _generator_.[[AsyncGeneratorState]] to ~completed~. 1. Let _result_ be ThrowCompletion(_reason_). - 1. Perform ! AsyncGeneratorCompleteStep(_generator_, _result_, *true*). + 1. Perform ! AsyncGeneratorCompleteStep(_generator_, _result_, *true*). 1. Perform ! AsyncGeneratorDrainQueue(_generator_). 1. Return *undefined*. 1. Let _onRejected_ be ! CreateBuiltinFunction(_rejectedClosure_, 1, *""*, « »). @@ -45247,12 +45251,12 @@

1. Assert: If we return here, the async function either threw an exception or performed an implicit or explicit return; all awaiting is done. 1. Remove _asyncContext_ from the execution context stack and restore the execution context that is at the top of the execution context stack as the running execution context. 1. If _result_.[[Type]] is ~normal~, then - 1. Perform ! Call(_promiseCapability_.[[Resolve]], *undefined*, « *undefined* »). + 1. Perform ! Call(_promiseCapability_.[[Resolve]], *undefined*, « *undefined* »). 1. Else if _result_.[[Type]] is ~return~, then - 1. Perform ! Call(_promiseCapability_.[[Resolve]], *undefined*, « _result_.[[Value]] »). + 1. Perform ! Call(_promiseCapability_.[[Resolve]], *undefined*, « _result_.[[Value]] »). 1. Else, 1. Assert: _result_.[[Type]] is ~throw~. - 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _result_.[[Value]] »). + 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _result_.[[Value]] »). 1. [id="step-asyncblockstart-return-undefined"] Return. 1. Push _asyncContext_ onto the execution context stack; _asyncContext_ is now the running execution context. 1. Resume the suspended evaluation of _asyncContext_. Let _result_ be the value returned by the resumed computation. @@ -45473,8 +45477,8 @@

Proxy.revocable ( _target_, _handler_ )

1. Let _revoker_ be ! CreateBuiltinFunction(_revokerClosure_, 0, *""*, « [[RevocableProxy]] »). 1. Set _revoker_.[[RevocableProxy]] to _p_. 1. Let _result_ be ! OrdinaryObjectCreate(%Object.prototype%). - 1. Perform ! CreateDataPropertyOrThrow(_result_, *"proxy"*, _p_). - 1. Perform ! CreateDataPropertyOrThrow(_result_, *"revoke"*, _revoker_). + 1. Perform ! CreateDataPropertyOrThrow(_result_, *"proxy"*, _p_). + 1. Perform ! CreateDataPropertyOrThrow(_result_, *"revoke"*, _revoker_). 1. Return _result_.
@@ -47002,7 +47006,7 @@

unescape ( _string_ )

1. Set _skip_ to 2. 1. If _hexEscape_ can be interpreted as an expansion of |HexDigits[~Sep]|, then 1. Let _hexIntegerLiteral_ be the string-concatenation of *"0x"* and _hexEscape_. - 1. Let _n_ be ! ToNumber(_hexIntegerLiteral_). + 1. Let _n_ be ! ToNumber(_hexIntegerLiteral_). 1. Set _c_ to the code unit whose value is ℝ(_n_). 1. Set _k_ to _k_ + _skip_. 1. Set _R_ to the string-concatenation of _R_ and _c_. @@ -47232,7 +47236,7 @@

Date.prototype.setYear ( _year_ )

1. If _y_ is *NaN*, then 1. Set the [[DateValue]] internal slot of this Date object to *NaN*. 1. Return *NaN*. - 1. Let _yi_ be ! ToIntegerOrInfinity(_y_). + 1. Let _yi_ be ! ToIntegerOrInfinity(_y_). 1. If 0 ≤ _yi_ ≤ 99, let _yyyy_ be *1900*𝔽 + 𝔽(_yi_). 1. Else, let _yyyy_ be _y_. 1. Let _d_ be MakeDay(_yyyy_, MonthFromTime(_t_), DateFromTime(_t_)).