- 1. Let _n_ be StringToBigInt(_prim_).
+ 1. Let _n_ be StringToBigInt(_primitive_).
1. If _n_ is *undefined*, throw a *SyntaxError* exception.
1. Return _n_.
@@ -5589,13 +5589,13 @@
StringToBigInt (
- _str_: a String,
+ _string_: a String,
): a BigInt or *undefined*
- 1. Let _literal_ be ParseText(_str_, |StringIntegerLiteral|).
+ 1. Let _literal_ be ParseText(_string_, |StringIntegerLiteral|).
1. If _literal_ is a List of errors, return *undefined*.
1. Let _mv_ be the MV of _literal_.
1. Assert: _mv_ is an integer.
@@ -5633,15 +5633,15 @@ Runtime Semantics: MV
ToBigInt64 (
- _argument_: an ECMAScript language value,
+ _arg_: an ECMAScript language value,
): either a normal completion containing a BigInt or a throw completion
- 1. Let _n_ be ? ToBigInt(_argument_).
+ 1. Let _n_ be ? ToBigInt(_arg_).
1. Let _int64bit_ be ℝ(_n_) modulo 264.
1. If _int64bit_ ≥ 263, return ℤ(_int64bit_ - 264).
1. Return ℤ(_int64bit_).
@@ -5651,15 +5651,15 @@
ToBigUint64 (
- _argument_: an ECMAScript language value,
+ _arg_: an ECMAScript language value,
): either a normal completion containing a BigInt or a throw completion
- 1. Let _n_ be ? ToBigInt(_argument_).
+ 1. Let _n_ be ? ToBigInt(_arg_).
1. Let _int64bit_ be ℝ(_n_) modulo 264.
1. Return ℤ(_int64bit_).
@@ -5668,63 +5668,63 @@
ToString (
- _argument_: an ECMAScript language value,
+ _arg_: an ECMAScript language value,
): either a normal completion containing a String or a throw completion
- 1. If _argument_ is a String, return _argument_.
- 1. If _argument_ is a Symbol, throw a *TypeError* exception.
- 1. If _argument_ is *undefined*, return *"undefined"*.
- 1. If _argument_ is *null*, return *"null"*.
- 1. If _argument_ is *true*, return *"true"*.
- 1. If _argument_ is *false*, return *"false"*.
- 1. If _argument_ is a Number, return Number::toString(_argument_, 10).
- 1. If _argument_ is a BigInt, return BigInt::toString(_argument_, 10).
- 1. Assert: _argument_ is an Object.
- 1. Let _primValue_ be ? ToPrimitive(_argument_, ~string~).
- 1. Assert: _primValue_ is not an Object.
- 1. Return ? ToString(_primValue_).
+ 1. If _arg_ is a String, return _arg_.
+ 1. If _arg_ is a Symbol, throw a *TypeError* exception.
+ 1. If _arg_ is *undefined*, return *"undefined"*.
+ 1. If _arg_ is *null*, return *"null"*.
+ 1. If _arg_ is *true*, return *"true"*.
+ 1. If _arg_ is *false*, return *"false"*.
+ 1. If _arg_ is a Number, return Number::toString(_arg_, 10).
+ 1. If _arg_ is a BigInt, return BigInt::toString(_arg_, 10).
+ 1. Assert: _arg_ is an Object.
+ 1. Let _primitiveValue_ be ? ToPrimitive(_arg_, ~string~).
+ 1. Assert: _primitiveValue_ is not an Object.
+ 1. Return ? ToString(_primitiveValue_).
ToObject (
- _argument_: an ECMAScript language value,
+ _arg_: an ECMAScript language value,
): either a normal completion containing an Object or a throw completion
- 1. If _argument_ is either *undefined* or *null*, throw a *TypeError* exception.
- 1. If _argument_ is a Boolean, return a new Boolean object whose [[BooleanData]] internal slot is set to _argument_. See for a description of Boolean objects.
- 1. If _argument_ is a Number, return a new Number object whose [[NumberData]] internal slot is set to _argument_. See for a description of Number objects.
- 1. If _argument_ is a String, return a new String object whose [[StringData]] internal slot is set to _argument_. See for a description of String objects.
- 1. If _argument_ is a Symbol, return a new Symbol object whose [[SymbolData]] internal slot is set to _argument_. See for a description of Symbol objects.
- 1. If _argument_ is a BigInt, return a new BigInt object whose [[BigIntData]] internal slot is set to _argument_. See for a description of BigInt objects.
- 1. Assert: _argument_ is an Object.
- 1. Return _argument_.
+ 1. If _arg_ is either *undefined* or *null*, throw a *TypeError* exception.
+ 1. If _arg_ is a Boolean, return a new Boolean object whose [[BooleanData]] internal slot is set to _arg_. See for a description of Boolean objects.
+ 1. If _arg_ is a Number, return a new Number object whose [[NumberData]] internal slot is set to _arg_. See for a description of Number objects.
+ 1. If _arg_ is a String, return a new String object whose [[StringData]] internal slot is set to _arg_. See for a description of String objects.
+ 1. If _arg_ is a Symbol, return a new Symbol object whose [[SymbolData]] internal slot is set to _arg_. See for a description of Symbol objects.
+ 1. If _arg_ is a BigInt, return a new BigInt object whose [[BigIntData]] internal slot is set to _arg_. See for a description of BigInt objects.
+ 1. Assert: _arg_ is an Object.
+ 1. Return _arg_.
ToPropertyKey (
- _argument_: an ECMAScript language value,
+ _arg_: an ECMAScript language value,
): either a normal completion containing a property key or a throw completion
- 1. Let _key_ be ? ToPrimitive(_argument_, ~string~).
+ 1. Let _key_ be ? ToPrimitive(_arg_, ~string~).
1. If _key_ is a Symbol, then
1. Return _key_.
1. Return ! ToString(_key_).
@@ -5734,34 +5734,34 @@
ToLength (
- _argument_: an ECMAScript language value,
+ _arg_: an ECMAScript language value,
): either a normal completion containing a non-negative integral Number or a throw completion
- 1. Let _len_ be ? ToIntegerOrInfinity(_argument_).
- 1. If _len_ ≤ 0, return *+0*𝔽.
- 1. Return 𝔽(min(_len_, 253 - 1)).
+ 1. Let _length_ be ? ToIntegerOrInfinity(_arg_).
+ 1. If _length_ ≤ 0, return *+0*𝔽.
+ 1. Return 𝔽(min(_length_, 253 - 1)).
CanonicalNumericIndexString (
- _argument_: a String,
+ _arg_: a String,
): a Number or *undefined*
- 1. If _argument_ is *"-0"*, return *-0*𝔽.
- 1. Let _n_ be ! ToNumber(_argument_).
- 1. If ! ToString(_n_) is _argument_, return _n_.
+ 1. If _arg_ is *"-0"*, return *-0*𝔽.
+ 1. Let _n_ be ! ToNumber(_arg_).
+ 1. If ! ToString(_n_) is _arg_, return _n_.
1. Return *undefined*.
A canonical numeric string is any String for which the CanonicalNumericIndexString abstract operation does not return *undefined*.
@@ -5770,17 +5770,17 @@
ToIndex (
- _value_: an ECMAScript language value,
+ _arg_: an ECMAScript language value,
): either a normal completion containing a non-negative integer or a throw completion
- 1. Let _integer_ be ? ToIntegerOrInfinity(_value_).
- 1. If _integer_ is not in the inclusive interval from 0 to 253 - 1, throw a *RangeError* exception.
- 1. Return _integer_.
+ 1. Let _int_ be ? ToIntegerOrInfinity(_arg_).
+ 1. If _int_ is not in the inclusive interval from 0 to 253 - 1, throw a *RangeError* exception.
+ 1. Return _int_.
@@ -5791,15 +5791,15 @@ Testing and Comparison Operations
RequireObjectCoercible (
- _argument_: an ECMAScript language value,
+ _arg_: an ECMAScript language value,
): either a normal completion containing ~unused~ or a throw completion
- 1. If _argument_ is either *undefined* or *null*, throw a *TypeError* exception.
+ 1. If _arg_ is either *undefined* or *null*, throw a *TypeError* exception.
1. Return ~unused~.
@@ -5807,17 +5807,17 @@
IsArray (
- _argument_: an ECMAScript language value,
+ _arg_: an ECMAScript language value,
): either a normal completion containing a Boolean or a throw completion
- 1. If _argument_ is not an Object, return *false*.
- 1. If _argument_ is an Array exotic object, return *true*.
- 1. If _argument_ is a Proxy exotic object, then
- 1. Perform ? ValidateNonRevokedProxy(_argument_).
- 1. Let _proxyTarget_ be _argument_.[[ProxyTarget]].
+ 1. If _arg_ is not an Object, return *false*.
+ 1. If _arg_ is an Array exotic object, return *true*.
+ 1. If _arg_ is a Proxy exotic object, then
+ 1. Perform ? ValidateNonRevokedProxy(_arg_).
+ 1. Let _proxyTarget_ be _arg_.[[ProxyTarget]].
1. Return ? IsArray(_proxyTarget_).
1. Return *false*.
@@ -5826,16 +5826,16 @@
IsCallable (
- _argument_: an ECMAScript language value,
+ _arg_: an ECMAScript language value,
): a Boolean
- 1. If _argument_ is not an Object, return *false*.
- 1. If _argument_ has a [[Call]] internal method, return *true*.
+ 1. If _arg_ is not an Object, return *false*.
+ 1. If _arg_ has a [[Call]] internal method, return *true*.
1. Return *false*.
@@ -5843,16 +5843,16 @@
IsConstructor (
- _argument_: an ECMAScript language value,
+ _arg_: an ECMAScript language value,
): a Boolean
- 1. If _argument_ is not an Object, return *false*.
- 1. If _argument_ has a [[Construct]] internal method, return *true*.
+ 1. If _arg_ is not an Object, return *false*.
+ 1. If _arg_ has a [[Construct]] internal method, return *true*.
1. Return *false*.
@@ -5875,16 +5875,16 @@
IsRegExp (
- _argument_: an ECMAScript language value,
+ _arg_: an ECMAScript language value,
): either a normal completion containing a Boolean or a throw completion
- 1. If _argument_ is not an Object, return *false*.
- 1. Let _matcher_ be ? Get(_argument_, %Symbol.match%).
+ 1. If _arg_ is not an Object, return *false*.
+ 1. Let _matcher_ be ? Get(_arg_, %Symbol.match%).
1. If _matcher_ is not *undefined*, return ToBoolean(_matcher_).
- 1. If _argument_ has a [[RegExpMatcher]] internal slot, return *true*.
+ 1. If _arg_ has a [[RegExpMatcher]] internal slot, return *true*.
1. Return *false*.
@@ -5900,12 +5900,12 @@
It interprets _string_ as a sequence of UTF-16 encoded code points, as described in , and determines whether it is a well formed UTF-16 sequence.
- 1. Let _len_ be the length of _string_.
+ 1. Let _length_ be the length of _string_.
1. Let _k_ be 0.
- 1. Repeat, while _k_ < _len_,
- 1. Let _cp_ be CodePointAt(_string_, _k_).
- 1. If _cp_.[[IsUnpairedSurrogate]] is *true*, return *false*.
- 1. Set _k_ to _k_ + _cp_.[[CodeUnitCount]].
+ 1. Repeat, while _k_ < _length_,
+ 1. Let _codePoint_ be CodePointAt(_string_, _k_).
+ 1. If _codePoint_.[[IsUnpairedSurrogate]] is *true*, return *false*.
+ 1. Set _k_ to _k_ + _codePoint_.[[CodeUnitCount]].
1. Return *true*.
@@ -6287,7 +6287,7 @@
DefinePropertyOrThrow (
_obj_: an Object,
_propertyKey_: a property key,
- _desc_: a Property Descriptor,
+ _propertyDesc_: a Property Descriptor,
): either a normal completion containing ~unused~ or a throw completion
- 1. Let _success_ be ? _obj_.[[DefineOwnProperty]](_propertyKey_, _desc_).
+ 1. Let _success_ be ? _obj_.[[DefineOwnProperty]](_propertyKey_, _propertyDesc_).
1. If _success_ is *false*, throw a *TypeError* exception.
1. Return ~unused~.
@@ -6366,8 +6366,8 @@
It is used to determine whether an object has an own property with the specified property key.
- 1. Let _desc_ be ? _obj_.[[GetOwnProperty]](_propertyKey_).
- 1. If _desc_ is *undefined*, return *false*.
+ 1. Let _propertyDesc_ be ? _obj_.[[GetOwnProperty]](_propertyKey_).
+ 1. If _propertyDesc_ is *undefined*, return *false*.
1. Return *true*.
@@ -6377,36 +6377,36 @@
Call (
_func_: an ECMAScript language value,
_thisValue_: an ECMAScript language value,
- optional _argumentsList_: a List of ECMAScript language values,
+ optional _argList_: a List of ECMAScript language values,
): either a normal completion containing an ECMAScript language value or a throw completion
- 1. If _argumentsList_ is not present, set _argumentsList_ to a new empty List.
+ 1. If _argList_ is not present, set _argList_ to a new empty List.
1. If IsCallable(_func_) is *false*, throw a *TypeError* exception.
- 1. Return ? _func_.[[Call]](_thisValue_, _argumentsList_).
+ 1. Return ? _func_.[[Call]](_thisValue_, _argList_).
Construct (
- _constructor_: a constructor,
- optional _argumentsList_: a List of ECMAScript language values,
+ _ctor_: a constructor,
+ optional _argList_: a List of ECMAScript language values,
optional _newTarget_: a constructor,
): either a normal completion containing an Object or a throw completion
- 1. If _newTarget_ is not present, set _newTarget_ to _constructor_.
- 1. If _argumentsList_ is not present, set _argumentsList_ to a new empty List.
- 1. Return ? _constructor_.[[Construct]](_argumentsList_, _newTarget_).
+ 1. If _newTarget_ is not present, set _newTarget_ to _ctor_.
+ 1. If _argList_ is not present, set _argList_ to a new empty List.
+ 1. Return ? _ctor_.[[Construct]](_argList_, _newTarget_).
If _newTarget_ is not present, this operation is equivalent to: `new F(...argumentsList)`
@@ -6437,10 +6437,10 @@
1. Let _currentDesc_ be ? _obj_.[[GetOwnProperty]](_key_).
1. If _currentDesc_ is not *undefined*, then
1. If IsAccessorDescriptor(_currentDesc_) is *true*, then
- 1. Let _desc_ be the PropertyDescriptor { [[Configurable]]: *false* }.
+ 1. Let _propertyDesc_ be the PropertyDescriptor { [[Configurable]]: *false* }.
1. Else,
- 1. Let _desc_ be the PropertyDescriptor { [[Configurable]]: *false*, [[Writable]]: *false* }.
- 1. Perform ? DefinePropertyOrThrow(_obj_, _key_, _desc_).
+ 1. Let _propertyDesc_ be the PropertyDescriptor { [[Configurable]]: *false*, [[Writable]]: *false* }.
+ 1. Perform ? DefinePropertyOrThrow(_obj_, _key_, _propertyDesc_).
1. Return *true*.
@@ -6484,8 +6484,8 @@
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. For each element _element_ of _elements_, do
+ 1. Perform ! CreateDataPropertyOrThrow(_array_, ! ToString(𝔽(_n_)), _element_).
1. Set _n_ to _n_ + 1.
1. Return _array_.
@@ -6527,10 +6527,10 @@
1. If _validElementTypes_ is not present, set _validElementTypes_ to ~all~.
1. If _obj_ is not an Object, throw a *TypeError* exception.
- 1. Let _len_ be ? LengthOfArrayLike(_obj_).
+ 1. Let _length_ be ? LengthOfArrayLike(_obj_).
1. Let _list_ be a new empty List.
1. Let _index_ be 0.
- 1. Repeat, while _index_ < _len_,
+ 1. Repeat, while _index_ < _length_,
1. Let _indexName_ be ! ToString(𝔽(_index_)).
1. Let _next_ be ? Get(_obj_, _indexName_).
1. If _validElementTypes_ is ~property-key~ and _next_ is not a property key, throw a *TypeError* exception.
@@ -6545,39 +6545,39 @@
Invoke (
_value_: an ECMAScript language value,
_propertyKey_: a property key,
- optional _argumentsList_: a List of ECMAScript language values,
+ optional _argList_: a List of ECMAScript language values,
): either a normal completion containing an ECMAScript language value or a throw completion
- 1. If _argumentsList_ is not present, set _argumentsList_ to a new empty List.
+ 1. If _argList_ is not present, set _argList_ to a new empty List.
1. Let _func_ be ? GetV(_value_, _propertyKey_).
- 1. Return ? Call(_func_, _value_, _argumentsList_).
+ 1. Return ? Call(_func_, _value_, _argList_).
OrdinaryHasInstance (
- _constructor_: an ECMAScript language value,
+ _ctor_: an ECMAScript language value,
_instance_: an ECMAScript language value,
): either a normal completion containing a Boolean or a throw completion
- 1. If IsCallable(_constructor_) is *false*, return *false*.
- 1. If _constructor_ has a [[BoundTargetFunction]] internal slot, then
- 1. Let _boundConstructor_ be _constructor_.[[BoundTargetFunction]].
- 1. Return ? InstanceofOperator(_instance_, _boundConstructor_).
+ 1. If IsCallable(_ctor_) is *false*, return *false*.
+ 1. If _ctor_ has a [[BoundTargetFunction]] internal slot, then
+ 1. Let _boundCtor_ be _ctor_.[[BoundTargetFunction]].
+ 1. Return ? InstanceofOperator(_instance_, _boundCtor_).
1. If _instance_ is not an Object, return *false*.
- 1. Let _proto_ be ? Get(_constructor_, *"prototype"*).
+ 1. Let _proto_ be ? Get(_ctor_, *"prototype"*).
1. If _proto_ is not an Object, throw a *TypeError* exception.
1. Repeat,
1. Set _instance_ to ? _instance_.[[GetPrototypeOf]]().
@@ -6590,19 +6590,19 @@
SpeciesConstructor (
_obj_: an Object,
- _defaultConstructor_: a constructor,
+ _defaultCtor_: a constructor,
): either a normal completion containing a constructor or a throw completion
- 1. Let _constructor_ be ? Get(_obj_, *"constructor"*).
- 1. If _constructor_ is *undefined*, return _defaultConstructor_.
- 1. If _constructor_ is not an Object, throw a *TypeError* exception.
- 1. Let _species_ be ? Get(_constructor_, %Symbol.species%).
- 1. If _species_ is either *undefined* or *null*, return _defaultConstructor_.
+ 1. Let _ctor_ be ? Get(_obj_, *"constructor"*).
+ 1. If _ctor_ is *undefined*, return _defaultCtor_.
+ 1. If _ctor_ is not an Object, throw a *TypeError* exception.
+ 1. Let _species_ be ? Get(_ctor_, %Symbol.species%).
+ 1. If _species_ is either *undefined* or *null*, return _defaultCtor_.
1. If IsConstructor(_species_) is *true*, return _species_.
1. Throw a *TypeError* exception.
@@ -6622,8 +6622,8 @@
1. Let _results_ be a new empty List.
1. For each element _key_ of _ownKeys_, do
1. If _key_ is a String, then
- 1. Let _desc_ be ? _obj_.[[GetOwnProperty]](_key_).
- 1. If _desc_ is not *undefined* and _desc_.[[Enumerable]] is *true*, then
+ 1. Let _propertyDesc_ be ? _obj_.[[GetOwnProperty]](_key_).
+ 1. If _propertyDesc_ is not *undefined* and _propertyDesc_.[[Enumerable]] is *true*, then
1. If _kind_ is ~key~, then
1. Append _key_ to _results_.
1. Else,
@@ -6650,8 +6650,8 @@
1. If _func_ has a [[Realm]] internal slot, then
1. Return _func_.[[Realm]].
1. If _func_ is a bound function exotic object, then
- 1. Let _boundTargetFunction_ be _func_.[[BoundTargetFunction]].
- 1. Return ? GetFunctionRealm(_boundTargetFunction_).
+ 1. Let _boundTargetFunc_ be _func_.[[BoundTargetFunction]].
+ 1. Return ? GetFunctionRealm(_boundTargetFunc_).
1. If _func_ is a Proxy exotic object, then
1. Perform ? ValidateNonRevokedProxy(_func_).
1. Let _proxyTarget_ be _func_.[[ProxyTarget]].
@@ -6680,14 +6680,14 @@
1. Let _keys_ be ? _from_.[[OwnPropertyKeys]]().
1. For each element _nextKey_ of _keys_, do
1. Let _excluded_ be *false*.
- 1. For each element _e_ of _excludedItems_, do
- 1. If SameValue(_e_, _nextKey_) is *true*, then
+ 1. For each element _element_ of _excludedItems_, do
+ 1. If SameValue(_element_, _nextKey_) is *true*, then
1. Set _excluded_ to *true*.
1. If _excluded_ is *false*, then
- 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. Let _propertyDesc_ be ? _from_.[[GetOwnProperty]](_nextKey_).
+ 1. If _propertyDesc_ is not *undefined* and _propertyDesc_.[[Enumerable]] is *true*, then
+ 1. Let _propertyValue_ be ? Get(_from_, _nextKey_).
+ 1. Perform ! CreateDataPropertyOrThrow(_target_, _nextKey_, _propertyValue_).
1. Return ~unused~.
@@ -6848,16 +6848,16 @@
InitializeInstanceElements (
_obj_: an Object,
- _constructor_: an ECMAScript function object or a built-in function object,
+ _ctor_: an ECMAScript function object or a built-in function object,
): either a normal completion containing ~unused~ or a throw completion
- 1. Let _methods_ be _constructor_.[[PrivateMethods]].
+ 1. Let _methods_ be _ctor_.[[PrivateMethods]].
1. For each PrivateElement _method_ of _methods_, do
1. Perform ? PrivateMethodOrAccessorAdd(_obj_, _method_).
- 1. Let _fields_ be _constructor_.[[Fields]].
+ 1. Let _fields_ be _ctor_.[[Fields]].
1. For each element _fieldRecord_ of _fields_, do
1. Perform ? DefineField(_obj_, _fieldRecord_).
1. Return ~unused~.
@@ -6957,8 +6957,8 @@
1. If SameValue(_thisValue_, _home_) is *true*, then
1. NOTE: Throwing here emulates assignment to a non-writable data property on the _home_ object in strict mode code.
1. Throw a *TypeError* exception.
- 1. Let _desc_ be ? _thisValue_.[[GetOwnProperty]](_propertyKey_).
- 1. If _desc_ is *undefined*, then
+ 1. Let _propertyDesc_ be ? _thisValue_.[[GetOwnProperty]](_propertyKey_).
+ 1. If _propertyDesc_ is *undefined*, then
1. Perform ? CreateDataPropertyOrThrow(_thisValue_, _propertyKey_, _value_).
1. Else,
1. Perform ? Set(_thisValue_, _propertyKey_, _value_, *true*).
@@ -7231,7 +7231,7 @@
IteratorCloseAll (
- _iters_: a List of Iterator Records,
+ _iterators_: a List of Iterator Records,
_completion_: a Completion Record,
): a Completion Record
@@ -7240,8 +7240,8 @@
true
- 1. For each element _iter_ of _iters_, in reverse List order, do
- 1. Set _completion_ to Completion(IteratorClose(_iter_, _completion_)).
+ 1. For each element _iterator_ of _iterators_, in reverse List order, do
+ 1. Set _completion_ to Completion(IteratorClose(_iterator_, _completion_)).
1. Return ? _completion_.
@@ -9618,7 +9618,7 @@ Miscellaneous
Runtime Semantics: InstantiateFunctionObject (
- _env_: an Environment Record,
+ _envRecord_: an Environment Record,
_privateEnv_: a PrivateEnvironment Record or *null*,
): an ECMAScript function object
@@ -9630,7 +9630,7 @@
`function` `(` FormalParameters `)` `{` FunctionBody `}`
- 1. Return InstantiateOrdinaryFunctionObject of |FunctionDeclaration| with arguments _env_ and _privateEnv_.
+ 1. Return InstantiateOrdinaryFunctionObject of |FunctionDeclaration| with arguments _envRecord_ and _privateEnv_.
GeneratorDeclaration :
@@ -9638,7 +9638,7 @@
`function` `*` `(` FormalParameters `)` `{` GeneratorBody `}`
- 1. Return InstantiateGeneratorFunctionObject of |GeneratorDeclaration| with arguments _env_ and _privateEnv_.
+ 1. Return InstantiateGeneratorFunctionObject of |GeneratorDeclaration| with arguments _envRecord_ and _privateEnv_.
AsyncGeneratorDeclaration :
@@ -9646,7 +9646,7 @@
`async` `function` `*` `(` FormalParameters `)` `{` AsyncGeneratorBody `}`
- 1. Return InstantiateAsyncGeneratorFunctionObject of |AsyncGeneratorDeclaration| with arguments _env_ and _privateEnv_.
+ 1. Return InstantiateAsyncGeneratorFunctionObject of |AsyncGeneratorDeclaration| with arguments _envRecord_ and _privateEnv_.
AsyncFunctionDeclaration :
@@ -9654,7 +9654,7 @@
`async` `function` `(` FormalParameters `)` `{` AsyncFunctionBody `}`
- 1. Return InstantiateAsyncFunctionObject of |AsyncFunctionDeclaration| with arguments _env_ and _privateEnv_.
+ 1. Return InstantiateAsyncFunctionObject of |AsyncFunctionDeclaration| with arguments _envRecord_ and _privateEnv_.
@@ -9662,36 +9662,36 @@
Runtime Semantics: BindingInitialization (
_value_: an ECMAScript language value,
- _environment_: an Environment Record or *undefined*,
+ _envRecord_: an Environment Record or *undefined*,
): either a normal completion containing ~unused~ or an abrupt completion
- *undefined* is passed for _environment_ to indicate that a PutValue operation should be used to assign the initialization value. This is the case for `var` statements and formal parameter lists of some non-strict functions (See ). In those cases a lexical binding is hoisted and preinitialized prior to evaluation of its initializer.
+ *undefined* is passed for _envRecord_ to indicate that a PutValue operation should be used to assign the initialization value. This is the case for `var` statements and formal parameter lists of some non-strict functions (See ). In those cases a lexical binding is hoisted and preinitialized prior to evaluation of its initializer.
BindingIdentifier : Identifier
1. Let _name_ be the StringValue of |Identifier|.
- 1. Return ? InitializeBoundName(_name_, _value_, _environment_).
+ 1. Return ? InitializeBoundName(_name_, _value_, _envRecord_).
BindingIdentifier : `yield`
- 1. Return ? InitializeBoundName(*"yield"*, _value_, _environment_).
+ 1. Return ? InitializeBoundName(*"yield"*, _value_, _envRecord_).
BindingIdentifier : `await`
- 1. Return ? InitializeBoundName(*"await"*, _value_, _environment_).
+ 1. Return ? InitializeBoundName(*"await"*, _value_, _envRecord_).
BindingPattern : ObjectBindingPattern
1. Perform ? RequireObjectCoercible(_value_).
- 1. Return ? BindingInitialization of |ObjectBindingPattern| with arguments _value_ and _environment_.
+ 1. Return ? BindingInitialization of |ObjectBindingPattern| with arguments _value_ and _envRecord_.
BindingPattern : ArrayBindingPattern
1. Let _iteratorRecord_ be ? GetIterator(_value_, ~sync~).
- 1. Let _result_ be Completion(IteratorBindingInitialization of |ArrayBindingPattern| with arguments _iteratorRecord_ and _environment_).
+ 1. Let _result_ be Completion(IteratorBindingInitialization of |ArrayBindingPattern| with arguments _iteratorRecord_ and _envRecord_).
1. If _iteratorRecord_.[[Done]] is *false*, return ? IteratorClose(_iteratorRecord_, _result_).
1. Return ? _result_.
@@ -9705,18 +9705,18 @@
`{` BindingPropertyList `,` `}`
- 1. Perform ? PropertyBindingInitialization of |BindingPropertyList| with arguments _value_ and _environment_.
+ 1. Perform ? PropertyBindingInitialization of |BindingPropertyList| with arguments _value_ and _envRecord_.
1. Return ~unused~.
ObjectBindingPattern : `{` BindingRestProperty `}`
1. Let _excludedNames_ be a new empty List.
- 1. Return ? RestBindingInitialization of |BindingRestProperty| with arguments _value_, _environment_, and _excludedNames_.
+ 1. Return ? RestBindingInitialization of |BindingRestProperty| with arguments _value_, _envRecord_, and _excludedNames_.
ObjectBindingPattern : `{` BindingPropertyList `,` BindingRestProperty `}`
- 1. Let _excludedNames_ be ? PropertyBindingInitialization of |BindingPropertyList| with arguments _value_ and _environment_.
- 1. Return ? RestBindingInitialization of |BindingRestProperty| with arguments _value_, _environment_, and _excludedNames_.
+ 1. Let _excludedNames_ be ? PropertyBindingInitialization of |BindingPropertyList| with arguments _value_ and _envRecord_.
+ 1. Return ? RestBindingInitialization of |BindingRestProperty| with arguments _value_, _envRecord_, and _excludedNames_.
@@ -9724,14 +9724,14 @@
InitializeBoundName (
_name_: a String,
_value_: an ECMAScript language value,
- _environment_: an Environment Record or *undefined*,
+ _envRecord_: an Environment Record or *undefined*,
): either a normal completion containing ~unused~ or an abrupt completion
- 1. If _environment_ is not *undefined*, then
- 1. Perform ! _environment_.InitializeBinding(_name_, _value_).
+ 1. If _envRecord_ is not *undefined*, then
+ 1. Perform ! _envRecord_.InitializeBinding(_name_, _value_).
1. Return ~unused~.
1. Let _lhs_ be ? ResolveBinding(_name_).
1. Return ? PutValue(_lhs_, _value_).
@@ -9743,13 +9743,13 @@
Runtime Semantics: IteratorBindingInitialization (
_iteratorRecord_: an Iterator Record,
- _environment_: an Environment Record or *undefined*,
+ _envRecord_: an Environment Record or *undefined*,
): either a normal completion containing ~unused~ or an abrupt completion
- When *undefined* is passed for _environment_ it indicates that a PutValue operation should be used to assign the initialization value. This is the case for formal parameter lists of non-strict functions. In that case the formal parameter bindings are preinitialized in order to deal with the possibility of multiple parameters with the same name.
+ When *undefined* is passed for _envRecord_ it indicates that a PutValue operation should be used to assign the initialization value. This is the case for formal parameter lists of non-strict functions. In that case the formal parameter bindings are preinitialized in order to deal with the possibility of multiple parameters with the same name.
ArrayBindingPattern : `[` `]`
@@ -9763,34 +9763,34 @@
1. If |Elision| is present, then
1. Perform ? IteratorDestructuringAssignmentEvaluation of |Elision| with argument _iteratorRecord_.
- 1. Return ? IteratorBindingInitialization of |BindingRestElement| with arguments _iteratorRecord_ and _environment_.
+ 1. Return ? IteratorBindingInitialization of |BindingRestElement| with arguments _iteratorRecord_ and _envRecord_.
ArrayBindingPattern : `[` BindingElementList `,` Elision `]`
- 1. Perform ? IteratorBindingInitialization of |BindingElementList| with arguments _iteratorRecord_ and _environment_.
+ 1. Perform ? IteratorBindingInitialization of |BindingElementList| with arguments _iteratorRecord_ and _envRecord_.
1. Return ? IteratorDestructuringAssignmentEvaluation of |Elision| with argument _iteratorRecord_.
ArrayBindingPattern : `[` BindingElementList `,` Elision? BindingRestElement `]`
- 1. Perform ? IteratorBindingInitialization of |BindingElementList| with arguments _iteratorRecord_ and _environment_.
+ 1. Perform ? IteratorBindingInitialization of |BindingElementList| with arguments _iteratorRecord_ and _envRecord_.
1. If |Elision| is present, then
1. Perform ? IteratorDestructuringAssignmentEvaluation of |Elision| with argument _iteratorRecord_.
- 1. Return ? IteratorBindingInitialization of |BindingRestElement| with arguments _iteratorRecord_ and _environment_.
+ 1. Return ? IteratorBindingInitialization of |BindingRestElement| with arguments _iteratorRecord_ and _envRecord_.
BindingElementList : BindingElementList `,` BindingElisionElement
- 1. Perform ? IteratorBindingInitialization of |BindingElementList| with arguments _iteratorRecord_ and _environment_.
- 1. Return ? IteratorBindingInitialization of |BindingElisionElement| with arguments _iteratorRecord_ and _environment_.
+ 1. Perform ? IteratorBindingInitialization of |BindingElementList| with arguments _iteratorRecord_ and _envRecord_.
+ 1. Return ? IteratorBindingInitialization of |BindingElisionElement| with arguments _iteratorRecord_ and _envRecord_.
BindingElisionElement : Elision BindingElement
1. Perform ? IteratorDestructuringAssignmentEvaluation of |Elision| with argument _iteratorRecord_.
- 1. Return ? IteratorBindingInitialization of |BindingElement| with arguments _iteratorRecord_ and _environment_.
+ 1. Return ? IteratorBindingInitialization of |BindingElement| with arguments _iteratorRecord_ and _envRecord_.
SingleNameBinding : BindingIdentifier Initializer?
1. Let _bindingId_ be the StringValue of |BindingIdentifier|.
- 1. Let _lhs_ be ? ResolveBinding(_bindingId_, _environment_).
+ 1. Let _lhs_ be ? ResolveBinding(_bindingId_, _envRecord_).
1. Let _v_ be *undefined*.
1. If _iteratorRecord_.[[Done]] is *false*, then
1. Let _next_ be ? IteratorStepValue(_iteratorRecord_).
@@ -9802,7 +9802,7 @@
1. Else,
1. Let _defaultValue_ be ? Evaluation of |Initializer|.
1. Set _v_ to ? GetValue(_defaultValue_).
- 1. If _environment_ is *undefined*, return ? PutValue(_lhs_, _v_).
+ 1. If _envRecord_ is *undefined*, return ? PutValue(_lhs_, _v_).
1. Return ? InitializeReferencedBinding(_lhs_, _v_).
BindingElement : BindingPattern Initializer?
@@ -9815,11 +9815,11 @@
1. If |Initializer| is present and _v_ is *undefined*, then
1. Let _defaultValue_ be ? Evaluation of |Initializer|.
1. Set _v_ to ? GetValue(_defaultValue_).
- 1. Return ? BindingInitialization of |BindingPattern| with arguments _v_ and _environment_.
+ 1. Return ? BindingInitialization of |BindingPattern| with arguments _v_ and _envRecord_.
BindingRestElement : `...` BindingIdentifier
- 1. Let _lhs_ be ? ResolveBinding(StringValue of |BindingIdentifier|, _environment_).
+ 1. Let _lhs_ be ? ResolveBinding(StringValue of |BindingIdentifier|, _envRecord_).
1. Let _array_ be ! ArrayCreate(0).
1. Let _n_ be 0.
1. Repeat,
@@ -9827,7 +9827,7 @@
1. If _iteratorRecord_.[[Done]] is *false*, then
1. Set _next_ to ? IteratorStepValue(_iteratorRecord_).
1. If _next_ is ~done~, then
- 1. If _environment_ is *undefined*, return ? PutValue(_lhs_, _array_).
+ 1. If _envRecord_ is *undefined*, return ? PutValue(_lhs_, _array_).
1. Return ? InitializeReferencedBinding(_lhs_, _array_).
1. Perform ! CreateDataPropertyOrThrow(_array_, ! ToString(𝔽(_n_)), _next_).
1. Set _n_ to _n_ + 1.
@@ -9841,7 +9841,7 @@
1. If _iteratorRecord_.[[Done]] is *false*, then
1. Set _next_ to ? IteratorStepValue(_iteratorRecord_).
1. If _next_ is ~done~, then
- 1. Return ? BindingInitialization of |BindingPattern| with arguments _array_ and _environment_.
+ 1. Return ? BindingInitialization of |BindingPattern| with arguments _array_ and _envRecord_.
1. Perform ! CreateDataPropertyOrThrow(_array_, ! ToString(𝔽(_n_)), _next_).
1. Set _n_ to _n_ + 1.
@@ -9851,13 +9851,13 @@
FormalParameters : FormalParameterList `,` FunctionRestParameter
- 1. Perform ? IteratorBindingInitialization of |FormalParameterList| with arguments _iteratorRecord_ and _environment_.
- 1. Return ? IteratorBindingInitialization of |FunctionRestParameter| with arguments _iteratorRecord_ and _environment_.
+ 1. Perform ? IteratorBindingInitialization of |FormalParameterList| with arguments _iteratorRecord_ and _envRecord_.
+ 1. Return ? IteratorBindingInitialization of |FunctionRestParameter| with arguments _iteratorRecord_ and _envRecord_.
FormalParameterList : FormalParameterList `,` FormalParameter
- 1. Perform ? IteratorBindingInitialization of |FormalParameterList| with arguments _iteratorRecord_ and _environment_.
- 1. Return ? IteratorBindingInitialization of |FormalParameter| with arguments _iteratorRecord_ and _environment_.
+ 1. Perform ? IteratorBindingInitialization of |FormalParameterList| with arguments _iteratorRecord_ and _envRecord_.
+ 1. Return ? IteratorBindingInitialization of |FormalParameter| with arguments _iteratorRecord_ and _envRecord_.
ArrowParameters : BindingIdentifier
@@ -9866,12 +9866,12 @@
1. Let _next_ be ? IteratorStepValue(_iteratorRecord_).
1. If _next_ is not ~done~, then
1. Set _v_ to _next_.
- 1. Return ? BindingInitialization of |BindingIdentifier| with arguments _v_ and _environment_.
+ 1. Return ? BindingInitialization of |BindingIdentifier| with arguments _v_ and _envRecord_.
ArrowParameters : CoverParenthesizedExpressionAndArrowParameterList
1. Let _formals_ be the |ArrowFormalParameters| that is covered by |CoverParenthesizedExpressionAndArrowParameterList|.
- 1. Return ? IteratorBindingInitialization of _formals_ with arguments _iteratorRecord_ and _environment_.
+ 1. Return ? IteratorBindingInitialization of _formals_ with arguments _iteratorRecord_ and _envRecord_.
AsyncArrowBindingIdentifier : BindingIdentifier
@@ -9882,7 +9882,7 @@
1. Let _next_ be ? IteratorStepValue(_iteratorRecord_).
1. If _next_ is not ~done~, then
1. Set _v_ to _next_.
- 1. Return ? BindingInitialization of |BindingIdentifier| with arguments _v_ and _environment_.
+ 1. Return ? BindingInitialization of |BindingIdentifier| with arguments _v_ and _envRecord_.
@@ -10086,8 +10086,8 @@ Static Semantics: PropName ( ): a String or ~empty~
LiteralPropertyName : NumericLiteral
- 1. Let _nbr_ be the NumericValue of |NumericLiteral|.
- 1. Return ! ToString(_nbr_).
+ 1. Let _number_ be the NumericValue of |NumericLiteral|.
+ 1. Return ! ToString(_number_).
ComputedPropertyName : `[` AssignmentExpression `]`
@@ -10352,13 +10352,13 @@
- 1. If _envRec_ has a binding for _name_, return *true*.
+ 1. If _envRecord_ has a binding for _name_, return *true*.
1. Return *false*.
@@ -10372,14 +10372,14 @@
- 1. Assert: _envRec_ does not already have a binding for _name_.
- 1. Create a mutable binding in _envRec_ for _name_ and record that it is uninitialized. If _deletable_ is *true*, record that the newly created binding may be deleted by a subsequent DeleteBinding call.
+ 1. Assert: _envRecord_ does not already have a binding for _name_.
+ 1. Create a mutable binding in _envRecord_ for _name_ and record that it is uninitialized. If _deletable_ is *true*, record that the newly created binding may be deleted by a subsequent DeleteBinding call.
1. Return ~unused~.
@@ -10393,14 +10393,14 @@
- 1. Assert: _envRec_ does not already have a binding for _name_.
- 1. Create an immutable binding in _envRec_ for _name_ and record that it is uninitialized. If _strict_ is *true*, record that the newly created binding is a strict binding.
+ 1. Assert: _envRecord_ does not already have a binding for _name_.
+ 1. Create an immutable binding in _envRecord_ for _name_ and record that it is uninitialized. If _strict_ is *true*, record that the newly created binding is a strict binding.
1. Return ~unused~.
@@ -10414,15 +10414,15 @@
- 1. Assert: _envRec_ must have an uninitialized binding for _name_.
- 1. Set the bound value for _name_ in _envRec_ to _value_.
- 1. Record that the binding for _name_ in _envRec_ has been initialized.
+ 1. Assert: _envRecord_ must have an uninitialized binding for _name_.
+ 1. Set the bound value for _name_ in _envRecord_ to _value_.
+ 1. Record that the binding for _name_ in _envRecord_ has been initialized.
1. Return ~unused~.
@@ -10437,21 +10437,21 @@
- 1. [id="step-setmutablebinding-missing-binding"] If _envRec_ does not have a binding for _name_, then
+ 1. [id="step-setmutablebinding-missing-binding"] If _envRecord_ does not have a binding for _name_, then
1. If _strict_ is *true*, throw a *ReferenceError* exception.
- 1. Perform ! _envRec_.CreateMutableBinding(_name_, *true*).
- 1. Perform ! _envRec_.InitializeBinding(_name_, _value_).
+ 1. Perform ! _envRecord_.CreateMutableBinding(_name_, *true*).
+ 1. Perform ! _envRecord_.InitializeBinding(_name_, _value_).
1. Return ~unused~.
- 1. If the binding for _name_ in _envRec_ is a strict binding, set _strict_ to *true*.
- 1. If the binding for _name_ in _envRec_ has not yet been initialized, then
+ 1. If the binding for _name_ in _envRecord_ is a strict binding, set _strict_ to *true*.
+ 1. If the binding for _name_ in _envRecord_ has not yet been initialized, then
1. Throw a *ReferenceError* exception.
- 1. Else if the binding for _name_ in _envRec_ is a mutable binding, then
+ 1. Else if the binding for _name_ in _envRecord_ is a mutable binding, then
1. Change its bound value to _value_.
1. Else,
1. Assert: This is an attempt to change the value of an immutable binding.
@@ -10473,15 +10473,15 @@
- 1. Assert: _envRec_ has a binding for _name_.
- 1. If the binding for _name_ in _envRec_ is an uninitialized binding, throw a *ReferenceError* exception.
- 1. Return the value currently bound to _name_ in _envRec_.
+ 1. Assert: _envRecord_ has a binding for _name_.
+ 1. If the binding for _name_ in _envRecord_ is an uninitialized binding, throw a *ReferenceError* exception.
+ 1. Return the value currently bound to _name_ in _envRecord_.
@@ -10493,15 +10493,15 @@
- 1. Assert: _envRec_ has a binding for _name_.
- 1. If the binding for _name_ in _envRec_ cannot be deleted, return *false*.
- 1. Remove the binding for _name_ from _envRec_.
+ 1. Assert: _envRecord_ has a binding for _name_.
+ 1. If the binding for _name_ in _envRecord_ cannot be deleted, return *false*.
+ 1. Remove the binding for _name_ from _envRecord_.
1. Return *true*.
@@ -10510,7 +10510,7 @@
HasThisBinding ( ): *false*
1. Return *false*.
@@ -10529,7 +10529,7 @@ GetThisBinding ( )
HasSuperBinding ( ): *false*
1. Return *false*.
@@ -10543,7 +10543,7 @@ HasSuperBinding ( ): *false*
WithBaseObject ( ): *undefined*
1. Return *undefined*.
@@ -10604,17 +10604,17 @@
- 1. Let _bindingObject_ be _envRec_.[[BindingObject]].
- 1. Let _foundBinding_ be ? HasProperty(_bindingObject_, _name_).
+ 1. Let _bindingObj_ be _envRecord_.[[BindingObject]].
+ 1. Let _foundBinding_ be ? HasProperty(_bindingObj_, _name_).
1. If _foundBinding_ is *false*, return *false*.
- 1. If _envRec_.[[IsWithEnvironment]] is *false*, return *true*.
- 1. Let _unscopables_ be ? Get(_bindingObject_, %Symbol.unscopables%).
+ 1. If _envRecord_.[[IsWithEnvironment]] is *false*, return *true*.
+ 1. Let _unscopables_ be ? Get(_bindingObj_, %Symbol.unscopables%).
1. If _unscopables_ is an Object, then
1. Let _blocked_ be ToBoolean(? Get(_unscopables_, _name_)).
1. If _blocked_ is *true*, return *false*.
@@ -10631,18 +10631,18 @@
- 1. Let _bindingObject_ be _envRec_.[[BindingObject]].
- 1. Perform ? DefinePropertyOrThrow(_bindingObject_, _name_, PropertyDescriptor { [[Value]]: *undefined*, [[Writable]]: *true*, [[Enumerable]]: *true*, [[Configurable]]: _deletable_ }).
+ 1. Let _bindingObj_ be _envRecord_.[[BindingObject]].
+ 1. Perform ? DefinePropertyOrThrow(_bindingObj_, _name_, PropertyDescriptor { [[Value]]: *undefined*, [[Writable]]: *true*, [[Enumerable]]: *true*, [[Configurable]]: _deletable_ }).
1. Return ~unused~.
- Normally _envRec_ will not have a binding for _name_ but if it does, the semantics of DefinePropertyOrThrow may result in an existing binding being replaced or shadowed or cause an abrupt completion to be returned.
+ Normally _envRecord_ will not have a binding for _name_ but if it does, the semantics of DefinePropertyOrThrow may result in an existing binding being replaced or shadowed or cause an abrupt completion to be returned.
@@ -10660,13 +10660,13 @@
- 1. Perform ? _envRec_.SetMutableBinding(_name_, _value_, *false*).
+ 1. Perform ? _envRecord_.SetMutableBinding(_name_, _value_, *false*).
1. Return ~unused~.
@@ -10684,16 +10684,16 @@
- 1. Let _bindingObject_ be _envRec_.[[BindingObject]].
- 1. Let _stillExists_ be ? HasProperty(_bindingObject_, _name_).
+ 1. Let _bindingObj_ be _envRecord_.[[BindingObject]].
+ 1. Let _stillExists_ be ? HasProperty(_bindingObj_, _name_).
1. If _stillExists_ is *false* and _strict_ is *true*, throw a *ReferenceError* exception.
- 1. Perform ? Set(_bindingObject_, _name_, _value_, _strict_).
+ 1. Perform ? Set(_bindingObj_, _name_, _value_, _strict_).
1. Return ~unused~.
@@ -10707,18 +10707,18 @@
- 1. Let _bindingObject_ be _envRec_.[[BindingObject]].
- 1. Let _value_ be ? HasProperty(_bindingObject_, _name_).
+ 1. Let _bindingObj_ be _envRecord_.[[BindingObject]].
+ 1. Let _value_ be ? HasProperty(_bindingObj_, _name_).
1. If _value_ is *false*, then
1. If _strict_ is *false*, return *undefined*.
1. Throw a *ReferenceError* exception.
- 1. Return ? Get(_bindingObject_, _name_).
+ 1. Return ? Get(_bindingObj_, _name_).
@@ -10730,14 +10730,14 @@
- 1. Let _bindingObject_ be _envRec_.[[BindingObject]].
- 1. Return ? _bindingObject_.[[Delete]](_name_).
+ 1. Let _bindingObj_ be _envRecord_.[[BindingObject]].
+ 1. Return ? _bindingObj_.[[Delete]](_name_).
@@ -10745,7 +10745,7 @@
HasThisBinding ( ): *false*
1. Return *false*.
@@ -10764,7 +10764,7 @@ GetThisBinding ( )
HasSuperBinding ( ): *false*
1. Return *false*.
@@ -10778,10 +10778,10 @@ HasSuperBinding ( ): *false*
WithBaseObject ( ): an Object or *undefined*
- 1. If _envRec_.[[IsWithEnvironment]] is *true*, return _envRec_.[[BindingObject]].
+ 1. If _envRecord_.[[IsWithEnvironment]] is *true*, return _envRecord_.[[BindingObject]].
1. Return *undefined*.
@@ -10857,19 +10857,19 @@ Function Environment Records
BindThisValue (
- _envRec_: a Function Environment Record,
+ _envRecord_: a Function Environment Record,
_value_: an ECMAScript language value,
): either a normal completion containing ~unused~ or a throw completion
- 1. Assert: _envRec_.[[ThisBindingStatus]] is not ~lexical~.
- 1. If _envRec_.[[ThisBindingStatus]] is ~initialized~, throw a *ReferenceError* exception.
- 1. Set _envRec_.[[ThisValue]] to _value_.
- 1. Set _envRec_.[[ThisBindingStatus]] to ~initialized~.
+ 1. Assert: _envRecord_.[[ThisBindingStatus]] is not ~lexical~.
+ 1. If _envRecord_.[[ThisBindingStatus]] is ~initialized~, throw a *ReferenceError* exception.
+ 1. Set _envRecord_.[[ThisValue]] to _value_.
+ 1. Set _envRecord_.[[ThisBindingStatus]] to ~initialized~.
1. Return ~unused~.
@@ -10878,10 +10878,10 @@
HasThisBinding ( ): a Boolean
- 1. If _envRec_.[[ThisBindingStatus]] is ~lexical~, return *false*.
+ 1. If _envRecord_.[[ThisBindingStatus]] is ~lexical~, return *false*.
1. Return *true*.
@@ -10890,12 +10890,12 @@ HasThisBinding ( ): a Boolean
GetThisBinding ( ): either a normal completion containing an ECMAScript language value or a throw completion
- 1. Assert: _envRec_.[[ThisBindingStatus]] is not ~lexical~.
- 1. If _envRec_.[[ThisBindingStatus]] is ~uninitialized~, throw a *ReferenceError* exception.
- 1. Return _envRec_.[[ThisValue]].
+ 1. Assert: _envRecord_.[[ThisBindingStatus]] is not ~lexical~.
+ 1. If _envRecord_.[[ThisBindingStatus]] is ~uninitialized~, throw a *ReferenceError* exception.
+ 1. Return _envRecord_.[[ThisValue]].
@@ -10903,11 +10903,11 @@ GetThisBinding ( ): either a normal completion containing an ECMAScript lang
HasSuperBinding ( ): a Boolean
- 1. If _envRec_.[[ThisBindingStatus]] is ~lexical~, return *false*.
- 1. If _envRec_.[[FunctionObject]].[[HomeObject]] is *undefined*, return *false*.
+ 1. If _envRecord_.[[ThisBindingStatus]] is ~lexical~, return *false*.
+ 1. If _envRecord_.[[FunctionObject]].[[HomeObject]] is *undefined*, return *false*.
1. Return *true*.
@@ -10915,15 +10915,15 @@ HasSuperBinding ( ): a Boolean
GetSuperBase (
- _envRec_: a Function Environment Record,
+ _envRecord_: a Function Environment Record,
): an Object, *null*, or *undefined*
- 1. Let _home_ be _envRec_.[[FunctionObject]].[[HomeObject]].
+ 1. Let _home_ be _envRecord_.[[FunctionObject]].[[HomeObject]].
1. If _home_ is *undefined*, return *undefined*.
1. Assert: _home_ is an ordinary object.
1. Return ! _home_.[[GetPrototypeOf]]().
@@ -10996,16 +10996,16 @@
- 1. Let _declarativeRecord_ be _envRec_.[[DeclarativeRecord]].
+ 1. Let _declarativeRecord_ be _envRecord_.[[DeclarativeRecord]].
1. If ! _declarativeRecord_.HasBinding(_name_) is *true*, return *true*.
- 1. Let _objectRecord_ be _envRec_.[[ObjectRecord]].
- 1. Return ? _objectRecord_.HasBinding(_name_).
+ 1. Let _objRecord_ be _envRecord_.[[ObjectRecord]].
+ 1. Return ? _objRecord_.HasBinding(_name_).
@@ -11018,13 +11018,13 @@
- 1. Let _declarativeRecord_ be _envRec_.[[DeclarativeRecord]].
+ 1. Let _declarativeRecord_ be _envRecord_.[[DeclarativeRecord]].
1. If ! _declarativeRecord_.HasBinding(_name_) is *true*, throw a *TypeError* exception.
1. Return ! _declarativeRecord_.CreateMutableBinding(_name_, _deletable_).
@@ -11039,13 +11039,13 @@
- 1. Let _declarativeRecord_ be _envRec_.[[DeclarativeRecord]].
+ 1. Let _declarativeRecord_ be _envRecord_.[[DeclarativeRecord]].
1. If ! _declarativeRecord_.HasBinding(_name_) is *true*, throw a *TypeError* exception.
1. Return ! _declarativeRecord_.CreateImmutableBinding(_name_, _strict_).
@@ -11060,18 +11060,18 @@
- 1. Let _declarativeRecord_ be _envRec_.[[DeclarativeRecord]].
+ 1. Let _declarativeRecord_ be _envRecord_.[[DeclarativeRecord]].
1. If ! _declarativeRecord_.HasBinding(_name_) is *true*, then
1. Return ! _declarativeRecord_.InitializeBinding(_name_, _value_).
1. Assert: If the binding exists, it must be in the Object Environment Record.
- 1. Let _objectRecord_ be _envRec_.[[ObjectRecord]].
- 1. Return ? _objectRecord_.InitializeBinding(_name_, _value_).
+ 1. Let _objRecord_ be _envRecord_.[[ObjectRecord]].
+ 1. Return ? _objRecord_.InitializeBinding(_name_, _value_).
@@ -11085,17 +11085,17 @@
- 1. Let _declarativeRecord_ be _envRec_.[[DeclarativeRecord]].
+ 1. Let _declarativeRecord_ be _envRecord_.[[DeclarativeRecord]].
1. If ! _declarativeRecord_.HasBinding(_name_) is *true*, then
1. Return ? _declarativeRecord_.SetMutableBinding(_name_, _value_, _strict_).
- 1. Let _objectRecord_ be _envRec_.[[ObjectRecord]].
- 1. Return ? _objectRecord_.SetMutableBinding(_name_, _value_, _strict_).
+ 1. Let _objRecord_ be _envRecord_.[[ObjectRecord]].
+ 1. Return ? _objRecord_.SetMutableBinding(_name_, _value_, _strict_).
@@ -11108,17 +11108,17 @@
- 1. Let _declarativeRecord_ be _envRec_.[[DeclarativeRecord]].
+ 1. Let _declarativeRecord_ be _envRecord_.[[DeclarativeRecord]].
1. If ! _declarativeRecord_.HasBinding(_name_) is *true*, then
1. Return ? _declarativeRecord_.GetBindingValue(_name_, _strict_).
- 1. Let _objectRecord_ be _envRec_.[[ObjectRecord]].
- 1. Return ? _objectRecord_.GetBindingValue(_name_, _strict_).
+ 1. Let _objRecord_ be _envRecord_.[[ObjectRecord]].
+ 1. Return ? _objRecord_.GetBindingValue(_name_, _strict_).
@@ -11130,20 +11130,20 @@
- 1. Let _declarativeRecord_ be _envRec_.[[DeclarativeRecord]].
+ 1. Let _declarativeRecord_ be _envRecord_.[[DeclarativeRecord]].
1. If ! _declarativeRecord_.HasBinding(_name_) is *true*, then
1. Return ! _declarativeRecord_.DeleteBinding(_name_).
- 1. Let _objectRecord_ be _envRec_.[[ObjectRecord]].
- 1. Let _globalObject_ be _objectRecord_.[[BindingObject]].
- 1. Let _existingProp_ be ? HasOwnProperty(_globalObject_, _name_).
- 1. If _existingProp_ is *true*, then
- 1. Return ? _objectRecord_.DeleteBinding(_name_).
+ 1. Let _objRecord_ be _envRecord_.[[ObjectRecord]].
+ 1. Let _globalObj_ be _objRecord_.[[BindingObject]].
+ 1. Let _existingProperty_ be ? HasOwnProperty(_globalObj_, _name_).
+ 1. If _existingProperty_ is *true*, then
+ 1. Return ? _objRecord_.DeleteBinding(_name_).
1. Return *true*.
@@ -11152,7 +11152,7 @@
HasThisBinding ( ): *true*
1. Return *true*.
@@ -11166,10 +11166,10 @@ HasThisBinding ( ): *true*
GetThisBinding ( ): a normal completion containing an Object
- 1. Return _envRec_.[[GlobalThisValue]].
+ 1. Return _envRecord_.[[GlobalThisValue]].
@@ -11177,7 +11177,7 @@ GetThisBinding ( ): a normal completion containing an Object
HasSuperBinding ( ): *false*
1. Return *false*.
@@ -11191,7 +11191,7 @@ HasSuperBinding ( ): *false*
WithBaseObject ( ): *undefined*
1. Return *undefined*.
@@ -11201,16 +11201,16 @@ WithBaseObject ( ): *undefined*
HasLexicalDeclaration (
- _envRec_: a Global Environment Record,
+ _envRecord_: a Global Environment Record,
_name_: a String,
): a Boolean
- 1. Let _declarativeRecord_ be _envRec_.[[DeclarativeRecord]].
+ 1. Let _declarativeRecord_ be _envRecord_.[[DeclarativeRecord]].
1. Return ! _declarativeRecord_.HasBinding(_name_).
@@ -11218,7 +11218,7 @@
HasRestrictedGlobalProperty (
- _envRec_: a Global Environment Record,
+ _envRecord_: a Global Environment Record,
_name_: a String,
): either a normal completion containing a Boolean or a throw completion
@@ -11227,11 +11227,11 @@
It determines if the argument identifier is the name of a property of the global object that must not be shadowed by a global lexical binding.
- 1. Let _objectRecord_ be _envRec_.[[ObjectRecord]].
- 1. Let _globalObject_ be _objectRecord_.[[BindingObject]].
- 1. Let _existingProp_ be ? _globalObject_.[[GetOwnProperty]](_name_).
- 1. If _existingProp_ is *undefined*, return *false*.
- 1. If _existingProp_.[[Configurable]] is *true*, return *false*.
+ 1. Let _objRecord_ be _envRecord_.[[ObjectRecord]].
+ 1. Let _globalObj_ be _objRecord_.[[BindingObject]].
+ 1. Let _existingProperty_ be ? _globalObj_.[[GetOwnProperty]](_name_).
+ 1. If _existingProperty_ is *undefined*, return *false*.
+ 1. If _existingProperty_.[[Configurable]] is *true*, return *false*.
1. Return *true*.
@@ -11242,7 +11242,7 @@
CanDeclareGlobalVar (
- _envRec_: a Global Environment Record,
+ _envRecord_: a Global Environment Record,
_name_: a String,
): either a normal completion containing a Boolean or a throw completion
@@ -11251,18 +11251,18 @@
It determines if a corresponding CreateGlobalVarBinding call would succeed if called for the same argument _name_. Redundant var declarations and var declarations for pre-existing global object properties are allowed.
- 1. Let _objectRecord_ be _envRec_.[[ObjectRecord]].
- 1. Let _globalObject_ be _objectRecord_.[[BindingObject]].
- 1. Let _hasProperty_ be ? HasOwnProperty(_globalObject_, _name_).
+ 1. Let _objRecord_ be _envRecord_.[[ObjectRecord]].
+ 1. Let _globalObj_ be _objRecord_.[[BindingObject]].
+ 1. Let _hasProperty_ be ? HasOwnProperty(_globalObj_, _name_).
1. If _hasProperty_ is *true*, return *true*.
- 1. Return ? IsExtensible(_globalObject_).
+ 1. Return ? IsExtensible(_globalObj_).
CanDeclareGlobalFunction (
- _envRec_: a Global Environment Record,
+ _envRecord_: a Global Environment Record,
_name_: a String,
): either a normal completion containing a Boolean or a throw completion
@@ -11271,12 +11271,12 @@
It determines if a corresponding CreateGlobalFunctionBinding call would succeed if called for the same argument _name_.
- 1. Let _objectRecord_ be _envRec_.[[ObjectRecord]].
- 1. Let _globalObject_ be _objectRecord_.[[BindingObject]].
- 1. Let _existingProp_ be ? _globalObject_.[[GetOwnProperty]](_name_).
- 1. If _existingProp_ is *undefined*, return ? IsExtensible(_globalObject_).
- 1. If _existingProp_.[[Configurable]] is *true*, return *true*.
- 1. If IsDataDescriptor(_existingProp_) is *true* and _existingProp_ has attribute values { [[Writable]]: *true*, [[Enumerable]]: *true* }, return *true*.
+ 1. Let _objRecord_ be _envRecord_.[[ObjectRecord]].
+ 1. Let _globalObj_ be _objRecord_.[[BindingObject]].
+ 1. Let _existingProperty_ be ? _globalObj_.[[GetOwnProperty]](_name_).
+ 1. If _existingProperty_ is *undefined*, return ? IsExtensible(_globalObj_).
+ 1. If _existingProperty_.[[Configurable]] is *true*, return *true*.
+ 1. If IsDataDescriptor(_existingProperty_) is *true* and _existingProperty_ has attribute values { [[Writable]]: *true*, [[Enumerable]]: *true* }, return *true*.
1. Return *false*.
@@ -11284,7 +11284,7 @@
CreateGlobalVarBinding (
- _envRec_: a Global Environment Record,
+ _envRecord_: a Global Environment Record,
_name_: a String,
_deletable_: a Boolean,
): either a normal completion containing ~unused~ or a throw completion
@@ -11294,13 +11294,13 @@
It creates and initializes a mutable binding in the associated Object Environment Record. If a binding already exists, it is reused and assumed to be initialized.
- 1. Let _objectRecord_ be _envRec_.[[ObjectRecord]].
- 1. Let _globalObject_ be _objectRecord_.[[BindingObject]].
- 1. Let _hasProperty_ be ? HasOwnProperty(_globalObject_, _name_).
- 1. Let _extensible_ be ? IsExtensible(_globalObject_).
+ 1. Let _objRecord_ be _envRecord_.[[ObjectRecord]].
+ 1. Let _globalObj_ be _objRecord_.[[BindingObject]].
+ 1. Let _hasProperty_ be ? HasOwnProperty(_globalObj_, _name_).
+ 1. Let _extensible_ be ? IsExtensible(_globalObj_).
1. If _hasProperty_ is *false* and _extensible_ is *true*, then
- 1. Perform ? _objectRecord_.CreateMutableBinding(_name_, _deletable_).
- 1. Perform ? _objectRecord_.InitializeBinding(_name_, *undefined*).
+ 1. Perform ? _objRecord_.CreateMutableBinding(_name_, _deletable_).
+ 1. Perform ? _objRecord_.InitializeBinding(_name_, *undefined*).
1. Return ~unused~.
@@ -11308,7 +11308,7 @@
CreateGlobalFunctionBinding (
- _envRec_: a Global Environment Record,
+ _envRecord_: a Global Environment Record,
_name_: a String,
_value_: an ECMAScript language value,
_deletable_: a Boolean,
@@ -11319,19 +11319,19 @@
It creates and initializes a mutable binding in the associated Object Environment Record. If a binding already exists, it is replaced.
- 1. Let _objectRecord_ be _envRec_.[[ObjectRecord]].
- 1. Let _globalObject_ be _objectRecord_.[[BindingObject]].
- 1. Let _existingProp_ be ? _globalObject_.[[GetOwnProperty]](_name_).
- 1. If _existingProp_ is *undefined* or _existingProp_.[[Configurable]] is *true*, then
- 1. Let _desc_ be the PropertyDescriptor { [[Value]]: _value_, [[Writable]]: *true*, [[Enumerable]]: *true*, [[Configurable]]: _deletable_ }.
+ 1. Let _objRecord_ be _envRecord_.[[ObjectRecord]].
+ 1. Let _globalObj_ be _objRecord_.[[BindingObject]].
+ 1. Let _existingProperty_ be ? _globalObj_.[[GetOwnProperty]](_name_).
+ 1. If _existingProperty_ is *undefined* or _existingProperty_.[[Configurable]] is *true*, then
+ 1. Let _propertyDesc_ be the PropertyDescriptor { [[Value]]: _value_, [[Writable]]: *true*, [[Enumerable]]: *true*, [[Configurable]]: _deletable_ }.
1. Else,
- 1. Let _desc_ be the PropertyDescriptor { [[Value]]: _value_ }.
- 1. Perform ? DefinePropertyOrThrow(_globalObject_, _name_, _desc_).
- 1. [id="step-createglobalfunctionbinding-set"] Perform ? Set(_globalObject_, _name_, _value_, *false*).
+ 1. Let _propertyDesc_ be the PropertyDescriptor { [[Value]]: _value_ }.
+ 1. Perform ? DefinePropertyOrThrow(_globalObj_, _name_, _propertyDesc_).
+ 1. [id="step-createglobalfunctionbinding-set"] Perform ? Set(_globalObj_, _name_, _value_, *false*).
1. Return ~unused~.
- Global function declarations are always represented as own properties of the global object. If possible, an existing own property is reconfigured to have a standard set of attribute values. Step is equivalent to what calling the InitializeBinding concrete method would do and if _globalObject_ is a Proxy will produce the same sequence of Proxy trap calls.
+ Global function declarations are always represented as own properties of the global object. If possible, an existing own property is reconfigured to have a standard set of attribute values. Step is equivalent to what calling the InitializeBinding concrete method would do and if _globalObj_ is a Proxy will produce the same sequence of Proxy trap calls.
@@ -11350,21 +11350,21 @@
1. Assert: _strict_ is *true*.
- 1. Assert: _envRec_ has a binding for _name_.
+ 1. Assert: _envRecord_ has a binding for _name_.
1. If the binding for _name_ is an indirect binding, then
1. Let _module_ and _targetName_ be the indirection values provided when this binding for _name_ was created.
1. Let _targetEnv_ be _module_.[[Environment]].
1. If _targetEnv_ is ~empty~, throw a *ReferenceError* exception.
1. Return ? _targetEnv_.GetBindingValue(_targetName_, *true*).
- 1. If the binding for _name_ in _envRec_ is an uninitialized binding, throw a *ReferenceError* exception.
- 1. Return the value currently bound to _name_ in _envRec_.
+ 1. If the binding for _name_ in _envRecord_ is an uninitialized binding, throw a *ReferenceError* exception.
+ 1. Return the value currently bound to _name_ in _envRecord_.
_strict_ will always be *true* because a |Module| is always strict mode code.
@@ -11383,7 +11383,7 @@ DeleteBinding ( _name_ )
HasThisBinding ( ): *true*
1. Return *true*.
@@ -11397,7 +11397,7 @@ HasThisBinding ( ): *true*
GetThisBinding ( ): a normal completion containing *undefined*
1. Return *undefined*.
@@ -11407,7 +11407,7 @@ GetThisBinding ( ): a normal completion containing *undefined*
CreateImportBinding (
- _envRec_: a Module Environment Record,
+ _envRecord_: a Module Environment Record,
_name_: a String,
_targetModule_: a Module Record,
_targetName_: a String,
@@ -11415,12 +11415,12 @@
- 1. Assert: _envRec_ does not already have a binding for _name_.
+ 1. Assert: _envRecord_ does not already have a binding for _name_.
1. Assert: When _targetModule_.[[Environment]] is instantiated, it will have a direct binding for _targetName_.
- 1. Create an immutable indirect binding in _envRec_ for _name_ that references _targetModule_ and _targetName_ as its target binding and record that the binding is initialized.
+ 1. Create an immutable indirect binding in _envRecord_ for _name_ that references _targetModule_ and _targetName_ as its target binding and record that the binding is initialized.
1. Return ~unused~.
@@ -11434,7 +11434,7 @@ Environment Record Operations
GetIdentifierReference (
- _env_: an Environment Record or *null*,
+ _envRecord_: an Environment Record or *null*,
_name_: a String,
_strict_: a Boolean,
): either a normal completion containing a Reference Record or a throw completion
@@ -11442,12 +11442,12 @@
- 1. If _env_ is *null*, then
+ 1. If _envRecord_ is *null*, then
1. Return the Reference Record { [[Base]]: ~unresolvable~, [[ReferencedName]]: _name_, [[Strict]]: _strict_, [[ThisValue]]: ~empty~ }.
- 1. Let _exists_ be ? _env_.HasBinding(_name_).
+ 1. Let _exists_ be ? _envRecord_.HasBinding(_name_).
1. If _exists_ is *true*, then
- 1. Return the Reference Record { [[Base]]: _env_, [[ReferencedName]]: _name_, [[Strict]]: _strict_, [[ThisValue]]: ~empty~ }.
- 1. Let _outer_ be _env_.[[OuterEnv]].
+ 1. Return the Reference Record { [[Base]]: _envRecord_, [[ReferencedName]]: _name_, [[Strict]]: _strict_, [[ThisValue]]: ~empty~ }.
+ 1. Let _outer_ be _envRecord_.[[OuterEnv]].
1. Return ? GetIdentifierReference(_outer_, _name_, _strict_).
@@ -11461,9 +11461,9 @@
- 1. Let _env_ be a new Declarative Environment Record containing no bindings.
- 1. Set _env_.[[OuterEnv]] to _outerEnv_.
- 1. Return _env_.
+ 1. Let _envRecord_ be a new Declarative Environment Record containing no bindings.
+ 1. Set _envRecord_.[[OuterEnv]] to _outerEnv_.
+ 1. Return _envRecord_.
@@ -11471,18 +11471,18 @@
NewObjectEnvironment (
_obj_: an Object,
- _isWithEnvironment_: a Boolean,
+ _isWithEnv_: a Boolean,
_outerEnv_: an Environment Record or *null*,
): an Object Environment Record
- 1. Let _env_ be a new Object Environment Record.
- 1. Set _env_.[[BindingObject]] to _obj_.
- 1. Set _env_.[[IsWithEnvironment]] to _isWithEnvironment_.
- 1. Set _env_.[[OuterEnv]] to _outerEnv_.
- 1. Return _env_.
+ 1. Let _envRecord_ be a new Object Environment Record.
+ 1. Set _envRecord_.[[BindingObject]] to _obj_.
+ 1. Set _envRecord_.[[IsWithEnvironment]] to _isWithEnv_.
+ 1. Set _envRecord_.[[OuterEnv]] to _outerEnv_.
+ 1. Return _envRecord_.
@@ -11496,13 +11496,13 @@
- 1. Let _env_ be a new Function Environment Record containing no bindings.
- 1. Set _env_.[[FunctionObject]] to _func_.
- 1. If _func_.[[ThisMode]] is ~lexical~, set _env_.[[ThisBindingStatus]] to ~lexical~.
- 1. Else, set _env_.[[ThisBindingStatus]] to ~uninitialized~.
- 1. Set _env_.[[NewTarget]] to _newTarget_.
- 1. Set _env_.[[OuterEnv]] to _func_.[[Environment]].
- 1. Return _env_.
+ 1. Let _envRecord_ be a new Function Environment Record containing no bindings.
+ 1. Set _envRecord_.[[FunctionObject]] to _func_.
+ 1. If _func_.[[ThisMode]] is ~lexical~, set _envRecord_.[[ThisBindingStatus]] to ~lexical~.
+ 1. Else, set _envRecord_.[[ThisBindingStatus]] to ~uninitialized~.
+ 1. Set _envRecord_.[[NewTarget]] to _newTarget_.
+ 1. Set _envRecord_.[[OuterEnv]] to _func_.[[Environment]].
+ 1. Return _envRecord_.
@@ -11516,14 +11516,14 @@
- 1. Let _objRec_ be NewObjectEnvironment(_obj_, *false*, *null*).
- 1. Let _dclRec_ be NewDeclarativeEnvironment(*null*).
- 1. Let _env_ be a new Global Environment Record.
- 1. Set _env_.[[ObjectRecord]] to _objRec_.
- 1. Set _env_.[[GlobalThisValue]] to _thisValue_.
- 1. Set _env_.[[DeclarativeRecord]] to _dclRec_.
- 1. Set _env_.[[OuterEnv]] to *null*.
- 1. Return _env_.
+ 1. Let _objRecord_ be NewObjectEnvironment(_obj_, *false*, *null*).
+ 1. Let _declarativeRecord_ be NewDeclarativeEnvironment(*null*).
+ 1. Let _envRecord_ be a new Global Environment Record.
+ 1. Set _envRecord_.[[ObjectRecord]] to _objRecord_.
+ 1. Set _envRecord_.[[GlobalThisValue]] to _thisValue_.
+ 1. Set _envRecord_.[[DeclarativeRecord]] to _declarativeRecord_.
+ 1. Set _envRecord_.[[OuterEnv]] to *null*.
+ 1. Return _envRecord_.
@@ -11536,9 +11536,9 @@
- 1. Let _env_ be a new Module Environment Record containing no bindings.
- 1. Set _env_.[[OuterEnv]] to _outerEnv_.
- 1. Return _env_.
+ 1. Let _envRecord_ be a new Module Environment Record containing no bindings.
+ 1. Set _envRecord_.[[OuterEnv]] to _outerEnv_.
+ 1. Return _envRecord_.
@@ -11617,9 +11617,9 @@
1. Let _names_ be _privateEnv_.[[Names]].
- 1. For each Private Name _pn_ of _names_, do
- 1. If _pn_.[[Description]] is _identifier_, then
- 1. Return _pn_.
+ 1. For each Private Name _privateName_ of _names_, do
+ 1. If _privateName_.[[Description]] is _identifier_, then
+ 1. Return _privateName_.
1. Let _outerPrivateEnv_ be _privateEnv_.[[OuterPrivateEnvironment]].
1. Assert: _outerPrivateEnv_ is not *null*.
1. Return ResolvePrivateIdentifier(_outerPrivateEnv_, _identifier_).
@@ -11764,15 +11764,15 @@ InitializeHostDefinedRealm ( ): either a normal completion containing ~unuse
CreateIntrinsics (
- _realmRec_: a Realm Record,
+ _realmRecord_: a Realm Record,
): ~unused~
- 1. Set _realmRec_.[[Intrinsics]] to a new Record.
- 1. [declared="steps,name,length,slots,prototype,async"] Set fields of _realmRec_.[[Intrinsics]] with the values listed in . The field names are the names listed in the “Intrinsic Name” column of the table. The value of each field is a new object value fully and recursively populated with property values as defined by the specification of each object in clauses through . All object property values are newly created object values. All values that are built-in function objects are created by performing CreateBuiltinFunction(_steps_, _length_, _name_, _slots_, _realmRec_, _prototype_, _async_) where _steps_ is the definition of that function provided by this specification, _name_ is the initial value of the function's *"name"* property, _length_ is the initial value of the function's *"length"* property, _slots_ is a list of the names, if any, of the function's specified internal slots, _prototype_ is the specified value of the function's [[Prototype]] internal slot, and _async_ is *true* if the function is described as “async” and *false* otherwise. The creation of the intrinsics and their properties must be ordered to avoid any dependencies upon objects that have not yet been created.
- 1. Perform AddRestrictedFunctionProperties(_realmRec_.[[Intrinsics]].[[%Function.prototype%]], _realmRec_).
+ 1. Set _realmRecord_.[[Intrinsics]] to a new Record.
+ 1. [declared="steps,name,length,slots,proto,async"] Set fields of _realmRecord_.[[Intrinsics]] with the values listed in . The field names are the names listed in the “Intrinsic Name” column of the table. The value of each field is a new object value fully and recursively populated with property values as defined by the specification of each object in clauses through . All object property values are newly created object values. All values that are built-in function objects are created by performing CreateBuiltinFunction(_steps_, _length_, _name_, _slots_, _realmRecord_, _proto_, _async_) where _steps_ is the definition of that function provided by this specification, _name_ is the initial value of the function's *"name"* property, _length_ is the initial value of the function's *"length"* property, _slots_ is a list of the names, if any, of the function's specified internal slots, _proto_ is the specified value of the function's [[Prototype]] internal slot, and _async_ is *true* if the function is described as “async” and *false* otherwise. The creation of the intrinsics and their properties must be ordered to avoid any dependencies upon objects that have not yet been created.
+ 1. Perform AddRestrictedFunctionProperties(_realmRecord_.[[Intrinsics]].[[%Function.prototype%]], _realmRecord_).
1. Return ~unused~.
@@ -11780,17 +11780,17 @@
SetDefaultGlobalBindings (
- _realmRec_: a Realm Record,
+ _realmRecord_: a Realm Record,
): either a normal completion containing ~unused~ or a throw completion
- 1. Let _global_ be _realmRec_.[[GlobalObject]].
+ 1. Let _global_ be _realmRecord_.[[GlobalObject]].
1. For each property of the Global Object specified in clause , do
1. Let _name_ be the String value of the property name.
- 1. Let _desc_ be the fully populated data Property Descriptor for the property, containing the specified attributes for the property. For properties listed in , , or the value of the [[Value]] attribute is the corresponding intrinsic object from _realmRec_.
- 1. Perform ? DefinePropertyOrThrow(_global_, _name_, _desc_).
+ 1. Let _propertyDesc_ be the fully populated data Property Descriptor for the property, containing the specified attributes for the property. For properties listed in , , or the value of the [[Value]] attribute is the corresponding intrinsic object from _realmRecord_.
+ 1. Perform ? DefinePropertyOrThrow(_global_, _name_, _propertyDesc_).
1. Return ~unused~.
@@ -11924,9 +11924,9 @@ GetActiveScriptOrModule ( ): a Script Record, a Module Record, or *null*
1. If the execution context stack is empty, return *null*.
- 1. Let _ec_ be the topmost execution context on the execution context stack whose ScriptOrModule component is not *null*.
+ 1. Let _executionContext_ be the topmost execution context on the execution context stack whose ScriptOrModule component is not *null*.
1. If no such execution context exists, return *null*.
- 1. Return _ec_'s ScriptOrModule.
+ 1. Return _executionContext_'s ScriptOrModule.
@@ -11934,19 +11934,19 @@ GetActiveScriptOrModule ( ): a Script Record, a Module Record, or *null*
ResolveBinding (
_name_: a String,
- optional _env_: an Environment Record or *undefined*,
+ optional _envRecord_: an Environment Record or *undefined*,
): either a normal completion containing a Reference Record or a throw completion
- 1. If _env_ is not present or _env_ is *undefined*, then
- 1. Set _env_ to the running execution context's LexicalEnvironment.
- 1. Assert: _env_ is an Environment Record.
+ 1. If _envRecord_ is not present or _envRecord_ is *undefined*, then
+ 1. Set _envRecord_ to the running execution context's LexicalEnvironment.
+ 1. Assert: _envRecord_ is an Environment Record.
1. Let _strict_ be IsStrict(the syntactic production that is being evaluated).
- 1. Return ? GetIdentifierReference(_env_, _name_, _strict_).
+ 1. Return ? GetIdentifierReference(_envRecord_, _name_, _strict_).
The result of ResolveBinding is always a Reference Record whose [[ReferencedName]] field is _name_.
@@ -11960,13 +11960,13 @@ GetThisEnvironment ( ): an Environment Record
It finds the Environment Record that currently supplies the binding of the keyword `this`.
- 1. Let _env_ be the running execution context's LexicalEnvironment.
+ 1. Let _envRecord_ be the running execution context's LexicalEnvironment.
1. [id="step-getthisenvironment-loop"] Repeat,
- 1. Let _exists_ be _env_.HasThisBinding().
- 1. If _exists_ is *true*, return _env_.
- 1. Let _outer_ be _env_.[[OuterEnv]].
+ 1. Let _exists_ be _envRecord_.HasThisBinding().
+ 1. If _exists_ is *true*, return _envRecord_.
+ 1. Let _outer_ be _envRecord_.[[OuterEnv]].
1. Assert: _outer_ is not *null*.
- 1. Set _env_ to _outer_.
+ 1. Set _envRecord_ to _outer_.
The loop in step will always terminate because the list of environments always ends with the global environment which has a `this` binding.
@@ -11980,8 +11980,8 @@ ResolveThisBinding ( ): either a normal completion containing an ECMAScript
It determines the binding of the keyword `this` using the LexicalEnvironment of the running execution context.
- 1. Let _envRec_ be GetThisEnvironment().
- 1. Return ? _envRec_.GetThisBinding().
+ 1. Let _envRecord_ be GetThisEnvironment().
+ 1. Return ? _envRecord_.GetThisBinding().
@@ -11992,9 +11992,9 @@ GetNewTarget ( ): an Object or *undefined*
It determines the NewTarget value using the LexicalEnvironment of the running execution context.
- 1. Let _envRec_ be GetThisEnvironment().
- 1. Assert: _envRec_ has a [[NewTarget]] field.
- 1. Return _envRec_.[[NewTarget]].
+ 1. Let _envRecord_ be GetThisEnvironment().
+ 1. Assert: _envRecord_ has a [[NewTarget]] field.
+ 1. Return _envRecord_.[[NewTarget]].
@@ -12036,7 +12036,7 @@ Jobs and Host Operations to Enqueue Jobs
At any particular time, _scriptOrModule_ (a Script Record, a Module Record, or *null*) is the active script or module if all of the following conditions are true:
- GetActiveScriptOrModule() is _scriptOrModule_.
- - If _scriptOrModule_ is a Script Record or Module Record, let _ec_ be the topmost execution context on the execution context stack whose ScriptOrModule component is _scriptOrModule_. The Realm component of _ec_ is _scriptOrModule_.[[Realm]].
+ - If _scriptOrModule_ is a Script Record or Module Record, let _executionContext_ be the topmost execution context on the execution context stack whose ScriptOrModule component is _scriptOrModule_. The Realm component of _executionContext_ is _scriptOrModule_.[[Realm]].
At any particular time, an execution is prepared to evaluate ECMAScript code if all of the following conditions are true:
@@ -12127,14 +12127,14 @@
HostCallJobCallback (
_jobCallback_: a JobCallback Record,
_value_: an ECMAScript language value,
- _argumentsList_: a List of ECMAScript language values,
+ _argList_: a List of ECMAScript language values,
): either a normal completion containing an ECMAScript language value or a throw completion
An implementation of HostCallJobCallback must conform to the following requirements:
- - It must perform and return the result of Call(_jobCallback_.[[Callback]], _value_, _argumentsList_).
+ - It must perform and return the result of Call(_jobCallback_.[[Callback]], _value_, _argList_).
This requirement means that hosts cannot change the [[Call]] behaviour of function objects defined in this specification.
@@ -12142,7 +12142,7 @@
The default implementation of HostCallJobCallback performs the following steps when called:
1. Assert: IsCallable(_jobCallback_.[[Callback]]) is *true*.
- 1. Return ? Call(_jobCallback_.[[Callback]], _value_, _argumentsList_).
+ 1. Return ? Call(_jobCallback_.[[Callback]], _value_, _argList_).
ECMAScript hosts that are not web browsers must use the default implementation of HostCallJobCallback.
@@ -12427,7 +12427,7 @@ Objectives
Liveness
- For some set of objects and/or symbols _objectSet_ a hypothetical WeakRef-oblivious execution with respect to _objectSet_ is an execution whereby the abstract operation WeakRefDeref of a WeakRef whose referent is an element of _objectSet_ always returns *undefined*.
+ For some set of objects and/or symbols _objSet_ a hypothetical WeakRef-oblivious execution with respect to _objSet_ is an execution whereby the abstract operation WeakRefDeref of a WeakRef whose referent is an element of _objSet_ always returns *undefined*.
WeakRef-obliviousness, together with liveness, capture two notions. One, that a WeakRef itself does not keep its referent alive. Two, that cycles in liveness does not imply that a value is live. To be concrete, if determining _v_'s liveness depends on determining the liveness of a WeakRef referent, _r_, _r_'s liveness cannot assume _v_'s liveness, which would be circular reasoning.
@@ -12439,14 +12439,14 @@ Liveness
Colloquially, we say that an individual object or symbol is live if every set containing it is live.
- At any point during evaluation, a set of objects and/or symbols _objectSet_ is considered live if either of the following conditions is met:
+ At any point during evaluation, a set of objects and/or symbols _objSet_ is considered live if either of the following conditions is met:
-
- Any element in _objectSet_ is included in any agent's [[KeptAlive]] List.
+ Any element in _objSet_ is included in any agent's [[KeptAlive]] List.
-
- There exists a valid future hypothetical WeakRef-oblivious execution with respect to _objectSet_ that observes the identity of any value in _objectSet_.
+ There exists a valid future hypothetical WeakRef-oblivious execution with respect to _objSet_ that observes the identity of any value in _objSet_.
@@ -12467,18 +12467,18 @@ Liveness
Execution
- At any time, if a set of objects and/or symbols _objectSet_ is not live, an ECMAScript implementation may perform the following steps atomically:
+ At any time, if a set of objects and/or symbols _objSet_ is not live, an ECMAScript implementation may perform the following steps atomically:
- 1. For each element _value_ of _objectSet_, do
+ 1. For each element _value_ of _objSet_, do
1. For each WeakRef _ref_ such that _ref_.[[WeakRefTarget]] is _value_, do
1. Set _ref_.[[WeakRefTarget]] to ~empty~.
1. For each FinalizationRegistry _fg_ such that _fg_.[[Cells]] contains a Record _cell_ such that _cell_.[[WeakRefTarget]] is _value_, do
1. Set _cell_.[[WeakRefTarget]] to ~empty~.
1. Optionally, perform HostEnqueueFinalizationRegistryCleanupJob(_fg_).
- 1. For each WeakMap _map_ such that _map_.[[WeakMapData]] contains a Record _r_ such that _r_.[[Key]] is _value_, do
- 1. Set _r_.[[Key]] to ~empty~.
- 1. Set _r_.[[Value]] to ~empty~.
+ 1. For each WeakMap _map_ such that _map_.[[WeakMapData]] contains a Record _entry_ such that _entry_.[[Key]] is _value_, do
+ 1. Set _entry_.[[Key]] to ~empty~.
+ 1. Set _entry_.[[Value]] to ~empty~.
1. For each WeakSet _set_ such that _set_.[[WeakSetData]] contains _value_, do
1. Replace the element of _set_.[[WeakSetData]] whose value is _value_ with an element whose value is ~empty~.
@@ -12494,7 +12494,7 @@ Execution
Implementations are not obligated to empty WeakRefs for maximal sets of non-live objects or symbols.
- If an implementation chooses a non-live set _objectSet_ in which to empty WeakRefs, this definition requires that it empties WeakRefs for all values in _objectSet_ simultaneously. In other words, it is not conformant for an implementation to empty a WeakRef pointing to a value _v_ without emptying out other WeakRefs that, if not emptied, could result in an execution that observes the value of _v_.
+ If an implementation chooses a non-live set _objSet_ in which to empty WeakRefs, this definition requires that it empties WeakRefs for all values in _objSet_ simultaneously. In other words, it is not conformant for an implementation to empty a WeakRef pointing to a value _v_ without emptying out other WeakRefs that, if not emptied, could result in an execution that observes the value of _v_.
@@ -12573,16 +12573,16 @@
CanBeHeldWeakly (
- _v_: an ECMAScript language value,
+ _arg_: an ECMAScript language value,
): a Boolean
- 1. If _v_ is an Object, return *true*.
- 1. If _v_ is a Symbol and KeyForSymbol(_v_) is *undefined*, return *true*.
+ 1. If _arg_ is an Object, return *true*.
+ 1. If _arg_ is a Symbol and KeyForSymbol(_arg_) is *undefined*, return *true*.
1. Return *false*.
@@ -12598,7 +12598,7 @@ Ordinary and Exotic Objects Behaviours
Ordinary Object Internal Methods and Internal Slots
All ordinary objects have an internal slot called [[Prototype]]. The value of this internal slot is either *null* or an object and is used for implementing inheritance. Assume a property named _propertyKey_ is missing from an ordinary object _obj_ but exists on its [[Prototype]] object. If _propertyKey_ refers to a data property on the [[Prototype]] object, _obj_ inherits it for get access, making it behave as if _propertyKey_ was a property of _obj_. If _propertyKey_ refers to a writable data property on the [[Prototype]] object, set access of _propertyKey_ on _obj_ creates a new data property named _propertyKey_ on _obj_. If _propertyKey_ refers to a non-writable data property on the [[Prototype]] object, set access of _propertyKey_ on _obj_ fails. If _propertyKey_ refers to an accessor property on the [[Prototype]] object, the accessor is inherited by _obj_ for both get access and set access.
Every ordinary object has a Boolean-valued [[Extensible]] internal slot which is used to fulfill the extensibility-related internal method invariants specified in . Namely, once the value of an object's [[Extensible]] internal slot has been set to *false*, it is no longer possible to add properties to the object, to modify the value of the object's [[Prototype]] internal slot, or to subsequently change the value of [[Extensible]] to *true*.
- In the following algorithm descriptions, assume _obj_ is an ordinary object, _propertyKey_ is a property key value, _value_ is any ECMAScript language value, and _desc_ is a Property Descriptor record.
+ In the following algorithm descriptions, assume _obj_ is an ordinary object, _propertyKey_ is a property key value, _value_ is any ECMAScript language value, and _propertyDesc_ is a Property Descriptor record.
Each ordinary object internal method delegates to a similarly-named abstract operation. If such an abstract operation depends on another internal method, then the internal method is invoked on _obj_ rather than calling the similarly-named abstract operation directly. These semantics ensure that exotic objects have their overridden internal methods invoked when ordinary object internal methods are applied to them.
@@ -12746,18 +12746,18 @@
1. If _obj_ does not have an own property with key _propertyKey_, return *undefined*.
- 1. Let _desc_ be a newly created Property Descriptor with no fields.
+ 1. Let _propertyDesc_ be a newly created Property Descriptor with no fields.
1. Let _ownProperty_ be _obj_'s own property whose key is _propertyKey_.
1. If _ownProperty_ is a data property, then
- 1. Set _desc_.[[Value]] to the value of _ownProperty_'s [[Value]] attribute.
- 1. Set _desc_.[[Writable]] to the value of _ownProperty_'s [[Writable]] attribute.
+ 1. Set _propertyDesc_.[[Value]] to the value of _ownProperty_'s [[Value]] attribute.
+ 1. Set _propertyDesc_.[[Writable]] to the value of _ownProperty_'s [[Writable]] attribute.
1. Else,
1. Assert: _ownProperty_ is an accessor property.
- 1. Set _desc_.[[Get]] to the value of _ownProperty_'s [[Get]] attribute.
- 1. Set _desc_.[[Set]] to the value of _ownProperty_'s [[Set]] attribute.
- 1. Set _desc_.[[Enumerable]] to the value of _ownProperty_'s [[Enumerable]] attribute.
- 1. Set _desc_.[[Configurable]] to the value of _ownProperty_'s [[Configurable]] attribute.
- 1. Return _desc_.
+ 1. Set _propertyDesc_.[[Get]] to the value of _ownProperty_'s [[Get]] attribute.
+ 1. Set _propertyDesc_.[[Set]] to the value of _ownProperty_'s [[Set]] attribute.
+ 1. Set _propertyDesc_.[[Enumerable]] to the value of _ownProperty_'s [[Enumerable]] attribute.
+ 1. Set _propertyDesc_.[[Configurable]] to the value of _ownProperty_'s [[Configurable]] attribute.
+ 1. Return _propertyDesc_.
@@ -12766,7 +12766,7 @@
[[DefineOwnProperty]] (
_propertyKey_: a property key,
- _desc_: a Property Descriptor,
+ _propertyDesc_: a Property Descriptor,
): either a normal completion containing a Boolean or a throw completion
- 1. Return ? OrdinaryDefineOwnProperty(_obj_, _propertyKey_, _desc_).
+ 1. Return ? OrdinaryDefineOwnProperty(_obj_, _propertyKey_, _propertyDesc_).
@@ -12782,7 +12782,7 @@
OrdinaryDefineOwnProperty (
_obj_: an Object,
_propertyKey_: a property key,
- _desc_: a Property Descriptor,
+ _propertyDesc_: a Property Descriptor,
): either a normal completion containing a Boolean or a throw completion
@@ -12798,14 +12798,14 @@
IsCompatiblePropertyDescriptor (
_extensible_: a Boolean,
- _desc_: a Property Descriptor,
+ _propertyDesc_: a Property Descriptor,
_current_: a Property Descriptor or *undefined*,
): a Boolean
- 1. Return ValidateAndApplyPropertyDescriptor(*undefined*, *""*, _extensible_, _desc_, _current_).
+ 1. Return ValidateAndApplyPropertyDescriptor(*undefined*, *""*, _extensible_, _propertyDesc_, _current_).
@@ -12815,48 +12815,48 @@
_obj_: an Object or *undefined*,
_propertyKey_: a property key,
_extensible_: a Boolean,
- _desc_: a Property Descriptor,
+ _propertyDesc_: a Property Descriptor,
_current_: a Property Descriptor or *undefined*,
): a Boolean
1. Assert: _propertyKey_ is a property key.
1. If _current_ is *undefined*, then
1. If _extensible_ is *false*, return *false*.
1. If _obj_ is *undefined*, return *true*.
- 1. If IsAccessorDescriptor(_desc_) is *true*, then
- 1. Create an own accessor property named _propertyKey_ of object _obj_ whose [[Get]], [[Set]], [[Enumerable]], and [[Configurable]] attributes are set to the value of the corresponding field in _desc_ if _desc_ has that field, or to the attribute's default value otherwise.
+ 1. If IsAccessorDescriptor(_propertyDesc_) is *true*, then
+ 1. Create an own accessor property named _propertyKey_ of object _obj_ whose [[Get]], [[Set]], [[Enumerable]], and [[Configurable]] attributes are set to the value of the corresponding field in _propertyDesc_ if _propertyDesc_ has that field, or to the attribute's default value otherwise.
1. Else,
- 1. Create an own data property named _propertyKey_ of object _obj_ whose [[Value]], [[Writable]], [[Enumerable]], and [[Configurable]] attributes are set to the value of the corresponding field in _desc_ if _desc_ has that field, or to the attribute's default value otherwise.
+ 1. Create an own data property named _propertyKey_ of object _obj_ whose [[Value]], [[Writable]], [[Enumerable]], and [[Configurable]] attributes are set to the value of the corresponding field in _propertyDesc_ if _propertyDesc_ has that field, or to the attribute's default value otherwise.
1. Return *true*.
1. Assert: _current_ is a fully populated Property Descriptor.
- 1. If _desc_ does not have any fields, return *true*.
+ 1. If _propertyDesc_ does not have any fields, return *true*.
1. If _current_.[[Configurable]] is *false*, then
- 1. If _desc_ has a [[Configurable]] field and _desc_.[[Configurable]] is *true*, return *false*.
- 1. If _desc_ has an [[Enumerable]] field and _desc_.[[Enumerable]] is not _current_.[[Enumerable]], return *false*.
- 1. If IsGenericDescriptor(_desc_) is *false* and IsAccessorDescriptor(_desc_) is not IsAccessorDescriptor(_current_), return *false*.
+ 1. If _propertyDesc_ has a [[Configurable]] field and _propertyDesc_.[[Configurable]] is *true*, return *false*.
+ 1. If _propertyDesc_ has an [[Enumerable]] field and _propertyDesc_.[[Enumerable]] is not _current_.[[Enumerable]], return *false*.
+ 1. If IsGenericDescriptor(_propertyDesc_) is *false* and IsAccessorDescriptor(_propertyDesc_) is not IsAccessorDescriptor(_current_), return *false*.
1. If IsAccessorDescriptor(_current_) is *true*, then
- 1. If _desc_ has a [[Get]] field and SameValue(_desc_.[[Get]], _current_.[[Get]]) is *false*, return *false*.
- 1. If _desc_ has a [[Set]] field and SameValue(_desc_.[[Set]], _current_.[[Set]]) is *false*, return *false*.
+ 1. If _propertyDesc_ has a [[Get]] field and SameValue(_propertyDesc_.[[Get]], _current_.[[Get]]) is *false*, return *false*.
+ 1. If _propertyDesc_ has a [[Set]] field and SameValue(_propertyDesc_.[[Set]], _current_.[[Set]]) is *false*, return *false*.
1. Else if _current_.[[Writable]] is *false*, then
- 1. If _desc_ has a [[Writable]] field and _desc_.[[Writable]] is *true*, return *false*.
+ 1. If _propertyDesc_ has a [[Writable]] field and _propertyDesc_.[[Writable]] is *true*, return *false*.
1. NOTE: SameValue returns *true* for *NaN* values which may be distinguishable by other means. Returning here ensures that any existing property of _obj_ remains unmodified.
- 1. If _desc_ has a [[Value]] field, return SameValue(_desc_.[[Value]], _current_.[[Value]]).
+ 1. If _propertyDesc_ has a [[Value]] field, return SameValue(_propertyDesc_.[[Value]], _current_.[[Value]]).
1. If _obj_ is not *undefined*, then
- 1. If IsDataDescriptor(_current_) is *true* and IsAccessorDescriptor(_desc_) is *true*, then
- 1. If _desc_ has a [[Configurable]] field, let _configurable_ be _desc_.[[Configurable]]; else let _configurable_ be _current_.[[Configurable]].
- 1. If _desc_ has an [[Enumerable]] field, let _enumerable_ be _desc_.[[Enumerable]]; else let _enumerable_ be _current_.[[Enumerable]].
- 1. Replace the property named _propertyKey_ of object _obj_ with an accessor property whose [[Configurable]] and [[Enumerable]] attributes are set to _configurable_ and _enumerable_, respectively, and whose [[Get]] and [[Set]] attributes are set to the value of the corresponding field in _desc_ if _desc_ has that field, or to the attribute's default value otherwise.
- 1. Else if IsAccessorDescriptor(_current_) is *true* and IsDataDescriptor(_desc_) is *true*, then
- 1. If _desc_ has a [[Configurable]] field, let _configurable_ be _desc_.[[Configurable]]; else let _configurable_ be _current_.[[Configurable]].
- 1. If _desc_ has an [[Enumerable]] field, let _enumerable_ be _desc_.[[Enumerable]]; else let _enumerable_ be _current_.[[Enumerable]].
- 1. Replace the property named _propertyKey_ of object _obj_ with a data property whose [[Configurable]] and [[Enumerable]] attributes are set to _configurable_ and _enumerable_, respectively, and whose [[Value]] and [[Writable]] attributes are set to the value of the corresponding field in _desc_ if _desc_ has that field, or to the attribute's default value otherwise.
+ 1. If IsDataDescriptor(_current_) is *true* and IsAccessorDescriptor(_propertyDesc_) is *true*, then
+ 1. If _propertyDesc_ has a [[Configurable]] field, let _configurable_ be _propertyDesc_.[[Configurable]]; else let _configurable_ be _current_.[[Configurable]].
+ 1. If _propertyDesc_ has an [[Enumerable]] field, let _enumerable_ be _propertyDesc_.[[Enumerable]]; else let _enumerable_ be _current_.[[Enumerable]].
+ 1. Replace the property named _propertyKey_ of object _obj_ with an accessor property whose [[Configurable]] and [[Enumerable]] attributes are set to _configurable_ and _enumerable_, respectively, and whose [[Get]] and [[Set]] attributes are set to the value of the corresponding field in _propertyDesc_ if _propertyDesc_ has that field, or to the attribute's default value otherwise.
+ 1. Else if IsAccessorDescriptor(_current_) is *true* and IsDataDescriptor(_propertyDesc_) is *true*, then
+ 1. If _propertyDesc_ has a [[Configurable]] field, let _configurable_ be _propertyDesc_.[[Configurable]]; else let _configurable_ be _current_.[[Configurable]].
+ 1. If _propertyDesc_ has an [[Enumerable]] field, let _enumerable_ be _propertyDesc_.[[Enumerable]]; else let _enumerable_ be _current_.[[Enumerable]].
+ 1. Replace the property named _propertyKey_ of object _obj_ with a data property whose [[Configurable]] and [[Enumerable]] attributes are set to _configurable_ and _enumerable_, respectively, and whose [[Value]] and [[Writable]] attributes are set to the value of the corresponding field in _propertyDesc_ if _propertyDesc_ has that field, or to the attribute's default value otherwise.
1. Else,
- 1. For each field name _fieldName_ of _desc_, set the attribute named _fieldName_ of the property named _propertyKey_ of object _obj_ to the value of _desc_'s _fieldName_ field.
+ 1. For each field name _fieldName_ of _propertyDesc_, set the attribute named _fieldName_ of the property named _propertyKey_ of object _obj_ to the value of _propertyDesc_'s _fieldName_ field.
1. Return *true*.
@@ -12924,14 +12924,14 @@
- 1. Let _desc_ be ? _obj_.[[GetOwnProperty]](_propertyKey_).
- 1. If _desc_ is *undefined*, then
+ 1. Let _propertyDesc_ be ? _obj_.[[GetOwnProperty]](_propertyKey_).
+ 1. If _propertyDesc_ is *undefined*, then
1. Let _parent_ be ? _obj_.[[GetPrototypeOf]]().
1. If _parent_ is *null*, return *undefined*.
1. Return ? _parent_.[[Get]](_propertyKey_, _receiver_).
- 1. If IsDataDescriptor(_desc_) is *true*, return _desc_.[[Value]].
- 1. Assert: IsAccessorDescriptor(_desc_) is *true*.
- 1. Let _getter_ be _desc_.[[Get]].
+ 1. If IsDataDescriptor(_propertyDesc_) is *true*, return _propertyDesc_.[[Value]].
+ 1. Assert: IsAccessorDescriptor(_propertyDesc_) is *true*.
+ 1. Let _getter_ be _propertyDesc_.[[Get]].
1. If _getter_ is *undefined*, return *undefined*.
1. Return ? Call(_getter_, _receiver_).
@@ -12993,12 +12993,12 @@
1. If IsDataDescriptor(_ownDesc_) is *true*, then
1. If _ownDesc_.[[Writable]] is *false*, return *false*.
1. If _receiver_ is not an Object, return *false*.
- 1. Let _existingDescriptor_ be ? _receiver_.[[GetOwnProperty]](_propertyKey_).
- 1. If _existingDescriptor_ is *undefined*, then
+ 1. Let _existingDesc_ be ? _receiver_.[[GetOwnProperty]](_propertyKey_).
+ 1. If _existingDesc_ is *undefined*, then
1. Assert: _receiver_ does not currently have a property _propertyKey_.
1. Return ? CreateDataProperty(_receiver_, _propertyKey_, _value_).
- 1. If IsAccessorDescriptor(_existingDescriptor_) is *true*, return *false*.
- 1. If _existingDescriptor_.[[Writable]] is *false*, return *false*.
+ 1. If IsAccessorDescriptor(_existingDesc_) is *true*, return *false*.
+ 1. If _existingDesc_.[[Writable]] is *false*, return *false*.
1. Let _valueDesc_ be the PropertyDescriptor { [[Value]]: _value_ }.
1. Return ? _receiver_.[[DefineOwnProperty]](_propertyKey_, _valueDesc_).
1. Assert: IsAccessorDescriptor(_ownDesc_) is *true*.
@@ -13034,9 +13034,9 @@
- 1. Let _desc_ be ? _obj_.[[GetOwnProperty]](_propertyKey_).
- 1. If _desc_ is *undefined*, return *true*.
- 1. If _desc_.[[Configurable]] is *true*, then
+ 1. Let _propertyDesc_ be ? _obj_.[[GetOwnProperty]](_propertyKey_).
+ 1. If _propertyDesc_ is *undefined*, return *true*.
+ 1. If _propertyDesc_.[[Configurable]] is *true*, then
1. Remove the own property with name _propertyKey_ from _obj_.
1. Return *true*.
1. Return *false*.
@@ -13103,7 +13103,7 @@
OrdinaryCreateFromConstructor (
- _constructor_: a function object,
+ _ctor_: a function object,
_intrinsicDefaultProto_: a String,
optional _internalSlotsList_: a List of names of internal slots,
): either a normal completion containing an Object or a throw completion
@@ -13114,17 +13114,17 @@
1. Assert: _intrinsicDefaultProto_ is this specification's name of an intrinsic object. The corresponding object must be an intrinsic that is intended to be used as the [[Prototype]] value of an object.
- 1. Let _proto_ be ? GetPrototypeFromConstructor(_constructor_, _intrinsicDefaultProto_).
- 1. If _internalSlotsList_ is present, let _slotsList_ be _internalSlotsList_.
- 1. Else, let _slotsList_ be a new empty List.
- 1. Return OrdinaryObjectCreate(_proto_, _slotsList_).
+ 1. Let _proto_ be ? GetPrototypeFromConstructor(_ctor_, _intrinsicDefaultProto_).
+ 1. If _internalSlotsList_ is present, let _slots_ be _internalSlotsList_.
+ 1. Else, let _slots_ be a new empty List.
+ 1. Return OrdinaryObjectCreate(_proto_, _slots_).
GetPrototypeFromConstructor (
- _constructor_: a function object,
+ _ctor_: a function object,
_intrinsicDefaultProto_: a String,
): either a normal completion containing an Object or a throw completion
@@ -13134,14 +13134,14 @@
1. Assert: _intrinsicDefaultProto_ is this specification's name of an intrinsic object. The corresponding object must be an intrinsic that is intended to be used as the [[Prototype]] value of an object.
- 1. Let _proto_ be ? Get(_constructor_, *"prototype"*).
+ 1. Let _proto_ be ? Get(_ctor_, *"prototype"*).
1. If _proto_ is not an Object, then
- 1. Let _realm_ be ? GetFunctionRealm(_constructor_).
+ 1. Let _realm_ be ? GetFunctionRealm(_ctor_).
1. Set _proto_ to _realm_'s intrinsic object named _intrinsicDefaultProto_.
1. Return _proto_.
- If _constructor_ does not supply a [[Prototype]] value, the default value that is used is obtained from the realm of the _constructor_ function rather than from the running execution context.
+ If _ctor_ does not supply a [[Prototype]] value, the default value that is used is obtained from the realm of the _ctor_ function rather than from the running execution context.
@@ -13355,8 +13355,8 @@ ECMAScript Function Objects
[[Call]] (
- _thisArgument_: an ECMAScript language value,
- _argumentsList_: a List of ECMAScript language values,
+ _thisArg_: an ECMAScript language value,
+ _argList_: a List of ECMAScript language values,
): either a normal completion containing an ECMAScript language value or a throw completion
@@ -13511,13 +13511,13 @@
OrdinaryCallEvaluateBody (
_func_: an ECMAScript function object,
- _argumentsList_: a List of ECMAScript language values,
+ _argList_: a List of ECMAScript language values,
): a return completion or a throw completion
- 1. Return ? EvaluateBody of _func_.[[ECMAScriptCode]] with arguments _func_ and _argumentsList_.
+ 1. Return ? EvaluateBody of _func_.[[ECMAScriptCode]] with arguments _func_ and _argList_.
@@ -13525,7 +13525,7 @@
[[Construct]] (
- _argumentsList_: a List of ECMAScript language values,
+ _argList_: a List of ECMAScript language values,
_newTarget_: a constructor,
): either a normal completion containing an Object or a throw completion
@@ -13537,25 +13537,25 @@
1. Let _callerContext_ be the running execution context.
1. Let _kind_ be _func_.[[ConstructorKind]].
1. If _kind_ is ~base~, then
- 1. Let _thisArgument_ be ? OrdinaryCreateFromConstructor(_newTarget_, *"%Object.prototype%"*).
+ 1. Let _thisArg_ be ? OrdinaryCreateFromConstructor(_newTarget_, *"%Object.prototype%"*).
1. Let _calleeContext_ be PrepareForOrdinaryCall(_func_, _newTarget_).
1. Assert: _calleeContext_ is now the running execution context.
1. If _kind_ is ~base~, then
- 1. Perform OrdinaryCallBindThis(_func_, _calleeContext_, _thisArgument_).
- 1. Let _initializeResult_ be Completion(InitializeInstanceElements(_thisArgument_, _func_)).
+ 1. Perform OrdinaryCallBindThis(_func_, _calleeContext_, _thisArg_).
+ 1. Let _initializeResult_ be Completion(InitializeInstanceElements(_thisArg_, _func_)).
1. If _initializeResult_ is an abrupt completion, then
1. Remove _calleeContext_ from the execution context stack and restore _callerContext_ as the running execution context.
1. Return ? _initializeResult_.
- 1. Let _constructorEnv_ be the LexicalEnvironment of _calleeContext_.
- 1. Let _result_ be Completion(OrdinaryCallEvaluateBody(_func_, _argumentsList_)).
+ 1. Let _ctorEnv_ be the LexicalEnvironment of _calleeContext_.
+ 1. Let _result_ be Completion(OrdinaryCallEvaluateBody(_func_, _argList_)).
1. Remove _calleeContext_ from the execution context stack and restore _callerContext_ as the running execution context.
1. If _result_ is a throw completion, then
1. Return ? _result_.
1. Assert: _result_ is a return completion.
1. If _result_.[[Value]] is an Object, return _result_.[[Value]].
- 1. If _kind_ is ~base~, return _thisArgument_.
+ 1. If _kind_ is ~base~, return _thisArg_.
1. If _result_.[[Value]] is not *undefined*, throw a *TypeError* exception.
- 1. Let _thisBinding_ be ? _constructorEnv_.GetThisBinding().
+ 1. Let _thisBinding_ be ? _ctorEnv_.GetThisBinding().
1. Assert: _thisBinding_ is an Object.
1. Return _thisBinding_.
@@ -13564,12 +13564,12 @@
OrdinaryFunctionCreate (
- _functionPrototype_: an Object,
+ _proto_: an Object,
_sourceText_: a sequence of Unicode code points,
- _parameterList_: a Parse Node,
+ _paramList_: a Parse Node,
_body_: a Parse Node,
_thisMode_: ~lexical-this~ or ~non-lexical-this~,
- _env_: an Environment Record,
+ _envRecord_: an Environment Record,
_privateEnv_: a PrivateEnvironment Record or *null*,
): an ECMAScript function object
@@ -13579,10 +13579,10 @@
1. Let _internalSlotsList_ be the internal slots listed in .
- 1. Let _func_ be OrdinaryObjectCreate(_functionPrototype_, _internalSlotsList_).
+ 1. Let _func_ be OrdinaryObjectCreate(_proto_, _internalSlotsList_).
1. Set _func_.[[Call]] to the definition specified in .
1. Set _func_.[[SourceText]] to _sourceText_.
- 1. Set _func_.[[FormalParameters]] to _parameterList_.
+ 1. Set _func_.[[FormalParameters]] to _paramList_.
1. Set _func_.[[ECMAScriptCode]] to _body_.
1. Let _strict_ be IsStrict(_body_).
1. Set _func_.[[Strict]] to _strict_.
@@ -13590,7 +13590,7 @@
1. Else if _strict_ is *true*, set _func_.[[ThisMode]] to ~strict~.
1. Else, set _func_.[[ThisMode]] to ~global~.
1. Set _func_.[[IsClassConstructor]] to *false*.
- 1. Set _func_.[[Environment]] to _env_.
+ 1. Set _func_.[[Environment]] to _envRecord_.
1. Set _func_.[[PrivateEnvironment]] to _privateEnv_.
1. Set _func_.[[ScriptOrModule]] to GetActiveScriptOrModule().
1. Set _func_.[[Realm]] to the current Realm Record.
@@ -13598,8 +13598,8 @@
1. Set _func_.[[Fields]] to a new empty List.
1. Set _func_.[[PrivateMethods]] to a new empty List.
1. Set _func_.[[ClassFieldInitializerName]] to ~empty~.
- 1. Let _len_ be the ExpectedArgumentCount of _parameterList_.
- 1. Perform SetFunctionLength(_func_, _len_).
+ 1. Let _length_ be the ExpectedArgumentCount of _paramList_.
+ 1. Perform SetFunctionLength(_func_, _length_).
1. Return _func_.
@@ -13639,8 +13639,8 @@ %ThrowTypeError% ( )
MakeConstructor (
_func_: an ECMAScript function object or a built-in function object,
- optional _writablePrototype_: a Boolean,
- optional _prototype_: an Object,
+ optional _writableProto_: a Boolean,
+ optional _proto_: an Object,
): ~unused~
@@ -13683,7 +13683,7 @@
MakeMethod (
_func_: an ECMAScript function object,
- _homeObject_: an Object,
+ _homeObj_: an Object,
): ~unused~
- 1. Assert: _homeObject_ is an ordinary object.
- 1. Set _func_.[[HomeObject]] to _homeObject_.
+ 1. Assert: _homeObj_ is an ordinary object.
+ 1. Set _func_.[[HomeObject]] to _homeObj_.
1. Return ~unused~.
@@ -13700,8 +13700,8 @@
DefineMethodProperty (
- _homeObject_: an Object,
- _key_: a property key or Private Name,
+ _homeObj_: an Object,
+ _name_: a property key or Private Name,
_closure_: a function object,
_enumerable_: a Boolean,
): either a normal completion containing either a PrivateElement or ~unused~, or an abrupt completion
@@ -13709,11 +13709,11 @@
- 1. Assert: _homeObject_ is an ordinary, extensible object.
- 1. If _key_ is a Private Name, return PrivateElement { [[Key]]: _key_, [[Kind]]: ~method~, [[Value]]: _closure_ }.
- 1. Let _desc_ be the PropertyDescriptor { [[Value]]: _closure_, [[Writable]]: *true*, [[Enumerable]]: _enumerable_, [[Configurable]]: *true* }.
- 1. Perform ? DefinePropertyOrThrow(_homeObject_, _key_, _desc_).
- 1. NOTE: DefinePropertyOrThrow only returns an abrupt completion when attempting to define a class static method whose _key_ is *"prototype"*.
+ 1. Assert: _homeObj_ is an ordinary, extensible object.
+ 1. If _name_ is a Private Name, return PrivateElement { [[Key]]: _name_, [[Kind]]: ~method~, [[Value]]: _closure_ }.
+ 1. Let _propertyDesc_ be the PropertyDescriptor { [[Value]]: _closure_, [[Writable]]: *true*, [[Enumerable]]: _enumerable_, [[Configurable]]: *true* }.
+ 1. Perform ? DefinePropertyOrThrow(_homeObj_, _name_, _propertyDesc_).
+ 1. NOTE: DefinePropertyOrThrow only returns an abrupt completion when attempting to define a class static method whose _name_ is *"prototype"*.
1. Return ~unused~.
@@ -13772,7 +13772,7 @@
FunctionDeclarationInstantiation (
_func_: an ECMAScript function object,
- _argumentsList_: a List of ECMAScript language values,
+ _argList_: a List of ECMAScript language values,
): either a normal completion containing ~unused~ or a throw completion
@@ -13932,8 +13932,8 @@ Built-in Function Objects
[[Call]] (
- _thisArgument_: an ECMAScript language value,
- _argumentsList_: a List of ECMAScript language values,
+ _thisArg_: an ECMAScript language value,
+ _argList_: a List of ECMAScript language values,
): either a normal completion containing an ECMAScript language value or a throw completion
- 1. Return ? BuiltinCallOrConstruct(_func_, _thisArgument_, _argumentsList_, *undefined*).
+ 1. Return ? BuiltinCallOrConstruct(_func_, _thisArg_, _argList_, *undefined*).
[[Construct]] (
- _argumentsList_: a List of ECMAScript language values,
+ _argList_: a List of ECMAScript language values,
_newTarget_: a constructor,
): either a normal completion containing an Object or a throw completion
@@ -13957,7 +13957,7 @@
a built-in function object _func_ (when the method is present)
- 1. Let _result_ be ? BuiltinCallOrConstruct(_func_, ~uninitialized~, _argumentsList_, _newTarget_).
+ 1. Let _result_ be ? BuiltinCallOrConstruct(_func_, ~uninitialized~, _argList_, _newTarget_).
1. Assert: _result_ is an Object.
1. Return _result_.
@@ -13967,8 +13967,8 @@
BuiltinCallOrConstruct (
_func_: a built-in function object,
- _thisArgument_: an ECMAScript language value or ~uninitialized~,
- _argumentsList_: a List of ECMAScript language values,
+ _thisArg_: an ECMAScript language value or ~uninitialized~,
+ _argList_: a List of ECMAScript language values,
_newTarget_: a constructor or *undefined*,
): either a normal completion containing an ECMAScript language value or a throw completion
@@ -13986,14 +13986,14 @@
1. Push _calleeContext_ onto the execution context stack; _calleeContext_ is now the running execution context.
1. If _func_.[[Async]] is *true*, then
1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%).
- 1. Let _resultsClosure_ be a new Abstract Closure with no parameters that captures _func_, _thisArgument_, _argumentsList_, and _newTarget_ and performs the following steps when called:
- 1. Let _result_ be the Completion Record that is the result of evaluating _func_ in a manner that conforms to the specification of _func_. If _thisArgument_ is ~uninitialized~, the *this* value is uninitialized; else _thisArgument_ provides the *this* value. _argumentsList_ provides the named parameters. _newTarget_ provides the NewTarget value.
+ 1. Let _resultsClosure_ be a new Abstract Closure with no parameters that captures _func_, _thisArg_, _argList_, and _newTarget_ and performs the following steps when called:
+ 1. Let _result_ be the Completion Record that is the result of evaluating _func_ in a manner that conforms to the specification of _func_. If _thisArg_ is ~uninitialized~, the *this* value is uninitialized; else _thisArg_ provides the *this* value. _argList_ provides the named parameters. _newTarget_ provides the NewTarget value.
1. NOTE: If _func_ is defined in this document, “the specification of _func_” is the behaviour specified for it via algorithm steps or other means.
1. Return Completion(_result_).
1. Perform AsyncFunctionStart(_promiseCapability_, _resultsClosure_).
1. Remove _calleeContext_ from the execution context stack and restore _callerContext_ as the running execution context.
1. Return _promiseCapability_.[[Promise]].
- 1. [id="step-call-builtin-function-result"] Let _result_ be the Completion Record that is the result of evaluating _func_ in a manner that conforms to the specification of _func_. If _thisArgument_ is ~uninitialized~, the *this* value is uninitialized; else _thisArgument_ provides the *this* value. _argumentsList_ provides the named parameters. _newTarget_ provides the NewTarget value.
+ 1. [id="step-call-builtin-function-result"] Let _result_ be the Completion Record that is the result of evaluating _func_ in a manner that conforms to the specification of _func_. If _thisArg_ is ~uninitialized~, the *this* value is uninitialized; else _thisArg_ provides the *this* value. _argList_ provides the named parameters. _newTarget_ provides the NewTarget value.
1. NOTE: If _func_ is defined in this document, “the specification of _func_” is the behaviour specified for it via algorithm steps or other means.
1. Remove _calleeContext_ from the execution context stack and restore _callerContext_ as the running execution context.
1. Return ? _result_.
@@ -14011,7 +14011,7 @@
_name_: a property key or a Private Name,
_additionalInternalSlotsList_: a List of names of internal slots,
optional _realm_: a Realm Record,
- optional _prototype_: an Object or *null*,
+ optional _proto_: an Object or *null*,
optional _prefix_: a String,
optional _async_: a Boolean,
): a built-in function object
@@ -14022,13 +14022,13 @@
1. If _realm_ is not present, set _realm_ to the current Realm Record.
- 1. If _prototype_ is not present, set _prototype_ to _realm_.[[Intrinsics]].[[%Function.prototype%]].
+ 1. If _proto_ is not present, set _proto_ to _realm_.[[Intrinsics]].[[%Function.prototype%]].
1. If _async_ is not present, set _async_ to *false*.
1. Let _internalSlotsList_ be a List containing the names of all the internal slots that requires for the built-in function object that is about to be created.
1. Append the elements of _additionalInternalSlotsList_ to _internalSlotsList_.
1. Let _func_ be a new built-in function object that, when called, performs the action described by _behaviour_ using the provided arguments as the values of the corresponding parameters specified by _behaviour_. The new function object has internal slots whose names are the elements of _internalSlotsList_, and an [[InitialName]] internal slot.
1. Set _func_.[[Async]] to _async_.
- 1. Set _func_.[[Prototype]] to _prototype_.
+ 1. Set _func_.[[Prototype]] to _proto_.
1. Set _func_.[[Extensible]] to *true*.
1. Set _func_.[[Realm]] to _realm_.
1. Set _func_.[[InitialName]] to *null*.
@@ -14108,8 +14108,8 @@ Bound Function Exotic Objects
[[Call]] (
- _thisArgument_: an ECMAScript language value,
- _argumentsList_: a List of ECMAScript language values,
+ _thisArg_: an ECMAScript language value,
+ _argList_: a List of ECMAScript language values,
): either a normal completion containing an ECMAScript language value or a throw completion
@@ -14128,7 +14128,7 @@
[[Construct]] (
- _argumentsList_: a List of ECMAScript language values,
+ _argList_: a List of ECMAScript language values,
_newTarget_: a constructor,
): either a normal completion containing an Object or a throw completion
@@ -14140,7 +14140,7 @@
1. Let _target_ be _func_.[[BoundTargetFunction]].
1. Assert: IsConstructor(_target_) is *true*.
1. Let _boundArgs_ be _func_.[[BoundArguments]].
- 1. Let _args_ be the list-concatenation of _boundArgs_ and _argumentsList_.
+ 1. Let _args_ be the list-concatenation of _boundArgs_ and _argList_.
1. If SameValue(_func_, _newTarget_) is *true*, set _newTarget_ to _target_.
1. Return ? Construct(_target_, _args_, _newTarget_).
@@ -14149,7 +14149,7 @@
BoundFunctionCreate (
- _targetFunction_: a function object,
+ _targetFunc_: a function object,
_boundThis_: an ECMAScript language value,
_boundArgs_: a List of ECMAScript language values,
): either a normal completion containing a function object or a throw completion
@@ -14159,14 +14159,14 @@
It is used to specify the creation of new bound function exotic objects.
- 1. Let _proto_ be ? _targetFunction_.[[GetPrototypeOf]]().
+ 1. Let _proto_ be ? _targetFunc_.[[GetPrototypeOf]]().
1. Let _internalSlotsList_ be the list-concatenation of « [[Prototype]], [[Extensible]] » and the internal slots listed in .
1. Let _obj_ be MakeBasicObject(_internalSlotsList_).
1. Set _obj_.[[Prototype]] to _proto_.
1. Set _obj_.[[Call]] as specified in .
- 1. If IsConstructor(_targetFunction_) is *true*, then
+ 1. If IsConstructor(_targetFunc_) is *true*, then
1. Set _obj_.[[Construct]] as specified in .
- 1. Set _obj_.[[BoundTargetFunction]] to _targetFunction_.
+ 1. Set _obj_.[[BoundTargetFunction]] to _targetFunc_.
1. Set _obj_.[[BoundThis]] to _boundThis_.
1. Set _obj_.[[BoundArguments]] to _boundArgs_.
1. Return _obj_.
@@ -14184,7 +14184,7 @@ Array Exotic Objects
[[DefineOwnProperty]] (
_propertyKey_: a property key,
- _desc_: a Property Descriptor,
+ _propertyDesc_: a Property Descriptor,
): either a normal completion containing a Boolean or a throw completion
- 1. If _propertyKey_ is *"length"*, return ? ArraySetLength(_array_, _desc_).
+ 1. If _propertyKey_ is *"length"*, return ? ArraySetLength(_array_, _propertyDesc_).
1. If _propertyKey_ is an array index, then
1. Let _lengthDesc_ be OrdinaryGetOwnProperty(_array_, *"length"*).
1. Assert: _lengthDesc_ is not *undefined*.
@@ -14202,14 +14202,14 @@
1. Assert: _length_ is a non-negative integral Number.
1. Let _index_ be ! ToUint32(_propertyKey_).
1. If _index_ ≥ _length_ and _lengthDesc_.[[Writable]] is *false*, return *false*.
- 1. Let _succeeded_ be ! OrdinaryDefineOwnProperty(_array_, _propertyKey_, _desc_).
+ 1. Let _succeeded_ be ! OrdinaryDefineOwnProperty(_array_, _propertyKey_, _propertyDesc_).
1. If _succeeded_ is *false*, return *false*.
1. If _index_ ≥ _length_, then
1. Set _lengthDesc_.[[Value]] to _index_ + *1*𝔽.
1. Set _succeeded_ to ! OrdinaryDefineOwnProperty(_array_, *"length"*, _lengthDesc_).
1. Assert: _succeeded_ is *true*.
1. Return *true*.
- 1. Return ? OrdinaryDefineOwnProperty(_array_, _propertyKey_, _desc_).
+ 1. Return ? OrdinaryDefineOwnProperty(_array_, _propertyKey_, _propertyDesc_).
@@ -14249,18 +14249,18 @@
1. Let _isArray_ be ? IsArray(_originalArray_).
1. If _isArray_ is *false*, return ? ArrayCreate(_length_).
- 1. Let _constructor_ be ? Get(_originalArray_, *"constructor"*).
- 1. If IsConstructor(_constructor_) is *true*, then
+ 1. Let _ctor_ be ? Get(_originalArray_, *"constructor"*).
+ 1. If IsConstructor(_ctor_) is *true*, then
1. Let _thisRealm_ be the current Realm Record.
- 1. Let _constructorRealm_ be ? GetFunctionRealm(_constructor_).
- 1. If _thisRealm_ and _constructorRealm_ are not the same Realm Record, then
- 1. If SameValue(_constructor_, _constructorRealm_.[[Intrinsics]].[[%Array%]]) is *true*, set _constructor_ to *undefined*.
- 1. If _constructor_ is an Object, then
- 1. Set _constructor_ to ? Get(_constructor_, %Symbol.species%).
- 1. If _constructor_ is *null*, set _constructor_ to *undefined*.
- 1. If _constructor_ is *undefined*, return ? ArrayCreate(_length_).
- 1. If IsConstructor(_constructor_) is *false*, throw a *TypeError* exception.
- 1. Return ? Construct(_constructor_, « 𝔽(_length_) »).
+ 1. Let _ctorRealm_ be ? GetFunctionRealm(_ctor_).
+ 1. If _thisRealm_ and _ctorRealm_ are not the same Realm Record, then
+ 1. If SameValue(_ctor_, _ctorRealm_.[[Intrinsics]].[[%Array%]]) is *true*, set _ctor_ to *undefined*.
+ 1. If _ctor_ is an Object, then
+ 1. Set _ctor_ to ? Get(_ctor_, %Symbol.species%).
+ 1. If _ctor_ is *null*, set _ctor_ to *undefined*.
+ 1. If _ctor_ is *undefined*, return ? ArrayCreate(_length_).
+ 1. If IsConstructor(_ctor_) is *false*, throw a *TypeError* exception.
+ 1. Return ? Construct(_ctor_, « 𝔽(_length_) »).
If _originalArray_ was created using the standard built-in Array constructor for a realm that is not the realm of the running execution context, then a new Array is created using the realm of the running execution context. This maintains compatibility with Web browsers that have historically had that behaviour for the `Array.prototype` methods that now are defined using ArraySpeciesCreate.
@@ -14271,41 +14271,41 @@
ArraySetLength (
_array_: an Array,
- _desc_: a Property Descriptor,
+ _propertyDesc_: a Property Descriptor,
): either a normal completion containing a Boolean or a throw completion
- 1. If _desc_ does not have a [[Value]] field, then
- 1. Return ! OrdinaryDefineOwnProperty(_array_, *"length"*, _desc_).
- 1. Let _newLenDesc_ be a copy of _desc_.
- 1. [id="step-arraysetlength-newlen"] Let _newLen_ be ? ToUint32(_desc_.[[Value]]).
- 1. [id="step-arraysetlength-numberlen"] Let _numberLen_ be ? ToNumber(_desc_.[[Value]]).
- 1. If SameValueZero(_newLen_, _numberLen_) is *false*, throw a *RangeError* exception.
- 1. Set _newLenDesc_.[[Value]] to _newLen_.
- 1. Let _oldLenDesc_ be OrdinaryGetOwnProperty(_array_, *"length"*).
- 1. Assert: _oldLenDesc_ is not *undefined*.
- 1. Assert: IsDataDescriptor(_oldLenDesc_) is *true*.
- 1. Assert: _oldLenDesc_.[[Configurable]] is *false*.
- 1. Let _oldLen_ be _oldLenDesc_.[[Value]].
- 1. If _newLen_ ≥ _oldLen_, then
- 1. Return ! OrdinaryDefineOwnProperty(_array_, *"length"*, _newLenDesc_).
- 1. If _oldLenDesc_.[[Writable]] is *false*, return *false*.
- 1. If _newLenDesc_ does not have a [[Writable]] field or _newLenDesc_.[[Writable]] is *true*, then
+ 1. If _propertyDesc_ does not have a [[Value]] field, then
+ 1. Return ! OrdinaryDefineOwnProperty(_array_, *"length"*, _propertyDesc_).
+ 1. Let _newLengthDesc_ be a copy of _propertyDesc_.
+ 1. [id="step-arraysetlength-newlen"] Let _newLength_ be ? ToUint32(_propertyDesc_.[[Value]]).
+ 1. [id="step-arraysetlength-numberlen"] Let _numberLength_ be ? ToNumber(_propertyDesc_.[[Value]]).
+ 1. If SameValueZero(_newLength_, _numberLength_) is *false*, throw a *RangeError* exception.
+ 1. Set _newLengthDesc_.[[Value]] to _newLength_.
+ 1. Let _oldLengthDesc_ be OrdinaryGetOwnProperty(_array_, *"length"*).
+ 1. Assert: _oldLengthDesc_ is not *undefined*.
+ 1. Assert: IsDataDescriptor(_oldLengthDesc_) is *true*.
+ 1. Assert: _oldLengthDesc_.[[Configurable]] is *false*.
+ 1. Let _oldLength_ be _oldLengthDesc_.[[Value]].
+ 1. If _newLength_ ≥ _oldLength_, then
+ 1. Return ! OrdinaryDefineOwnProperty(_array_, *"length"*, _newLengthDesc_).
+ 1. If _oldLengthDesc_.[[Writable]] is *false*, return *false*.
+ 1. If _newLengthDesc_ does not have a [[Writable]] field or _newLengthDesc_.[[Writable]] is *true*, then
1. Let _newWritable_ be *true*.
1. Else,
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(_array_, *"length"*, _newLenDesc_).
+ 1. Set _newLengthDesc_.[[Writable]] to *true*.
+ 1. Let _succeeded_ be ! OrdinaryDefineOwnProperty(_array_, *"length"*, _newLengthDesc_).
1. If _succeeded_ is *false*, return *false*.
- 1. For each own property key _propertyKey_ of _array_ such that _propertyKey_ is an array index and ! ToUint32(_propertyKey_) ≥ _newLen_, in descending numeric index order, do
+ 1. For each own property key _propertyKey_ of _array_ such that _propertyKey_ is an array index and ! ToUint32(_propertyKey_) ≥ _newLength_, in descending numeric index order, do
1. Let _deleteSucceeded_ be ! _array_.[[Delete]](_propertyKey_).
1. If _deleteSucceeded_ is *false*, then
- 1. Set _newLenDesc_.[[Value]] to ! ToUint32(_propertyKey_) + *1*𝔽.
- 1. If _newWritable_ is *false*, set _newLenDesc_.[[Writable]] to *false*.
- 1. Perform ! OrdinaryDefineOwnProperty(_array_, *"length"*, _newLenDesc_).
+ 1. Set _newLengthDesc_.[[Value]] to ! ToUint32(_propertyKey_) + *1*𝔽.
+ 1. If _newWritable_ is *false*, set _newLengthDesc_.[[Writable]] to *false*.
+ 1. Perform ! OrdinaryDefineOwnProperty(_array_, *"length"*, _newLengthDesc_).
1. Return *false*.
1. If _newWritable_ is *false*, then
1. Set _succeeded_ to ! OrdinaryDefineOwnProperty(_array_, *"length"*, PropertyDescriptor { [[Writable]]: *false* }).
@@ -14313,7 +14313,7 @@
1. Return *true*.
- In steps and , if _desc_.[[Value]] is an object then its `valueOf` method is called twice. This is legacy behaviour that was specified with this effect starting with the 2nd Edition of this specification.
+ In steps and , if _propertyDesc_.[[Value]] is an object then its `valueOf` method is called twice. This is legacy behaviour that was specified with this effect starting with the 2nd Edition of this specification.
@@ -14334,12 +14334,12 @@
- 1. Let _desc_ be OrdinaryGetOwnProperty(_str_, _propertyKey_).
- 1. If _desc_ is not *undefined*, return _desc_.
- 1. Return StringGetOwnProperty(_str_, _propertyKey_).
+ 1. Let _propertyDesc_ be OrdinaryGetOwnProperty(_string_, _propertyKey_).
+ 1. If _propertyDesc_ is not *undefined*, return _propertyDesc_.
+ 1. Return StringGetOwnProperty(_string_, _propertyKey_).
@@ -14347,19 +14347,19 @@
[[DefineOwnProperty]] (
_propertyKey_: a property key,
- _desc_: a Property Descriptor,
+ _propertyDesc_: a Property Descriptor,
): a normal completion containing a Boolean
- 1. Let _stringDesc_ be StringGetOwnProperty(_str_, _propertyKey_).
+ 1. Let _stringDesc_ be StringGetOwnProperty(_string_, _propertyKey_).
1. If _stringDesc_ is not *undefined*, then
- 1. Let _extensible_ be _str_.[[Extensible]].
- 1. Return IsCompatiblePropertyDescriptor(_extensible_, _desc_, _stringDesc_).
- 1. Return ! OrdinaryDefineOwnProperty(_str_, _propertyKey_, _desc_).
+ 1. Let _extensible_ be _string_.[[Extensible]].
+ 1. Return IsCompatiblePropertyDescriptor(_extensible_, _propertyDesc_, _stringDesc_).
+ 1. Return ! OrdinaryDefineOwnProperty(_string_, _propertyKey_, _propertyDesc_).
@@ -14371,12 +14371,12 @@ [[OwnPropertyKeys]] ( ): a normal completion containing a List of property k
1. Let _keys_ be a new empty List.
- 1. Let _str_ be _obj_.[[StringData]].
- 1. Assert: _str_ is a String.
- 1. Let _len_ be the length of _str_.
- 1. For each integer _i_ such that 0 ≤ _i_ < _len_, in ascending order, do
+ 1. Let _string_ be _obj_.[[StringData]].
+ 1. Assert: _string_ is a String.
+ 1. Let _length_ be the length of _string_.
+ 1. For each integer _i_ such that 0 ≤ _i_ < _length_, in ascending order, do
1. Append ! ToString(𝔽(_i_)) to _keys_.
- 1. For each own property key _propertyKey_ of _obj_ such that _propertyKey_ is an array index and ! ToIntegerOrInfinity(_propertyKey_) ≥ _len_, in ascending numeric index order, do
+ 1. For each own property key _propertyKey_ of _obj_ such that _propertyKey_ is an array index and ! ToIntegerOrInfinity(_propertyKey_) ≥ _length_, in ascending numeric index order, do
1. Append _propertyKey_ to _keys_.
1. For each own property key _propertyKey_ of _obj_ such that _propertyKey_ is a String and _propertyKey_ is not an array index, in ascending chronological order of property creation, do
1. Append _propertyKey_ to _keys_.
@@ -14390,7 +14390,7 @@ [[OwnPropertyKeys]] ( ): a normal completion containing a List of property k
StringCreate (
_value_: a String,
- _prototype_: an Object,
+ _proto_: an Object,
): a String exotic object
- 1. Let _str_ be MakeBasicObject(« [[Prototype]], [[Extensible]], [[StringData]] »).
- 1. Set _str_.[[Prototype]] to _prototype_.
- 1. Set _str_.[[StringData]] to _value_.
- 1. Set _str_.[[GetOwnProperty]] as specified in .
- 1. Set _str_.[[DefineOwnProperty]] as specified in .
- 1. Set _str_.[[OwnPropertyKeys]] as specified in .
+ 1. Let _string_ be MakeBasicObject(« [[Prototype]], [[Extensible]], [[StringData]] »).
+ 1. Set _string_.[[Prototype]] to _proto_.
+ 1. Set _string_.[[StringData]] to _value_.
+ 1. Set _string_.[[GetOwnProperty]] as specified in .
+ 1. Set _string_.[[DefineOwnProperty]] as specified in .
+ 1. Set _string_.[[OwnPropertyKeys]] as specified in .
1. Let _length_ be the length of _value_.
- 1. Perform ! DefinePropertyOrThrow(_str_, *"length"*, PropertyDescriptor { [[Value]]: 𝔽(_length_), [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *false* }).
- 1. Return _str_.
+ 1. Perform ! DefinePropertyOrThrow(_string_, *"length"*, PropertyDescriptor { [[Value]]: 𝔽(_length_), [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *false* }).
+ 1. Return _string_.
StringGetOwnProperty (
- _str_: an Object that has a [[StringData]] internal slot,
+ _string_: an Object that has a [[StringData]] internal slot,
_propertyKey_: a property key,
): a Property Descriptor or *undefined*
@@ -14421,15 +14421,15 @@
1. If _propertyKey_ is not a String, return *undefined*.
- 1. Let _index_ be CanonicalNumericIndexString(_propertyKey_).
- 1. If _index_ is not an integral Number, return *undefined*.
- 1. If _index_ is *-0*𝔽 or _index_ < *-0*𝔽, return *undefined*.
- 1. Let _stringData_ be _str_.[[StringData]].
+ 1. Let _numericIndex_ be CanonicalNumericIndexString(_propertyKey_).
+ 1. If _numericIndex_ is not an integral Number, return *undefined*.
+ 1. If _numericIndex_ is *-0*𝔽 or _numericIndex_ < *-0*𝔽, return *undefined*.
+ 1. Let _stringData_ be _string_.[[StringData]].
1. Assert: _stringData_ is a String.
- 1. Let _len_ be the length of _stringData_.
- 1. If ℝ(_index_) ≥ _len_, return *undefined*.
- 1. Let _resultStr_ be the substring of _stringData_ from ℝ(_index_) to ℝ(_index_) + 1.
- 1. Return the PropertyDescriptor { [[Value]]: _resultStr_, [[Writable]]: *false*, [[Enumerable]]: *true*, [[Configurable]]: *false* }.
+ 1. Let _length_ be the length of _stringData_.
+ 1. If ℝ(_numericIndex_) ≥ _length_, return *undefined*.
+ 1. Let _resultString_ be the substring of _stringData_ from ℝ(_numericIndex_) to ℝ(_numericIndex_) + 1.
+ 1. Return the PropertyDescriptor { [[Value]]: _resultString_, [[Writable]]: *false*, [[Enumerable]]: *true*, [[Configurable]]: *false* }.
@@ -14471,13 +14471,13 @@
an arguments exotic object _args_
- 1. Let _desc_ be OrdinaryGetOwnProperty(_args_, _propertyKey_).
- 1. If _desc_ is *undefined*, return *undefined*.
+ 1. Let _propertyDesc_ be OrdinaryGetOwnProperty(_args_, _propertyKey_).
+ 1. If _propertyDesc_ is *undefined*, return *undefined*.
1. Let _map_ be _args_.[[ParameterMap]].
1. Let _isMapped_ be ! HasOwnProperty(_map_, _propertyKey_).
1. If _isMapped_ is *true*, then
- 1. Set _desc_.[[Value]] to ! Get(_map_, _propertyKey_).
- 1. Return _desc_.
+ 1. Set _propertyDesc_.[[Value]] to ! Get(_map_, _propertyKey_).
+ 1. Return _propertyDesc_.
@@ -14485,7 +14485,7 @@
[[DefineOwnProperty]] (
_propertyKey_: a property key,
- _desc_: a Property Descriptor,
+ _propertyDesc_: a Property Descriptor,
): a normal completion containing a Boolean
@@ -16022,8 +16022,8 @@ [[OwnPropertyKeys]] ( ): either a normal completion containing a List of pro
1. Let _targetConfigurableKeys_ be a new empty List.
1. Let _targetNonconfigurableKeys_ be a new empty List.
1. For each element _key_ of _targetKeys_, do
- 1. Let _desc_ be ? _target_.[[GetOwnProperty]](_key_).
- 1. If _desc_ is not *undefined* and _desc_.[[Configurable]] is *false*, then
+ 1. Let _propertyDesc_ be ? _target_.[[GetOwnProperty]](_key_).
+ 1. If _propertyDesc_ is not *undefined* and _propertyDesc_.[[Configurable]] is *false*, then
1. Append _key_ to _targetNonconfigurableKeys_.
1. Else,
1. Append _key_ to _targetConfigurableKeys_.
@@ -16065,8 +16065,8 @@ [[OwnPropertyKeys]] ( ): either a normal completion containing a List of pro
[[Call]] (
- _thisArgument_: an ECMAScript language value,
- _argumentsList_: a List of ECMAScript language values,
+ _thisArg_: an ECMAScript language value,
+ _argList_: a List of ECMAScript language values,
): either a normal completion containing an ECMAScript language value or a throw completion
A Proxy exotic object only has a [[Call]] internal method if the initial value of its [[ProxyTarget]] internal slot is an object that has a [[Call]] internal method.
@@ -16092,7 +16092,7 @@
[[Construct]] (
- _argumentsList_: a List of ECMAScript language values,
+ _argList_: a List of ECMAScript language values,
_newTarget_: a constructor,
): either a normal completion containing an Object or a throw completion
@@ -16108,8 +16108,8 @@
1. Assert: _handler_ is an Object.
1. Let _trap_ be ? GetMethod(_handler_, *"construct"*).
1. If _trap_ is *undefined*, then
- 1. Return ? Construct(_target_, _argumentsList_, _newTarget_).
- 1. Let _argArray_ be CreateArrayFromList(_argumentsList_).
+ 1. Return ? Construct(_target_, _argList_, _newTarget_).
+ 1. Let _argArray_ be CreateArrayFromList(_argList_).
1. Let _newObj_ be ? Call(_trap_, _handler_, « _target_, _argArray_, _newTarget_ »).
1. If _newObj_ is not an Object, throw a *TypeError* exception.
1. Return _newObj_.
@@ -16192,16 +16192,16 @@ Syntax
Static Semantics: UTF16EncodeCodePoint (
- _cp_: a Unicode code point,
+ _codePoint_: a Unicode code point,
): a String
- 1. Assert: 0 ≤ _cp_ ≤ 0x10FFFF.
- 1. If _cp_ ≤ 0xFFFF, return the String value consisting of the code unit whose numeric value is _cp_.
- 1. Let _cu1_ be the code unit whose numeric value is floor((_cp_ - 0x10000) / 0x400) + 0xD800.
- 1. Let _cu2_ be the code unit whose numeric value is ((_cp_ - 0x10000) modulo 0x400) + 0xDC00.
+ 1. Assert: 0 ≤ _codePoint_ ≤ 0x10FFFF.
+ 1. If _codePoint_ ≤ 0xFFFF, return the String value consisting of the code unit whose numeric value is _codePoint_.
+ 1. Let _cu1_ be the code unit whose numeric value is floor((_codePoint_ - 0x10000) / 0x400) + 0xD800.
+ 1. Let _cu2_ be the code unit whose numeric value is ((_codePoint_ - 0x10000) modulo 0x400) + 0xDC00.
1. Return the string-concatenation of _cu1_ and _cu2_.
@@ -16218,8 +16218,8 @@
1. Let _result_ be the empty String.
- 1. For each code point _cp_ of _text_, do
- 1. Set _result_ to the string-concatenation of _result_ and UTF16EncodeCodePoint(_cp_).
+ 1. For each code point _codePoint_ of _text_, do
+ 1. Set _result_ to the string-concatenation of _result_ and UTF16EncodeCodePoint(_codePoint_).
1. Return _result_.
@@ -16237,8 +16237,8 @@
1. Assert: _lead_ is a leading surrogate and _trail_ is a trailing surrogate.
- 1. Let _cp_ be (_lead_ - 0xD800) × 0x400 + (_trail_ - 0xDC00) + 0x10000.
- 1. Return the code point _cp_.
+ 1. Let _codePoint_ be (_lead_ - 0xD800) × 0x400 + (_trail_ - 0xDC00) + 0x10000.
+ 1. Return the code point _codePoint_.
@@ -16257,16 +16257,16 @@
1. Let _size_ be the length of _string_.
1. Assert: _position_ ≥ 0 and _position_ < _size_.
1. Let _first_ be the code unit at index _position_ within _string_.
- 1. Let _cp_ be the code point whose numeric value is the numeric value of _first_.
+ 1. Let _codePoint_ be the code point whose numeric value is the numeric value of _first_.
1. If _first_ is neither a leading surrogate nor a trailing surrogate, then
- 1. Return the Record { [[CodePoint]]: _cp_, [[CodeUnitCount]]: 1, [[IsUnpairedSurrogate]]: *false* }.
+ 1. Return the Record { [[CodePoint]]: _codePoint_, [[CodeUnitCount]]: 1, [[IsUnpairedSurrogate]]: *false* }.
1. If _first_ is a trailing surrogate or _position_ + 1 = _size_, then
- 1. Return the Record { [[CodePoint]]: _cp_, [[CodeUnitCount]]: 1, [[IsUnpairedSurrogate]]: *true* }.
+ 1. Return the Record { [[CodePoint]]: _codePoint_, [[CodeUnitCount]]: 1, [[IsUnpairedSurrogate]]: *true* }.
1. Let _second_ be the code unit at index _position_ + 1 within _string_.
1. If _second_ is not a trailing surrogate, then
- 1. Return the Record { [[CodePoint]]: _cp_, [[CodeUnitCount]]: 1, [[IsUnpairedSurrogate]]: *true* }.
- 1. Set _cp_ to UTF16SurrogatePairToCodePoint(_first_, _second_).
- 1. Return the Record { [[CodePoint]]: _cp_, [[CodeUnitCount]]: 2, [[IsUnpairedSurrogate]]: *false* }.
+ 1. Return the Record { [[CodePoint]]: _codePoint_, [[CodeUnitCount]]: 1, [[IsUnpairedSurrogate]]: *true* }.
+ 1. Set _codePoint_ to UTF16SurrogatePairToCodePoint(_first_, _second_).
+ 1. Return the Record { [[CodePoint]]: _codePoint_, [[CodeUnitCount]]: 2, [[IsUnpairedSurrogate]]: *false* }.
@@ -16285,9 +16285,9 @@
1. Let _size_ be the length of _string_.
1. Let _position_ be 0.
1. Repeat, while _position_ < _size_,
- 1. Let _cp_ be CodePointAt(_string_, _position_).
- 1. Append _cp_.[[CodePoint]] to _codePoints_.
- 1. Set _position_ to _position_ + _cp_.[[CodeUnitCount]].
+ 1. Let _codePoint_ be CodePointAt(_string_, _position_).
+ 1. Append _codePoint_.[[CodePoint]] to _codePoints_.
+ 1. Set _position_ to _position_ + _codePoint_.[[CodeUnitCount]].
1. Return _codePoints_.
@@ -16386,13 +16386,13 @@ Strict Mode Code
Static Semantics: IsStrict (
- _node_: a Parse Node,
+ _parseNode_: a Parse Node,
): a Boolean
- 1. If the source text matched by _node_ is strict mode code, return *true*.
+ 1. If the source text matched by _parseNode_ is strict mode code, return *true*.
1. Return *false*.
@@ -16794,14 +16794,14 @@ Static Semantics: IdentifierCodePoints ( ): a List of code points
IdentifierName :: IdentifierStart
- 1. Let _cp_ be the IdentifierCodePoint of |IdentifierStart|.
- 1. Return « _cp_ ».
+ 1. Let _codePoint_ be the IdentifierCodePoint of |IdentifierStart|.
+ 1. Return « _codePoint_ ».
IdentifierName :: IdentifierName IdentifierPart
1. Let _cps_ be the IdentifierCodePoints of the derived |IdentifierName|.
- 1. Let _cp_ be the IdentifierCodePoint of |IdentifierPart|.
- 1. Return the list-concatenation of _cps_ and « _cp_ ».
+ 1. Let _codePoint_ be the IdentifierCodePoint of |IdentifierPart|.
+ 1. Return the list-concatenation of _cps_ and « _codePoint_ ».
@@ -18472,10 +18472,10 @@
Elision : `,`
- 1. Let _len_ be _nextIndex_ + 1.
- 1. Perform ? Set(_array_, *"length"*, 𝔽(_len_), *true*).
- 1. NOTE: The above step throws if _len_ exceeds 232 - 1.
- 1. Return _len_.
+ 1. Let _length_ be _nextIndex_ + 1.
+ 1. Perform ? Set(_array_, *"length"*, 𝔽(_length_), *true*).
+ 1. NOTE: The above step throws if _length_ exceeds 232 - 1.
+ 1. Return _length_.
Elision : Elision `,`
@@ -18681,16 +18681,16 @@ Static Semantics: PropertyNameList ( ): a List of Strings
PropertyDefinitionList : PropertyDefinition
- 1. Let _propName_ be the PropName of |PropertyDefinition|.
- 1. If _propName_ is ~empty~, return a new empty List.
- 1. Return « _propName_ ».
+ 1. Let _propertyName_ be the PropName of |PropertyDefinition|.
+ 1. If _propertyName_ is ~empty~, return a new empty List.
+ 1. Return « _propertyName_ ».
PropertyDefinitionList : PropertyDefinitionList `,` PropertyDefinition
1. Let _list_ be the PropertyNameList of |PropertyDefinitionList|.
- 1. Let _propName_ be the PropName of |PropertyDefinition|.
- 1. If _propName_ is ~empty~, return _list_.
- 1. Return the list-concatenation of _list_ and « _propName_ ».
+ 1. Let _propertyName_ be the PropName of |PropertyDefinition|.
+ 1. If _propertyName_ is ~empty~, return _list_.
+ 1. Return the list-concatenation of _list_ and « _propertyName_ ».
@@ -18720,29 +18720,29 @@ Runtime Semantics: Evaluation
LiteralPropertyName : NumericLiteral
- 1. Let _nbr_ be the NumericValue of |NumericLiteral|.
- 1. Return ! ToString(_nbr_).
+ 1. Let _number_ be the NumericValue of |NumericLiteral|.
+ 1. Return ! ToString(_number_).
ComputedPropertyName : `[` AssignmentExpression `]`
1. Let _exprValue_ be ? Evaluation of |AssignmentExpression|.
- 1. Let _propName_ be ? GetValue(_exprValue_).
- 1. Return ? ToPropertyKey(_propName_).
+ 1. Let _propertyName_ be ? GetValue(_exprValue_).
+ 1. Return ? ToPropertyKey(_propertyName_).
Runtime Semantics: PropertyDefinitionEvaluation (
- _object_: an Object,
+ _obj_: an Object,
): either a normal completion containing ~unused~ or an abrupt completion
PropertyDefinitionList : PropertyDefinitionList `,` PropertyDefinition
- 1. Perform ? PropertyDefinitionEvaluation of |PropertyDefinitionList| with argument _object_.
- 1. Perform ? PropertyDefinitionEvaluation of |PropertyDefinition| with argument _object_.
+ 1. Perform ? PropertyDefinitionEvaluation of |PropertyDefinitionList| with argument _obj_.
+ 1. Perform ? PropertyDefinitionEvaluation of |PropertyDefinition| with argument _obj_.
1. Return ~unused~.
PropertyDefinition : `...` AssignmentExpression
@@ -18750,16 +18750,16 @@
1. Let _exprValue_ be ? Evaluation of |AssignmentExpression|.
1. Let _fromValue_ be ? GetValue(_exprValue_).
1. Let _excludedNames_ be a new empty List.
- 1. Perform ? CopyDataProperties(_object_, _fromValue_, _excludedNames_).
+ 1. Perform ? CopyDataProperties(_obj_, _fromValue_, _excludedNames_).
1. Return ~unused~.
PropertyDefinition : IdentifierReference
- 1. Let _propName_ be the StringValue of |IdentifierReference|.
+ 1. Let _propertyName_ be the StringValue of |IdentifierReference|.
1. Let _exprValue_ be ? Evaluation of |IdentifierReference|.
- 1. Let _propValue_ be ? GetValue(_exprValue_).
- 1. Assert: _object_ is an ordinary, extensible object with no non-configurable properties.
- 1. Perform ! CreateDataPropertyOrThrow(_object_, _propName_, _propValue_).
+ 1. Let _propertyValue_ be ? GetValue(_exprValue_).
+ 1. Assert: _obj_ is an ordinary, extensible object with no non-configurable properties.
+ 1. Perform ! CreateDataPropertyOrThrow(_obj_, _propertyName_, _propertyValue_).
1. Return ~unused~.
PropertyDefinition : PropertyName `:` AssignmentExpression
@@ -18772,21 +18772,21 @@
1. Else,
1. Let _isProtoSetter_ be *false*.
1. If IsAnonymousFunctionDefinition(|AssignmentExpression|) is *true* and _isProtoSetter_ is *false*, then
- 1. Let _propValue_ be ? NamedEvaluation of |AssignmentExpression| with argument _propertyKey_.
+ 1. Let _propertyValue_ be ? NamedEvaluation of |AssignmentExpression| with argument _propertyKey_.
1. Else,
1. Let _exprValueRef_ be ? Evaluation of |AssignmentExpression|.
- 1. Let _propValue_ be ? GetValue(_exprValueRef_).
+ 1. Let _propertyValue_ be ? GetValue(_exprValueRef_).
1. If _isProtoSetter_ is *true*, then
- 1. If _propValue_ is an Object or _propValue_ is *null*, then
- 1. Perform ! _object_.[[SetPrototypeOf]](_propValue_).
+ 1. If _propertyValue_ is an Object or _propertyValue_ is *null*, then
+ 1. Perform ! _obj_.[[SetPrototypeOf]](_propertyValue_).
1. Return ~unused~.
- 1. Assert: _object_ is an ordinary, extensible object with no non-configurable properties.
- 1. Perform ! CreateDataPropertyOrThrow(_object_, _propertyKey_, _propValue_).
+ 1. Assert: _obj_ is an ordinary, extensible object with no non-configurable properties.
+ 1. Perform ! CreateDataPropertyOrThrow(_obj_, _propertyKey_, _propertyValue_).
1. Return ~unused~.
PropertyDefinition : MethodDefinition
- 1. Perform ? MethodDefinitionEvaluation of |MethodDefinition| with arguments _object_ and *true*.
+ 1. Perform ? MethodDefinitionEvaluation of |MethodDefinition| with arguments _obj_ and *true*.
1. Return ~unused~.
@@ -18995,9 +18995,9 @@
1. Let _realm_ be the current Realm Record.
1. Let _templateRegistry_ be _realm_.[[TemplateMap]].
- 1. For each element _e_ of _templateRegistry_, do
- 1. If _e_.[[Site]] is the same Parse Node as _templateLiteral_, then
- 1. Return _e_.[[Array]].
+ 1. For each element _element_ of _templateRegistry_, do
+ 1. If _element_.[[Site]] is the same Parse Node as _templateLiteral_, then
+ 1. Return _element_.[[Array]].
1. Let _rawStrings_ be the TemplateStrings of _templateLiteral_ with argument *true*.
1. Assert: _rawStrings_ is a List of Strings.
1. Let _cookedStrings_ be the TemplateStrings of _templateLiteral_ with argument *false*.
@@ -19312,43 +19312,43 @@ Property Accessors
Runtime Semantics: Evaluation
MemberExpression : MemberExpression `[` Expression `]`
- 1. Let _baseReference_ be ? Evaluation of |MemberExpression|.
- 1. Let _baseValue_ be ? GetValue(_baseReference_).
+ 1. Let _baseRef_ be ? Evaluation of |MemberExpression|.
+ 1. Let _baseValue_ be ? GetValue(_baseRef_).
1. Let _strict_ be IsStrict(this |MemberExpression|).
1. Return ? EvaluatePropertyAccessWithExpressionKey(_baseValue_, |Expression|, _strict_).
MemberExpression : MemberExpression `.` IdentifierName
- 1. Let _baseReference_ be ? Evaluation of |MemberExpression|.
- 1. Let _baseValue_ be ? GetValue(_baseReference_).
+ 1. Let _baseRef_ be ? Evaluation of |MemberExpression|.
+ 1. Let _baseValue_ be ? GetValue(_baseRef_).
1. Let _strict_ be IsStrict(this |MemberExpression|).
1. Return EvaluatePropertyAccessWithIdentifierKey(_baseValue_, |IdentifierName|, _strict_).
MemberExpression : MemberExpression `.` PrivateIdentifier
- 1. Let _baseReference_ be ? Evaluation of |MemberExpression|.
- 1. Let _baseValue_ be ? GetValue(_baseReference_).
+ 1. Let _baseRef_ be ? Evaluation of |MemberExpression|.
+ 1. Let _baseValue_ be ? GetValue(_baseRef_).
1. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|.
1. Return MakePrivateReference(_baseValue_, _fieldNameString_).
CallExpression : CallExpression `[` Expression `]`
- 1. Let _baseReference_ be ? Evaluation of |CallExpression|.
- 1. Let _baseValue_ be ? GetValue(_baseReference_).
+ 1. Let _baseRef_ be ? Evaluation of |CallExpression|.
+ 1. Let _baseValue_ be ? GetValue(_baseRef_).
1. Let _strict_ be IsStrict(this |CallExpression|).
1. Return ? EvaluatePropertyAccessWithExpressionKey(_baseValue_, |Expression|, _strict_).
CallExpression : CallExpression `.` IdentifierName
- 1. Let _baseReference_ be ? Evaluation of |CallExpression|.
- 1. Let _baseValue_ be ? GetValue(_baseReference_).
+ 1. Let _baseRef_ be ? Evaluation of |CallExpression|.
+ 1. Let _baseValue_ be ? GetValue(_baseRef_).
1. Let _strict_ be IsStrict(this |CallExpression|).
1. Return EvaluatePropertyAccessWithIdentifierKey(_baseValue_, |IdentifierName|, _strict_).
CallExpression : CallExpression `.` PrivateIdentifier
- 1. Let _baseReference_ be ? Evaluation of |CallExpression|.
- 1. Let _baseValue_ be ? GetValue(_baseReference_).
+ 1. Let _baseRef_ be ? Evaluation of |CallExpression|.
+ 1. Let _baseValue_ be ? GetValue(_baseRef_).
1. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|.
1. Return MakePrivateReference(_baseValue_, _fieldNameString_).
@@ -19359,15 +19359,15 @@ Runtime Semantics: Evaluation
EvaluatePropertyAccessWithExpressionKey (
_baseValue_: an ECMAScript language value,
- _expression_: an |Expression| Parse Node,
+ _expr_: an |Expression| Parse Node,
_strict_: a Boolean,
): either a normal completion containing a Reference Record or an abrupt completion
- 1. Let _propertyNameReference_ be ? Evaluation of _expression_.
- 1. Let _propertyNameValue_ be ? GetValue(_propertyNameReference_).
+ 1. Let _propertyNameRef_ be ? Evaluation of _expr_.
+ 1. Let _propertyNameValue_ be ? GetValue(_propertyNameRef_).
1. NOTE: In most cases, ToPropertyKey will be performed on _propertyNameValue_ immediately after this step. However, in the case of `a[b] = c`, it will not be performed until after evaluation of `c`.
1. Return the Reference Record { [[Base]]: _baseValue_, [[ReferencedName]]: _propertyNameValue_, [[Strict]]: _strict_, [[ThisValue]]: ~empty~ }.
@@ -19407,20 +19407,20 @@ Runtime Semantics: Evaluation
EvaluateNew (
_constructExpr_: a |NewExpression| Parse Node or a |MemberExpression| Parse Node,
- _arguments_: ~empty~ or an |Arguments| Parse Node,
+ _argumentsNode_: ~empty~ or an |Arguments| Parse Node,
): either a normal completion containing an ECMAScript language value or an abrupt completion
1. Let _ref_ be ? Evaluation of _constructExpr_.
- 1. Let _constructor_ be ? GetValue(_ref_).
- 1. If _arguments_ is ~empty~, then
+ 1. Let _ctor_ be ? GetValue(_ref_).
+ 1. If _argumentsNode_ is ~empty~, then
1. Let _argList_ be a new empty List.
1. Else,
- 1. Let _argList_ be ? ArgumentListEvaluation of _arguments_.
- 1. If IsConstructor(_constructor_) is *false*, throw a *TypeError* exception.
- 1. Return ? Construct(_constructor_, _argList_).
+ 1. Let _argList_ be ? ArgumentListEvaluation of _argumentsNode_.
+ 1. If IsConstructor(_ctor_) is *false*, throw a *TypeError* exception.
+ 1. Return ? Construct(_ctor_, _argList_).
@@ -19435,19 +19435,19 @@ Runtime Semantics: Evaluation
1. Let _expr_ be the |CallMemberExpression| that is covered by |CoverCallExpressionAndAsyncArrowHead|.
1. Let _memberExpr_ be the |MemberExpression| of _expr_.
- 1. Let _arguments_ be the |Arguments| of _expr_.
+ 1. Let _args_ be the |Arguments| of _expr_.
1. Let _ref_ be ? Evaluation of _memberExpr_.
1. Let _func_ be ? GetValue(_ref_).
1. If _ref_ is a Reference Record, IsPropertyReference(_ref_) is *false*, and _ref_.[[ReferencedName]] is *"eval"*, then
1. If SameValue(_func_, %eval%) is *true*, then
- 1. Let _argList_ be ? ArgumentListEvaluation of _arguments_.
+ 1. Let _argList_ be ? ArgumentListEvaluation of _args_.
1. If _argList_ has no elements, return *undefined*.
1. Let _evalArg_ be the first element of _argList_.
1. If IsStrict(this |CallExpression|) is *true*, let _strictCaller_ be *true*; else let _strictCaller_ be *false*.
1. [id="step-callexpression-evaluation-direct-eval"] Return ? PerformEval(_evalArg_, _strictCaller_, *true*).
1. Let _thisCall_ be this |CallExpression|.
1. Let _tailCall_ be IsInTailPosition(_thisCall_).
- 1. Return ? EvaluateCall(_func_, _ref_, _arguments_, _tailCall_).
+ 1. Return ? EvaluateCall(_func_, _ref_, _args_, _tailCall_).
A |CallExpression| evaluation that executes step is a direct eval.
CallExpression : CallExpression Arguments
@@ -19464,24 +19464,24 @@ Runtime Semantics: Evaluation
EvaluateCall (
_func_: an ECMAScript language value,
- _ref_: an ECMAScript language value or a Reference Record,
- _arguments_: a Parse Node,
+ _thisValueRef_: an ECMAScript language value or a Reference Record,
+ _argumentListNode_: a Parse Node,
_tailPosition_: a Boolean,
): either a normal completion containing an ECMAScript language value or an abrupt completion
- 1. If _ref_ is a Reference Record, then
- 1. If IsPropertyReference(_ref_) is *true*, then
- 1. Let _thisValue_ be GetThisValue(_ref_).
+ 1. If _thisValueRef_ is a Reference Record, then
+ 1. If IsPropertyReference(_thisValueRef_) is *true*, then
+ 1. Let _thisValue_ be GetThisValue(_thisValueRef_).
1. Else,
- 1. Let _refEnv_ be _ref_.[[Base]].
+ 1. Let _refEnv_ be _thisValueRef_.[[Base]].
1. Assert: _refEnv_ is an Environment Record.
1. Let _thisValue_ be _refEnv_.WithBaseObject().
1. Else,
1. Let _thisValue_ be *undefined*.
- 1. Let _argList_ be ? ArgumentListEvaluation of _arguments_.
+ 1. Let _argList_ be ? ArgumentListEvaluation of _argumentListNode_.
1. If _func_ is not an Object, throw a *TypeError* exception.
1. If IsCallable(_func_) is *false*, throw a *TypeError* exception.
1. If _tailPosition_ is *true*, perform PrepareForTailCall().
@@ -19497,18 +19497,18 @@ The `super` Keyword
Runtime Semantics: Evaluation
SuperProperty : `super` `[` Expression `]`
- 1. Let _env_ be GetThisEnvironment().
- 1. Let _actualThis_ be ? _env_.GetThisBinding().
- 1. Let _propertyNameReference_ be ? Evaluation of |Expression|.
- 1. Let _propertyNameValue_ be ? GetValue(_propertyNameReference_).
+ 1. Let _envRecord_ be GetThisEnvironment().
+ 1. Let _actualThis_ be ? _envRecord_.GetThisBinding().
+ 1. Let _propertyNameRef_ be ? Evaluation of |Expression|.
+ 1. Let _propertyNameValue_ be ? GetValue(_propertyNameRef_).
1. Let _strict_ be IsStrict(this |SuperProperty|).
1. NOTE: In most cases, ToPropertyKey will be performed on _propertyNameValue_ immediately after this step. However, in the case of `super[b] = c`, it will not be performed until after evaluation of `c`.
1. Return MakeSuperPropertyReference(_actualThis_, _propertyNameValue_, _strict_).
SuperProperty : `super` `.` IdentifierName
- 1. Let _env_ be GetThisEnvironment().
- 1. Let _actualThis_ be ? _env_.GetThisBinding().
+ 1. Let _envRecord_ be GetThisEnvironment().
+ 1. Let _actualThis_ be ? _envRecord_.GetThisBinding().
1. Let _propertyKey_ be the StringValue of |IdentifierName|.
1. Let _strict_ be IsStrict(this |SuperProperty|).
1. Return MakeSuperPropertyReference(_actualThis_, _propertyKey_, _strict_).
@@ -19517,10 +19517,10 @@ Runtime Semantics: Evaluation
1. Let _newTarget_ be GetNewTarget().
1. Assert: _newTarget_ is a constructor.
- 1. Let _superConstructor_ be GetSuperConstructor().
+ 1. Let _superCtor_ be GetSuperConstructor().
1. Let _argList_ be ? ArgumentListEvaluation of |Arguments|.
- 1. If IsConstructor(_superConstructor_) is *false*, throw a *TypeError* exception.
- 1. Let _result_ be ? Construct(_superConstructor_, _argList_, _newTarget_).
+ 1. If IsConstructor(_superCtor_) is *false*, throw a *TypeError* exception.
+ 1. Let _result_ be ? Construct(_superCtor_, _argList_, _newTarget_).
1. Let _thisER_ be GetThisEnvironment().
1. Assert: _thisER_ is a Function Environment Record.
1. Perform ? BindThisValue(_thisER_, _result_).
@@ -19536,12 +19536,12 @@ GetSuperConstructor ( ): an ECMAScript language value
- 1. Let _envRec_ be GetThisEnvironment().
- 1. Assert: _envRec_ is a Function Environment Record.
- 1. Let _activeFunction_ be _envRec_.[[FunctionObject]].
- 1. Assert: _activeFunction_ is an ECMAScript function object.
- 1. Let _superConstructor_ be ! _activeFunction_.[[GetPrototypeOf]]().
- 1. Return _superConstructor_.
+ 1. Let _envRecord_ be GetThisEnvironment().
+ 1. Assert: _envRecord_ is a Function Environment Record.
+ 1. Let _activeFunc_ be _envRecord_.[[FunctionObject]].
+ 1. Assert: _activeFunc_ is an ECMAScript function object.
+ 1. Let _superCtor_ be ! _activeFunc_.[[GetPrototypeOf]]().
+ 1. Return _superCtor_.
@@ -19556,10 +19556,10 @@
- 1. Let _env_ be GetThisEnvironment().
- 1. Assert: _env_.HasSuperBinding() is *true*.
- 1. Assert: _env_ is a Function Environment Record.
- 1. Let _baseValue_ be GetSuperBase(_env_).
+ 1. Let _envRecord_ be GetThisEnvironment().
+ 1. Assert: _envRecord_.HasSuperBinding() is *true*.
+ 1. Assert: _envRecord_ is a Function Environment Record.
+ 1. Let _baseValue_ be GetSuperBase(_envRecord_).
1. Return the Reference Record { [[Base]]: _baseValue_, [[ReferencedName]]: _propertyKey_, [[Strict]]: _strict_, [[ThisValue]]: _actualThis_ }.
@@ -19648,33 +19648,33 @@ Runtime Semantics: Evaluation
MemberExpression OptionalChain
- 1. Let _baseReference_ be ? Evaluation of |MemberExpression|.
- 1. Let _baseValue_ be ? GetValue(_baseReference_).
+ 1. Let _baseRef_ be ? Evaluation of |MemberExpression|.
+ 1. Let _baseValue_ be ? GetValue(_baseRef_).
1. If _baseValue_ is either *undefined* or *null*, then
1. Return *undefined*.
- 1. Return ? ChainEvaluation of |OptionalChain| with arguments _baseValue_ and _baseReference_.
+ 1. Return ? ChainEvaluation of |OptionalChain| with arguments _baseValue_ and _baseRef_.
OptionalExpression :
CallExpression OptionalChain
- 1. Let _baseReference_ be ? Evaluation of |CallExpression|.
- 1. Let _baseValue_ be ? GetValue(_baseReference_).
+ 1. Let _baseRef_ be ? Evaluation of |CallExpression|.
+ 1. Let _baseValue_ be ? GetValue(_baseRef_).
1. If _baseValue_ is either *undefined* or *null*, then
1. Return *undefined*.
- 1. Return ? ChainEvaluation of |OptionalChain| with arguments _baseValue_ and _baseReference_.
+ 1. Return ? ChainEvaluation of |OptionalChain| with arguments _baseValue_ and _baseRef_.
OptionalExpression :
OptionalExpression OptionalChain
- 1. Let _baseReference_ be ? Evaluation of |OptionalExpression|.
- 1. Let _baseValue_ be ? GetValue(_baseReference_).
+ 1. Let _baseRef_ be ? Evaluation of |OptionalExpression|.
+ 1. Let _baseValue_ be ? GetValue(_baseRef_).
1. If _baseValue_ is either *undefined* or *null*, then
1. Return *undefined*.
- 1. Return ? ChainEvaluation of |OptionalChain| with arguments _baseValue_ and _baseReference_.
+ 1. Return ? ChainEvaluation of |OptionalChain| with arguments _baseValue_ and _baseRef_.
@@ -19682,7 +19682,7 @@ Runtime Semantics: Evaluation
Runtime Semantics: ChainEvaluation (
_baseValue_: an ECMAScript language value,
- _baseReference_: an ECMAScript language value or a Reference Record,
+ _baseRef_: an ECMAScript language value or a Reference Record,
): either a normal completion containing either an ECMAScript language value or a Reference Record, or an abrupt completion
|