From fe61c64ca66593fa9f9585ed4b05b57ac26a5c78 Mon Sep 17 00:00:00 2001 From: Ross Kirsling Date: Thu, 10 Oct 2019 21:00:41 -0700 Subject: [PATCH] Editorial: Represent strings as values. --- spec.html | 1738 ++++++++++++++++++++++++++--------------------------- 1 file changed, 869 insertions(+), 869 deletions(-) diff --git a/spec.html b/spec.html index 8475a55589a..3fa76ac9b33 100644 --- a/spec.html +++ b/spec.html @@ -162,14 +162,14 @@

ECMAScript Overview

Objects

-

Even though ECMAScript includes syntax for class definitions, ECMAScript objects are not fundamentally class-based such as those in C++, Smalltalk, or Java. Instead objects may be created in various ways including via a literal notation or via constructors which create objects and then execute code that initializes all or part of them by assigning initial values to their properties. Each constructor is a function that has a property named `"prototype"` that is used to implement prototype-based inheritance and shared properties. Objects are created by using constructors in new expressions; for example, `new Date(2009, 11)` creates a new Date object. Invoking a constructor without using new has consequences that depend on the constructor. For example, `Date()` produces a string representation of the current date and time rather than an object.

-

Every object created by a constructor has an implicit reference (called the object's prototype) to the value of its constructor's `"prototype"` property. Furthermore, a prototype may have a non-null implicit reference to its prototype, and so on; this is called the prototype chain. When a reference is made to a property in an object, that reference is to the property of that name in the first object in the prototype chain that contains a property of that name. In other words, first the object mentioned directly is examined for such a property; if that object contains the named property, that is the property to which the reference refers; if that object does not contain the named property, the prototype for that object is examined next; and so on.

+

Even though ECMAScript includes syntax for class definitions, ECMAScript objects are not fundamentally class-based such as those in C++, Smalltalk, or Java. Instead objects may be created in various ways including via a literal notation or via constructors which create objects and then execute code that initializes all or part of them by assigning initial values to their properties. Each constructor is a function that has a property named *"prototype"* that is used to implement prototype-based inheritance and shared properties. Objects are created by using constructors in new expressions; for example, `new Date(2009, 11)` creates a new Date object. Invoking a constructor without using new has consequences that depend on the constructor. For example, `Date()` produces a string representation of the current date and time rather than an object.

+

Every object created by a constructor has an implicit reference (called the object's prototype) to the value of its constructor's *"prototype"* property. Furthermore, a prototype may have a non-null implicit reference to its prototype, and so on; this is called the prototype chain. When a reference is made to a property in an object, that reference is to the property of that name in the first object in the prototype chain that contains a property of that name. In other words, first the object mentioned directly is examined for such a property; if that object contains the named property, that is the property to which the reference refers; if that object does not contain the named property, the prototype for that object is examined next; and so on.

An image of lots of boxes and arrows.

In a class-based object-oriented language, in general, state is carried by instances, methods are carried by classes, and inheritance is only of structure and behaviour. In ECMAScript, the state and methods are carried by objects, while structure, behaviour, and state are all inherited.

All objects that do not directly contain a particular property that their prototype contains share that property and its value. Figure 1 illustrates this:

-

CF is a constructor (and also an object). Five objects have been created by using `new` expressions: cf1, cf2, cf3, cf4, and cf5. Each of these objects contains properties named `"q1"` and `"q2"`. The dashed lines represent the implicit prototype relationship; so, for example, cf3's prototype is CFp. The constructor, CF, has two properties itself, named `"P1"` and `"P2"`, which are not visible to CFp, cf1, cf2, cf3, cf4, or cf5. The property named `"CFP1"` in CFp is shared by cf1, cf2, cf3, cf4, and cf5 (but not by CF), as are any properties found in CFp's implicit prototype chain that are not named `"q1"`, `"q2"`, or `"CFP1"`. Notice that there is no implicit prototype link between CF and CFp.

+

CF is a constructor (and also an object). Five objects have been created by using `new` expressions: cf1, cf2, cf3, cf4, and cf5. Each of these objects contains properties named *"q1"* and *"q2"*. The dashed lines represent the implicit prototype relationship; so, for example, cf3's prototype is CFp. The constructor, CF, has two properties itself, named *"P1"* and *"P2"*, which are not visible to CFp, cf1, cf2, cf3, cf4, or cf5. The property named *"CFP1"* in CFp is shared by cf1, cf2, cf3, cf4, and cf5 (but not by CF), as are any properties found in CFp's implicit prototype chain that are not named *"q1"*, *"q2"*, or *"CFP1"*. Notice that there is no implicit prototype link between CF and CFp.

Unlike most class-based object languages, properties can be added to objects dynamically by assigning values to them. That is, constructors are not required to name or assign values to all or any of the constructed object's properties. In the above diagram, one could add a new shared property for cf1, cf2, cf3, cf4, and cf5 by assigning a new value to the property in CFp.

Although ECMAScript objects are not inherently class-based, it is often convenient to define class-like abstractions based upon a common pattern of constructor functions, prototype objects, and methods. The ECMAScript built-in objects themselves follow such a class-like pattern. Beginning with ECMAScript 2015, the ECMAScript language includes syntactic class definitions that permit programmers to concisely define objects that conform to the same class-like abstraction pattern used by the built-in objects.

@@ -211,7 +211,7 @@

object

constructor

function object that creates and initializes objects

-

The value of a constructor's `"prototype"` property is a prototype object that is used to implement inheritance and shared properties.

+

The value of a constructor's *"prototype"* property is a prototype object that is used to implement inheritance and shared properties.

@@ -219,7 +219,7 @@

constructor

prototype

object that provides shared properties for other objects

-

When a constructor creates an object, that object implicitly references the constructor's `"prototype"` property for the purpose of resolving property references. The constructor's `"prototype"` property can be referenced by the program expression constructor.prototype, and properties added to an object's prototype are shared, through inheritance, by all objects sharing the prototype. Alternatively, a new object may be created with an explicitly specified prototype by using the `Object.create` built-in function.

+

When a constructor creates an object, that object implicitly references the constructor's *"prototype"* property for the purpose of resolving property references. The constructor's *"prototype"* property can be referenced by the program expression constructor.prototype, and properties added to an object's prototype are shared, through inheritance, by all objects sharing the prototype. Alternatively, a new object may be created with an explicitly specified prototype by using the `Object.create` built-in function.

@@ -730,7 +730,7 @@

Syntax-Directed Operations

1. Let _status_ be SyntaxDirectedOperation of |SomeNonTerminal|. 2. Let _someParseNode_ be the parse of some source text. 2. Perform SyntaxDirectedOperation of _someParseNode_. - 2. Perform SyntaxDirectedOperation of _someParseNode_ passing `"value"` as the argument. + 2. Perform SyntaxDirectedOperation of _someParseNode_ passing *"value"* as the argument.

Unless explicitly specified otherwise, all chain productions have an implicit definition for every operation that might be applied to that production's left-hand side nonterminal. The implicit definition simply reapplies the same operation with the same parameters, if any, to the chain production's sole right-hand side nonterminal and then returns the result. For example, assume that some algorithm has a step of the form: “Return the result of evaluating |Block|” and that there is a production:

@@ -752,11 +752,11 @@

Runtime Semantics

Implicit Completion Values

The algorithms of this specification often implicitly return Completion Records whose [[Type]] is ~normal~. Unless it is otherwise obvious from the context, an algorithm statement that returns a value that is not a Completion Record, such as:

- 1. Return `"Infinity"`. + 1. Return *"Infinity"*.

means the same thing as:

- 1. Return NormalCompletion(`"Infinity"`). + 1. Return NormalCompletion(*"Infinity"*).

However, if the value expression of a “return” statement is a Completion Record construction literal, the resulting Completion Record is returned. If the value expression is a call to an abstract operation, the “return” statement simply returns the Completion Record produced by the abstract operation.

The abstract operation Completion(_completionRecord_) is used to emphasize that a previously computed Completion Record is being returned. The Completion abstract operation takes a single argument, _completionRecord_, and performs the following steps:

@@ -974,7 +974,7 @@

Well-Known Symbols

@@asyncIterator - `"Symbol.asyncIterator"` + *"Symbol.asyncIterator"* A method that returns the default AsyncIterator for an object. Called by the semantics of the `for`-`await`-`of` statement. @@ -985,7 +985,7 @@

Well-Known Symbols

@@hasInstance - `"Symbol.hasInstance"` + *"Symbol.hasInstance"* A method that determines if a constructor object recognizes an object as one of the constructor's instances. Called by the semantics of the `instanceof` operator. @@ -996,7 +996,7 @@

Well-Known Symbols

@@isConcatSpreadable - `"Symbol.isConcatSpreadable"` + *"Symbol.isConcatSpreadable"* A Boolean valued property that if true indicates that an object should be flattened to its array elements by `Array.prototype.concat`. @@ -1007,7 +1007,7 @@

Well-Known Symbols

@@iterator - `"Symbol.iterator"` + *"Symbol.iterator"* A method that returns the default Iterator for an object. Called by the semantics of the for-of statement. @@ -1018,7 +1018,7 @@

Well-Known Symbols

@@match - `"Symbol.match"` + *"Symbol.match"* A regular expression method that matches the regular expression against a string. Called by the `String.prototype.match` method. @@ -1029,7 +1029,7 @@

Well-Known Symbols

@@matchAll - `"Symbol.matchAll"` + *"Symbol.matchAll"* A regular expression method that returns an iterator, that yields matches of the regular expression against a string. Called by the `String.prototype.matchAll` method. @@ -1040,7 +1040,7 @@

Well-Known Symbols

@@replace - `"Symbol.replace"` + *"Symbol.replace"* A regular expression method that replaces matched substrings of a string. Called by the `String.prototype.replace` method. @@ -1051,7 +1051,7 @@

Well-Known Symbols

@@search - `"Symbol.search"` + *"Symbol.search"* A regular expression method that returns the index within a string that matches the regular expression. Called by the `String.prototype.search` method. @@ -1062,7 +1062,7 @@

Well-Known Symbols

@@species - `"Symbol.species"` + *"Symbol.species"* A function valued property that is the constructor function that is used to create derived objects. @@ -1073,7 +1073,7 @@

Well-Known Symbols

@@split - `"Symbol.split"` + *"Symbol.split"* A regular expression method that splits a string at the indices that match the regular expression. Called by the `String.prototype.split` method. @@ -1084,7 +1084,7 @@

Well-Known Symbols

@@toPrimitive - `"Symbol.toPrimitive"` + *"Symbol.toPrimitive"* A method that converts an object to a corresponding primitive value. Called by the ToPrimitive abstract operation. @@ -1095,7 +1095,7 @@

Well-Known Symbols

@@toStringTag - `"Symbol.toStringTag"` + *"Symbol.toStringTag"* A String valued property that is used in the creation of the default string description of an object. Accessed by the built-in method `Object.prototype.toString`. @@ -1106,7 +1106,7 @@

Well-Known Symbols

@@unscopables - `"Symbol.unscopables"` + *"Symbol.unscopables"* An object valued property whose own and inherited property names are property names that are excluded from the `with` environment bindings of the associated object. @@ -1744,10 +1744,10 @@

Number::bitwiseOR ( _x_, _y_ )

Number::toString ( _x_ )

The abstract operation Number::toString converts a Number _x_ to String format as follows:

- 1. If _x_ is *NaN*, return the String `"NaN"`. - 1. If _x_ is *+0* or *-0*, return the String `"0"`. - 1. If _x_ is less than zero, return the string-concatenation of `"-"` and ! Number::toString(-_x_). - 1. If _x_ is *+∞*, return the String `"Infinity"`. + 1. If _x_ is *NaN*, return the String *"NaN"*. + 1. If _x_ is *+0* or *-0*, return the String *"0"*. + 1. If _x_ is less than zero, return the string-concatenation of *"-"* and ! Number::toString(-_x_). + 1. If _x_ is *+∞*, return the String *"Infinity"*. 1. Otherwise, let _n_, _k_, and _s_ be integers such that _k_ ≥ 1, 10_k_ - 1 ≤ _s_ < 10_k_, the Number value for ℝ(_s_) × 10ℝ(_n_) - ℝ(_k_) is _x_, and _k_ is as small as possible. Note that _k_ is the number of digits in the decimal representation of _s_, that _s_ is not divisible by 10, and that the least significant digit of _s_ is not necessarily uniquely determined by these criteria. 1. If _k_ ≤ _n_ ≤ 21, return the string-concatenation of: * the code units of the _k_ digits of the decimal representation of _s_ (in order, with no leading zeroes) @@ -1955,24 +1955,24 @@

BinaryXor ( _x_, _y_ )

BigIntBitwiseOp ( _op_, _x_, _y_ )

- 1. Assert: _op_ is `"&"`, `"|"`, or `"^"`. + 1. Assert: _op_ is *"&"*, *"|"*, or *"^"*. 1. Let _result_ be *0n*. 1. Let _shift_ be 0. 1. Repeat, until (_x_ = 0 or _x_ = -1) and (_y_ = 0 or _y_ = -1), 1. Let _xDigit_ be _x_ modulo 2. 1. Let _yDigit_ be _y_ modulo 2. - 1. If _op_ is `"&"`, set _result_ to _result_ + 2_shift_ × BinaryAnd(_xDigit_, _yDigit_). - 1. Else if _op_ is `"|"`, set _result_ to _result_ + 2_shift_ × BinaryOr(_xDigit_, _yDigit_). + 1. If _op_ is *"&"*, set _result_ to _result_ + 2_shift_ × BinaryAnd(_xDigit_, _yDigit_). + 1. Else if _op_ is *"|"*, set _result_ to _result_ + 2_shift_ × BinaryOr(_xDigit_, _yDigit_). 1. Else, - 1. Assert: _op_ is `"^"`. + 1. Assert: _op_ is *"^"*. 1. Set _result_ to _result_ + 2_shift_ × BinaryXor(_xDigit_, _yDigit_). 1. Set _shift_ to _shift_ + 1. 1. Set _x_ to (_x_ - _xDigit_) / 2. 1. Set _y_ to (_y_ - _yDigit_) / 2. - 1. If _op_ is `"&"`, let _tmp_ be BinaryAnd(_x_ modulo 2, _y_ modulo 2). - 1. Else if _op_ is `"|"`, let _tmp_ be BinaryOr(_x_ modulo 2, _y_ modulo 2). + 1. If _op_ is *"&"*, let _tmp_ be BinaryAnd(_x_ modulo 2, _y_ modulo 2). + 1. Else if _op_ is *"|"*, let _tmp_ be BinaryOr(_x_ modulo 2, _y_ modulo 2). 1. Else, - 1. Assert: _op_ is `"^"`. + 1. Assert: _op_ is *"^"*. 1. Let _tmp_ be BinaryXor(_x_ modulo 2, _y_ modulo 2). 1. If _tmp_ ≠ 0, then 1. Set _result_ to _result_ - 2_shift_. NOTE: This extends the sign. @@ -1983,21 +1983,21 @@

BigIntBitwiseOp ( _op_, _x_, _y_ )

BigInt::bitwiseAND ( _x_, _y_ )

- 1. Return BigIntBitwiseOp(`"&"`, _x_, _y_). + 1. Return BigIntBitwiseOp(*"&"*, _x_, _y_).

BigInt::bitwiseXOR ( _x_, _y_ )

- 1. Return BigIntBitwiseOp(`"^"`, _x_, _y_). + 1. Return BigIntBitwiseOp(*"^"*, _x_, _y_).

BigInt::bitwiseOR ( _x_, _y_ )

- 1. Return BigIntBitwiseOp(`"|"`, _x_, _y_). + 1. Return BigIntBitwiseOp(*"|"*, _x_, _y_).
@@ -2005,7 +2005,7 @@

BigInt::bitwiseOR ( _x_, _y_ )

BigInt::toString ( _x_ )

The abstract operation BigInt::toString converts a BigInt _x_ to String format as follows:

- 1. If _x_ is less than zero, return the string-concatenation of the String `"-"` and ! BigInt::toString(-_x_). + 1. If _x_ is less than zero, return the string-concatenation of the String *"-"* and ! BigInt::toString(-_x_). 1. Return the String value consisting of the code units of the digits of the decimal representation of _x_.
@@ -2644,7 +2644,7 @@

Well-Known Intrinsic Objects

`ArrayBuffer.prototype` - The initial value of the `"prototype"` data property of %ArrayBuffer%; i.e., %ArrayBuffer.prototype% + The initial value of the *"prototype"* data property of %ArrayBuffer%; i.e., %ArrayBuffer.prototype% @@ -2665,7 +2665,7 @@

Well-Known Intrinsic Objects

`Array.prototype` - The initial value of the `"prototype"` data property of %Array% (); i.e., %Array.prototype% + The initial value of the *"prototype"* data property of %Array% (); i.e., %Array.prototype% @@ -2676,7 +2676,7 @@

Well-Known Intrinsic Objects

`Array.prototype.entries` - The initial value of the `"entries"` data property of %Array.prototype% (); i.e., %Array.prototype.entries% + The initial value of the *"entries"* data property of %Array.prototype% (); i.e., %Array.prototype.entries% @@ -2687,7 +2687,7 @@

Well-Known Intrinsic Objects

`Array.prototype.forEach` - The initial value of the `"forEach"` data property of %Array.prototype% (); i.e., %Array.prototype.forEach% + The initial value of the *"forEach"* data property of %Array.prototype% (); i.e., %Array.prototype.forEach% @@ -2698,7 +2698,7 @@

Well-Known Intrinsic Objects

`Array.prototype.keys` - The initial value of the `"keys"` data property of %Array.prototype% (); i.e., %Array.prototype.keys% + The initial value of the *"keys"* data property of %Array.prototype% (); i.e., %Array.prototype.keys% @@ -2709,7 +2709,7 @@

Well-Known Intrinsic Objects

`Array.prototype.values` - The initial value of the `"values"` data property of %Array.prototype% (); i.e., %Array.prototype.values% + The initial value of the *"values"* data property of %Array.prototype% (); i.e., %Array.prototype.values% @@ -2739,7 +2739,7 @@

Well-Known Intrinsic Objects

- The initial value of the `"prototype"` data property of %AsyncFunction%; i.e., %AsyncFunction.prototype% + The initial value of the *"prototype"* data property of %AsyncFunction%; i.e., %AsyncFunction.prototype% @@ -2749,7 +2749,7 @@

Well-Known Intrinsic Objects

- The initial value of the `"prototype"` property of %AsyncGeneratorFunction%; i.e., %AsyncGeneratorFunction.prototype% + The initial value of the *"prototype"* property of %AsyncGeneratorFunction%; i.e., %AsyncGeneratorFunction.prototype% @@ -2769,7 +2769,7 @@

Well-Known Intrinsic Objects

- The initial value of the `"prototype"` property of %AsyncGenerator%; i.e., %AsyncGenerator.prototype% + The initial value of the *"prototype"* property of %AsyncGenerator%; i.e., %AsyncGenerator.prototype% @@ -2845,7 +2845,7 @@

Well-Known Intrinsic Objects

`Boolean.prototype` - The initial value of the `"prototype"` data property of %Boolean% (); i.e., %Boolean.prototype% + The initial value of the *"prototype"* data property of %Boolean% (); i.e., %Boolean.prototype% @@ -2867,7 +2867,7 @@

Well-Known Intrinsic Objects

`DataView.prototype` - The initial value of the `"prototype"` data property of %DataView%; i.e., %DataView.prototype% + The initial value of the *"prototype"* data property of %DataView%; i.e., %DataView.prototype% @@ -2889,7 +2889,7 @@

Well-Known Intrinsic Objects

`Date.prototype` - The initial value of the `"prototype"` data property of %Date%.; i.e., %Date.prototype% + The initial value of the *"prototype"* data property of %Date%.; i.e., %Date.prototype% @@ -2955,7 +2955,7 @@

Well-Known Intrinsic Objects

`Error.prototype` - The initial value of the `"prototype"` data property of %Error%; i.e., %Error.prototype% + The initial value of the *"prototype"* data property of %Error%; i.e., %Error.prototype% @@ -2988,7 +2988,7 @@

Well-Known Intrinsic Objects

`EvalError.prototype` - The initial value of the `"prototype"` data property of %EvalError%; i.e., %EvalError.prototype% + The initial value of the *"prototype"* data property of %EvalError%; i.e., %EvalError.prototype% @@ -3010,7 +3010,7 @@

Well-Known Intrinsic Objects

`Float32Array.prototype` - The initial value of the `"prototype"` data property of %Float32Array%; i.e., %Float32Array.prototype% + The initial value of the *"prototype"* data property of %Float32Array%; i.e., %Float32Array.prototype% @@ -3032,7 +3032,7 @@

Well-Known Intrinsic Objects

`Float64Array.prototype` - The initial value of the `"prototype"` data property of %Float64Array%; i.e., %Float64Array.prototype% + The initial value of the *"prototype"* data property of %Float64Array%; i.e., %Float64Array.prototype% @@ -3054,7 +3054,7 @@

Well-Known Intrinsic Objects

`Function.prototype` - The initial value of the `"prototype"` data property of %Function%; i.e., %Function.prototype% + The initial value of the *"prototype"* data property of %Function%; i.e., %Function.prototype% @@ -3064,7 +3064,7 @@

Well-Known Intrinsic Objects

- The initial value of the `"prototype"` data property of %GeneratorFunction% + The initial value of the *"prototype"* data property of %GeneratorFunction% @@ -3084,7 +3084,7 @@

Well-Known Intrinsic Objects

- The initial value of the `"prototype"` data property of %Generator%; i.e., %Generator.prototype% + The initial value of the *"prototype"* data property of %Generator%; i.e., %Generator.prototype% @@ -3106,7 +3106,7 @@

Well-Known Intrinsic Objects

`Int8Array.prototype` - The initial value of the `"prototype"` data property of %Int8Array%; i.e., %Int8Array.prototype% + The initial value of the *"prototype"* data property of %Int8Array%; i.e., %Int8Array.prototype% @@ -3128,7 +3128,7 @@

Well-Known Intrinsic Objects

`Int16Array.prototype` - The initial value of the `"prototype"` data property of %Int16Array%; i.e., %Int16Array.prototype% + The initial value of the *"prototype"* data property of %Int16Array%; i.e., %Int16Array.prototype% @@ -3150,7 +3150,7 @@

Well-Known Intrinsic Objects

`Int32Array.prototype` - The initial value of the `"prototype"` data property of %Int32Array%; i.e., %Int32Array.prototype% + The initial value of the *"prototype"* data property of %Int32Array%; i.e., %Int32Array.prototype% @@ -3204,7 +3204,7 @@

Well-Known Intrinsic Objects

`JSON.parse` - The initial value of the `"parse"` data property of %JSON%; i.e., %JSON.parse% + The initial value of the *"parse"* data property of %JSON%; i.e., %JSON.parse% @@ -3215,7 +3215,7 @@

Well-Known Intrinsic Objects

`JSON.stringify` - The initial value of the `"stringify"` data property of %JSON%; i.e., %JSON.stringify% + The initial value of the *"stringify"* data property of %JSON%; i.e., %JSON.stringify% @@ -3247,7 +3247,7 @@

Well-Known Intrinsic Objects

`Map.prototype` - The initial value of the `"prototype"` data property of %Map%; i.e., %Map.prototype% + The initial value of the *"prototype"* data property of %Map%; i.e., %Map.prototype% @@ -3280,7 +3280,7 @@

Well-Known Intrinsic Objects

`Number.prototype` - The initial value of the `"prototype"` data property of %Number%; i.e., %Number.prototype% + The initial value of the *"prototype"* data property of %Number%; i.e., %Number.prototype% @@ -3302,7 +3302,7 @@

Well-Known Intrinsic Objects

`Object.prototype` - The initial value of the `"prototype"` data property of %Object% (); i.e., %Object.prototype% + The initial value of the *"prototype"* data property of %Object% (); i.e., %Object.prototype% @@ -3313,7 +3313,7 @@

Well-Known Intrinsic Objects

`Object.prototype.toString` - The initial value of the `"toString"` data property of %Object.prototype% (); i.e., %Object.prototype.toString% + The initial value of the *"toString"* data property of %Object.prototype% (); i.e., %Object.prototype.toString% @@ -3324,7 +3324,7 @@

Well-Known Intrinsic Objects

`Object.prototype.valueOf` - The initial value of the `"valueOf"` data property of %Object.prototype% (); i.e., %Object.prototype.valueOf% + The initial value of the *"valueOf"* data property of %Object.prototype% (); i.e., %Object.prototype.valueOf% @@ -3368,7 +3368,7 @@

Well-Known Intrinsic Objects

`Promise.prototype` - The initial value of the `"prototype"` data property of %Promise%; i.e., %Promise.prototype% + The initial value of the *"prototype"* data property of %Promise%; i.e., %Promise.prototype% @@ -3379,7 +3379,7 @@

Well-Known Intrinsic Objects

`Promise.prototype.then` - The initial value of the `"then"` data property of %Promise.prototype% (); i.e., %Promise.prototype.then% + The initial value of the *"then"* data property of %Promise.prototype% (); i.e., %Promise.prototype.then% @@ -3390,7 +3390,7 @@

Well-Known Intrinsic Objects

`Promise.all` - The initial value of the `"all"` data property of %Promise% (); i.e., %Promise.all% + The initial value of the *"all"* data property of %Promise% (); i.e., %Promise.all% @@ -3401,7 +3401,7 @@

Well-Known Intrinsic Objects

`Promise.reject` - The initial value of the `"reject"` data property of %Promise% (); i.e., %Promise.reject% + The initial value of the *"reject"* data property of %Promise% (); i.e., %Promise.reject% @@ -3412,7 +3412,7 @@

Well-Known Intrinsic Objects

`Promise.resolve` - The initial value of the `"resolve"` data property of %Promise% (); i.e., %Promise.resolve% + The initial value of the *"resolve"* data property of %Promise% (); i.e., %Promise.resolve% @@ -3445,7 +3445,7 @@

Well-Known Intrinsic Objects

`RangeError.prototype` - The initial value of the `"prototype"` data property of %RangeError%; i.e., %RangeError.prototype% + The initial value of the *"prototype"* data property of %RangeError%; i.e., %RangeError.prototype% @@ -3467,7 +3467,7 @@

Well-Known Intrinsic Objects

`ReferenceError.prototype` - The initial value of the `"prototype"` data property of %ReferenceError%; i.e., %ReferenceError.prototype% + The initial value of the *"prototype"* data property of %ReferenceError%; i.e., %ReferenceError.prototype% @@ -3500,7 +3500,7 @@

Well-Known Intrinsic Objects

`RegExp.prototype` - The initial value of the `"prototype"` data property of %RegExp%; i.e., %RegExp.prototype% + The initial value of the *"prototype"* data property of %RegExp%; i.e., %RegExp.prototype% @@ -3542,7 +3542,7 @@

Well-Known Intrinsic Objects

`Set.prototype` - The initial value of the `"prototype"` data property of %Set%; i.e., %Set.prototype% + The initial value of the *"prototype"* data property of %Set%; i.e., %Set.prototype% @@ -3564,7 +3564,7 @@

Well-Known Intrinsic Objects

`SharedArrayBuffer.prototype` - The initial value of the `"prototype"` data property of %SharedArrayBuffer%; i.e., %SharedArrayBuffer.prototype% + The initial value of the *"prototype"* data property of %SharedArrayBuffer%; i.e., %SharedArrayBuffer.prototype% @@ -3596,7 +3596,7 @@

Well-Known Intrinsic Objects

`String.prototype` - The initial value of the `"prototype"` data property of %String%; i.e., %String.prototype% + The initial value of the *"prototype"* data property of %String%; i.e., %String.prototype% @@ -3618,7 +3618,7 @@

Well-Known Intrinsic Objects

`Symbol.prototype` - The initial value of the `"prototype"` data property of %Symbol% (); i.e., %Symbol.prototype% + The initial value of the *"prototype"* data property of %Symbol% (); i.e., %Symbol.prototype% @@ -3640,7 +3640,7 @@

Well-Known Intrinsic Objects

`SyntaxError.prototype` - The initial value of the `"prototype"` data property of %SyntaxError%; i.e., %SyntaxError.prototype% + The initial value of the *"prototype"* data property of %SyntaxError%; i.e., %SyntaxError.prototype% @@ -3670,7 +3670,7 @@

Well-Known Intrinsic Objects

- The initial value of the `"prototype"` data property of %TypedArray%; i.e., %TypedArray.prototype% + The initial value of the *"prototype"* data property of %TypedArray%; i.e., %TypedArray.prototype% @@ -3692,7 +3692,7 @@

Well-Known Intrinsic Objects

`TypeError.prototype` - The initial value of the `"prototype"` data property of %TypeError%; i.e., %TypeError.prototype% + The initial value of the *"prototype"* data property of %TypeError%; i.e., %TypeError.prototype% @@ -3714,7 +3714,7 @@

Well-Known Intrinsic Objects

`Uint8Array.prototype` - The initial value of the `"prototype"` data property of %Uint8Array%; i.e., %Uint8Array.prototype% + The initial value of the *"prototype"* data property of %Uint8Array%; i.e., %Uint8Array.prototype% @@ -3736,7 +3736,7 @@

Well-Known Intrinsic Objects

`Uint8ClampedArray.prototype` - The initial value of the `"prototype"` data property of %Uint8ClampedArray%; i.e., %Uint8ClampedArray.prototype% + The initial value of the *"prototype"* data property of %Uint8ClampedArray%; i.e., %Uint8ClampedArray.prototype% @@ -3758,7 +3758,7 @@

Well-Known Intrinsic Objects

`Uint16Array.prototype` - The initial value of the `"prototype"` data property of %Uint16Array%; i.e., %Uint16Array.prototype% + The initial value of the *"prototype"* data property of %Uint16Array%; i.e., %Uint16Array.prototype% @@ -3780,7 +3780,7 @@

Well-Known Intrinsic Objects

`Uint32Array.prototype` - The initial value of the `"prototype"` data property of %Uint32Array%; i.e., %Uint32Array.prototype% + The initial value of the *"prototype"* data property of %Uint32Array%; i.e., %Uint32Array.prototype% @@ -3802,7 +3802,7 @@

Well-Known Intrinsic Objects

`URIError.prototype` - The initial value of the `"prototype"` data property of %URIError%; i.e., %URIError.prototype% + The initial value of the *"prototype"* data property of %URIError%; i.e., %URIError.prototype% @@ -3824,7 +3824,7 @@

Well-Known Intrinsic Objects

`WeakMap.prototype` - The initial value of the `"prototype"` data property of %WeakMap%; i.e., %WeakMap.prototype% + The initial value of the *"prototype"* data property of %WeakMap%; i.e., %WeakMap.prototype% @@ -3846,7 +3846,7 @@

Well-Known Intrinsic Objects

`WeakSet.prototype` - The initial value of the `"prototype"` data property of %WeakSet%; i.e., %WeakSet.prototype% + The initial value of the *"prototype"* data property of %WeakSet%; i.e., %WeakSet.prototype% @@ -4021,7 +4021,7 @@

Await Fulfilled Functions

1. Return *undefined*.
-

The `"length"` property of an Await fulfilled function is 1.

+

The *"length"* property of an Await fulfilled function is 1.

@@ -4042,7 +4042,7 @@

Await Rejected Functions

1. Return *undefined*. -

The `"length"` property of an Await rejected function is 1.

+

The *"length"* property of an Await rejected function is 1.

@@ -4263,17 +4263,17 @@

FromPropertyDescriptor ( _Desc_ )

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

ToPropertyDescriptor ( _Obj_ )

1. If Type(_Obj_) is not Object, throw a *TypeError* exception. 1. Let _desc_ be a new Property Descriptor that initially has no fields. - 1. Let _hasEnumerable_ be ? HasProperty(_Obj_, `"enumerable"`). + 1. Let _hasEnumerable_ be ? HasProperty(_Obj_, *"enumerable"*). 1. If _hasEnumerable_ is *true*, then - 1. Let _enumerable_ be ! ToBoolean(? Get(_Obj_, `"enumerable"`)). + 1. Let _enumerable_ be ! ToBoolean(? Get(_Obj_, *"enumerable"*)). 1. Set _desc_.[[Enumerable]] to _enumerable_. - 1. Let _hasConfigurable_ be ? HasProperty(_Obj_, `"configurable"`). + 1. Let _hasConfigurable_ be ? HasProperty(_Obj_, *"configurable"*). 1. If _hasConfigurable_ is *true*, then - 1. Let _configurable_ be ! ToBoolean(? Get(_Obj_, `"configurable"`)). + 1. Let _configurable_ be ! ToBoolean(? Get(_Obj_, *"configurable"*)). 1. Set _desc_.[[Configurable]] to _configurable_. - 1. Let _hasValue_ be ? HasProperty(_Obj_, `"value"`). + 1. Let _hasValue_ be ? HasProperty(_Obj_, *"value"*). 1. If _hasValue_ is *true*, then - 1. Let _value_ be ? Get(_Obj_, `"value"`). + 1. Let _value_ be ? Get(_Obj_, *"value"*). 1. Set _desc_.[[Value]] to _value_. - 1. Let _hasWritable_ be ? HasProperty(_Obj_, `"writable"`). + 1. Let _hasWritable_ be ? HasProperty(_Obj_, *"writable"*). 1. If _hasWritable_ is *true*, then - 1. Let _writable_ be ! ToBoolean(? Get(_Obj_, `"writable"`)). + 1. Let _writable_ be ! ToBoolean(? Get(_Obj_, *"writable"*)). 1. Set _desc_.[[Writable]] to _writable_. - 1. Let _hasGet_ be ? HasProperty(_Obj_, `"get"`). + 1. Let _hasGet_ be ? HasProperty(_Obj_, *"get"*). 1. If _hasGet_ is *true*, then - 1. Let _getter_ be ? Get(_Obj_, `"get"`). + 1. Let _getter_ be ? Get(_Obj_, *"get"*). 1. If IsCallable(_getter_) is *false* and _getter_ is not *undefined*, throw a *TypeError* exception. 1. Set _desc_.[[Get]] to _getter_. - 1. Let _hasSet_ be ? HasProperty(_Obj_, `"set"`). + 1. Let _hasSet_ be ? HasProperty(_Obj_, *"set"*). 1. If _hasSet_ is *true*, then - 1. Let _setter_ be ? Get(_Obj_, `"set"`). + 1. Let _setter_ be ? Get(_Obj_, *"set"*). 1. If IsCallable(_setter_) is *false* and _setter_ is not *undefined*, throw a *TypeError* exception. 1. Set _desc_.[[Set]] to _setter_. 1. If _desc_.[[Get]] is present or _desc_.[[Set]] is present, then @@ -4426,17 +4426,17 @@

ToPrimitive ( _input_ [ , _PreferredType_ ] )

1. Assert: _input_ is an ECMAScript language value. 1. If Type(_input_) is Object, then - 1. If _PreferredType_ is not present, let _hint_ be `"default"`. - 1. Else if _PreferredType_ is hint String, let _hint_ be `"string"`. + 1. If _PreferredType_ is not present, let _hint_ be *"default"*. + 1. Else if _PreferredType_ is hint String, let _hint_ be *"string"*. 1. Else, 1. Assert: _PreferredType_ is hint Number. - 1. Let _hint_ be `"number"`. + 1. Let _hint_ be *"number"*. 1. Let _exoticToPrim_ be ? GetMethod(_input_, @@toPrimitive). 1. If _exoticToPrim_ is not *undefined*, then 1. Let _result_ be ? Call(_exoticToPrim_, _input_, « _hint_ »). 1. If Type(_result_) is not Object, return _result_. 1. Throw a *TypeError* exception. - 1. If _hint_ is `"default"`, set _hint_ to `"number"`. + 1. If _hint_ is *"default"*, set _hint_ to *"number"*. 1. Return ? OrdinaryToPrimitive(_input_, _hint_). 1. Return _input_. @@ -4449,11 +4449,11 @@

OrdinaryToPrimitive ( _O_, _hint_ )

When the abstract operation OrdinaryToPrimitive is called with arguments _O_ and _hint_, the following steps are taken:

1. Assert: Type(_O_) is Object. - 1. Assert: Type(_hint_) is String and its value is either `"string"` or `"number"`. - 1. If _hint_ is `"string"`, then - 1. Let _methodNames_ be « `"toString"`, `"valueOf"` ». + 1. Assert: Type(_hint_) is String and its value is either *"string"* or *"number"*. + 1. If _hint_ is *"string"*, then + 1. Let _methodNames_ be « *"toString"*, *"valueOf"* ». 1. Else, - 1. Let _methodNames_ be « `"valueOf"`, `"toString"` ». + 1. Let _methodNames_ be « *"valueOf"*, *"toString"* ». 1. For each _name_ in _methodNames_ in List order, do 1. Let _method_ be ? Get(_O_, _name_). 1. If IsCallable(_method_) is *true*, then @@ -4758,7 +4758,7 @@

Runtime Semantics: MV

The MV of StrUnsignedDecimalLiteral ::: DecimalDigits ExponentPart is the MV of |DecimalDigits| times 10_e_, where _e_ is the MV of |ExponentPart|. -

Once the exact MV for a String numeric literal has been determined, it is then rounded to a value of the Number type. If the MV is 0, then the rounded value is *+0* unless the first non white space code point in the String numeric literal is `"-"`, in which case the rounded value is *-0*. Otherwise, the rounded value must be the Number value for the MV (in the sense defined in ), unless the literal includes a |StrUnsignedDecimalLiteral| and the literal has more than 20 significant digits, in which case the Number value may be either the Number value for the MV of a literal produced by replacing each significant digit after the 20th with a 0 digit or the Number value for the MV of a literal produced by replacing each significant digit after the 20th with a 0 digit and then incrementing the literal at the 20th digit position. A digit is significant if it is not part of an |ExponentPart| and

+

Once the exact MV for a String numeric literal has been determined, it is then rounded to a value of the Number type. If the MV is 0, then the rounded value is *+0* unless the first non white space code point in the String numeric literal is *"-"*, in which case the rounded value is *-0*. Otherwise, the rounded value must be the Number value for the MV (in the sense defined in ), unless the literal includes a |StrUnsignedDecimalLiteral| and the literal has more than 20 significant digits, in which case the Number value may be either the Number value for the MV of a literal produced by replacing each significant digit after the 20th with a 0 digit or the Number value for the MV of a literal produced by replacing each significant digit after the 20th with a 0 digit and then incrementing the literal at the 20th digit position. A digit is significant if it is not part of an |ExponentPart| and

  • it is not `0`; or @@ -5046,7 +5046,7 @@

    ToString ( _argument_ )

    Undefined - Return `"undefined"`. + Return *"undefined"*. @@ -5054,7 +5054,7 @@

    ToString ( _argument_ )

    Null - Return `"null"`. + Return *"null"*. @@ -5062,8 +5062,8 @@

    ToString ( _argument_ )

    Boolean -

    If _argument_ is *true*, return `"true"`.

    -

    If _argument_ is *false*, return `"false"`.

    +

    If _argument_ is *true*, return *"true"*.

    +

    If _argument_ is *false*, return *"false"*.

    @@ -5221,10 +5221,10 @@

    ToLength ( _argument_ )

    CanonicalNumericIndexString ( _argument_ )

    -

    The abstract operation CanonicalNumericIndexString returns _argument_ converted to a numeric value if it is a String representation of a Number that would be produced by ToString, or the string `"-0"`. Otherwise, it returns *undefined*. This abstract operation functions as follows:

    +

    The abstract operation CanonicalNumericIndexString returns _argument_ converted to a numeric value if it is a String representation of a Number that would be produced by ToString, or the string *"-0"*. Otherwise, it returns *undefined*. This abstract operation functions as follows:

    1. Assert: Type(_argument_) is String. - 1. If _argument_ is `"-0"`, return *-0*. + 1. If _argument_ is *"-0"*, return *-0*. 1. Let _n_ be ! ToNumber(_argument_). 1. If SameValue(! ToString(_n_), _argument_) is *false*, return *undefined*. 1. Return _n_. @@ -5776,10 +5776,10 @@

    CreateArrayFromList ( _elements_ )

    LengthOfArrayLike ( _obj_ )

    -

    The abstract operation LengthOfArrayLike returns the value of the `"length"` property of an array-like object.

    +

    The abstract operation LengthOfArrayLike returns the value of the *"length"* property of an array-like object.

    1. Assert: Type(_obj_) is Object. - 1. Return ? ToLength(? Get(_obj_, `"length"`)). + 1. Return ? ToLength(? Get(_obj_, *"length"*)).

    An array-like object is any object for which this operation returns an integer rather than an abrupt completion.

    @@ -5830,7 +5830,7 @@

    OrdinaryHasInstance ( _C_, _O_ )

    1. Let _BC_ be _C_.[[BoundTargetFunction]]. 1. Return ? InstanceofOperator(_O_, _BC_). 1. If Type(_O_) is not Object, return *false*. - 1. Let _P_ be ? Get(_C_, `"prototype"`). + 1. Let _P_ be ? Get(_C_, *"prototype"*). 1. If Type(_P_) is not Object, throw a *TypeError* exception. 1. Repeat, 1. Set _O_ to ? _O_.[[GetPrototypeOf]](). @@ -5844,7 +5844,7 @@

    SpeciesConstructor ( _O_, _defaultConstructor_ )

    The abstract operation SpeciesConstructor is used to retrieve the constructor that should be used to create new objects that are derived from the argument object _O_. The _defaultConstructor_ argument is the constructor to use if a constructor @@species property cannot be found starting from _O_. This abstract operation performs the following steps:

    1. Assert: Type(_O_) is Object. - 1. Let _C_ be ? Get(_O_, `"constructor"`). + 1. Let _C_ be ? Get(_O_, *"constructor"*). 1. If _C_ is *undefined*, return _defaultConstructor_. 1. If Type(_C_) is not Object, throw a *TypeError* exception. 1. Let _S_ be ? Get(_C_, @@species). @@ -5947,7 +5947,7 @@

    GetIterator ( _obj_ [ , _hint_ [ , _method_ ] ] )

    1. Otherwise, set _method_ to ? GetMethod(_obj_, @@iterator). 1. Let _iterator_ be ? Call(_method_, _obj_). 1. If Type(_iterator_) is not Object, throw a *TypeError* exception. - 1. Let _nextMethod_ be ? GetV(_iterator_, `"next"`). + 1. Let _nextMethod_ be ? GetV(_iterator_, *"next"*). 1. Let _iteratorRecord_ be the Record { [[Iterator]]: _iterator_, [[NextMethod]]: _nextMethod_, [[Done]]: *false* }. 1. Return _iteratorRecord_.
    @@ -5971,7 +5971,7 @@

    IteratorComplete ( _iterResult_ )

    The abstract operation IteratorComplete with argument _iterResult_ performs the following steps:

    1. Assert: Type(_iterResult_) is Object. - 1. Return ! ToBoolean(? Get(_iterResult_, `"done"`)). + 1. Return ! ToBoolean(? Get(_iterResult_, *"done"*)).
    @@ -5980,7 +5980,7 @@

    IteratorValue ( _iterResult_ )

    The abstract operation IteratorValue with argument _iterResult_ performs the following steps:

    1. Assert: Type(_iterResult_) is Object. - 1. Return ? Get(_iterResult_, `"value"`). + 1. Return ? Get(_iterResult_, *"value"*).
    @@ -6002,7 +6002,7 @@

    IteratorClose ( _iteratorRecord_, _completion_ )

    1. Assert: Type(_iteratorRecord_.[[Iterator]]) is Object. 1. Assert: _completion_ is a Completion Record. 1. Let _iterator_ be _iteratorRecord_.[[Iterator]]. - 1. Let _return_ be ? GetMethod(_iterator_, `"return"`). + 1. Let _return_ be ? GetMethod(_iterator_, *"return"*). 1. If _return_ is *undefined*, return Completion(_completion_). 1. Let _innerResult_ be Call(_return_, _iterator_). 1. If _completion_.[[Type]] is ~throw~, return Completion(_completion_). @@ -6019,7 +6019,7 @@

    AsyncIteratorClose ( _iteratorRecord_, _completion_ )

    1. Assert: Type(_iteratorRecord_.[[Iterator]]) is Object. 1. Assert: _completion_ is a Completion Record. 1. Let _iterator_ be _iteratorRecord_.[[Iterator]]. - 1. Let _return_ be ? GetMethod(_iterator_, `"return"`). + 1. Let _return_ be ? GetMethod(_iterator_, *"return"*). 1. If _return_ is *undefined*, return Completion(_completion_). 1. Let _innerResult_ be Call(_return_, _iterator_). 1. If _innerResult_.[[Type]] is ~normal~, set _innerResult_ to Await(_innerResult_.[[Value]]). @@ -6036,8 +6036,8 @@

    CreateIterResultObject ( _value_, _done_ )

    1. Assert: Type(_done_) is Boolean. 1. Let _obj_ be ObjectCreate(%Object.prototype%). - 1. Perform ! CreateDataPropertyOrThrow(_obj_, `"value"`, _value_). - 1. Perform ! CreateDataPropertyOrThrow(_obj_, `"done"`, _done_). + 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"value"*, _value_). + 1. Perform ! CreateDataPropertyOrThrow(_obj_, *"done"*, _done_). 1. Return _obj_. @@ -6072,7 +6072,7 @@

    ListIteratorNext Functions

    1. Set _O_.[[ListIteratorNextIndex]] to _index_ + 1. 1. Return CreateIterResultObject(_list_[_index_], *false*). -

    The `"length"` property of a ListIteratorNext function is 0.

    +

    The *"length"* property of a ListIteratorNext function is 0.

    @@ -6900,7 +6900,7 @@

    HasRestrictedGlobalProperty ( _N_ )

    1. Return *true*. -

    Properties may exist upon a global object that were directly created rather than being declared using a var or function declaration. A global lexical binding may not be created that has the same name as a non-configurable property of the global object. The global property `"undefined"` is an example of such a property.

    +

    Properties may exist upon a global object that were directly created rather than being declared using a var or function declaration. A global lexical binding may not be created that has the same name as a non-configurable property of the global object. The global property *"undefined"* is an example of such a property.

    @@ -7648,10 +7648,10 @@

    RunJobs ( )

    1. Perform ? InitializeHostDefinedRealm(). 1. In an implementation-dependent manner, obtain the ECMAScript source texts (see clause ) and any associated host-defined values for zero or more ECMAScript scripts and/or ECMAScript modules. For each such _sourceText_ and _hostDefined_, do 1. If _sourceText_ is the source code of a script, then - 1. Perform EnqueueJob(`"ScriptJobs"`, ScriptEvaluationJob, « _sourceText_, _hostDefined_ »). + 1. Perform EnqueueJob(*"ScriptJobs"*, ScriptEvaluationJob, « _sourceText_, _hostDefined_ »). 1. Else, 1. Assert: _sourceText_ is the source code of a module. - 1. Perform EnqueueJob(`"ScriptJobs"`, TopLevelModuleEvaluationJob, « _sourceText_, _hostDefined_ »). + 1. Perform EnqueueJob(*"ScriptJobs"*, TopLevelModuleEvaluationJob, « _sourceText_, _hostDefined_ »). 1. Repeat, 1. Suspend the running execution context and remove it from the execution context stack. 1. Assert: The execution context stack is now empty. @@ -8188,7 +8188,7 @@

    ObjectCreate ( _proto_ [ , _internalSlotsList_ ] )

    OrdinaryCreateFromConstructor ( _constructor_, _intrinsicDefaultProto_ [ , _internalSlotsList_ ] )

    -

    The abstract operation OrdinaryCreateFromConstructor creates an ordinary object whose [[Prototype]] value is retrieved from a constructor's `"prototype"` property, if it exists. Otherwise the intrinsic named by _intrinsicDefaultProto_ is used for [[Prototype]]. The optional _internalSlotsList_ is a List of the names of additional internal slots that must be defined as part of the object. If the list is not provided, a new empty List is used. This abstract operation performs the following steps:

    +

    The abstract operation OrdinaryCreateFromConstructor creates an ordinary object whose [[Prototype]] value is retrieved from a constructor's *"prototype"* property, if it exists. Otherwise the intrinsic named by _intrinsicDefaultProto_ is used for [[Prototype]]. The optional _internalSlotsList_ is a List of the names of additional internal slots that must be defined as part of the object. If the list is not provided, a new empty List is used. This abstract operation performs the following steps:

    1. Assert: _intrinsicDefaultProto_ is a String value that 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_). @@ -8198,11 +8198,11 @@

    OrdinaryCreateFromConstructor ( _constructor_, _intrinsicDefaultProto_ [ , _

    GetPrototypeFromConstructor ( _constructor_, _intrinsicDefaultProto_ )

    -

    The abstract operation GetPrototypeFromConstructor determines the [[Prototype]] value that should be used to create an object corresponding to a specific constructor. The value is retrieved from the constructor's `"prototype"` property, if it exists. Otherwise the intrinsic named by _intrinsicDefaultProto_ is used for [[Prototype]]. This abstract operation performs the following steps:

    +

    The abstract operation GetPrototypeFromConstructor determines the [[Prototype]] value that should be used to create an object corresponding to a specific constructor. The value is retrieved from the constructor's *"prototype"* property, if it exists. Otherwise the intrinsic named by _intrinsicDefaultProto_ is used for [[Prototype]]. This abstract operation performs the following steps:

    1. Assert: _intrinsicDefaultProto_ is a String value that 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. Assert: IsCallable(_constructor_) is *true*. - 1. Let _proto_ be ? Get(_constructor_, `"prototype"`). + 1. Let _proto_ be ? Get(_constructor_, *"prototype"*). 1. If Type(_proto_) is not Object, then 1. Let _realm_ be ? GetFunctionRealm(_constructor_). 1. Set _proto_ to _realm_'s intrinsic object named _intrinsicDefaultProto_. @@ -8451,7 +8451,7 @@

    [[Construct]] ( _argumentsList_, _newTarget_ )

    1. Let _callerContext_ be the running execution context. 1. Let _kind_ be _F_.[[ConstructorKind]]. 1. If _kind_ is ~base~, then - 1. Let _thisArgument_ be ? OrdinaryCreateFromConstructor(_newTarget_, `"%Object.prototype%"`). + 1. Let _thisArgument_ be ? OrdinaryCreateFromConstructor(_newTarget_, *"%Object.prototype%"*). 1. Let _calleeContext_ be PrepareForOrdinaryCall(_F_, _newTarget_). 1. Assert: _calleeContext_ is now the running execution context. 1. If _kind_ is ~base~, perform OrdinaryCallBindThis(_F_, _calleeContext_, _thisArgument_). @@ -8559,8 +8559,8 @@

    AddRestrictedFunctionProperties ( _F_, _realm_ )

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

    %ThrowTypeError% ( )

    1. Throw a *TypeError* exception.

    The value of the [[Extensible]] internal slot of a %ThrowTypeError% function is *false*.

    -

    The `"length"` property of a %ThrowTypeError% function has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *false* }.

    +

    The *"length"* property of a %ThrowTypeError% function has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *false* }.

    MakeConstructor ( _F_ [ , _writablePrototype_ [ , _prototype_ ] ] )

    -

    The abstract operation MakeConstructor requires a Function argument _F_ and optionally, a Boolean _writablePrototype_ and an object _prototype_. If _prototype_ is provided it is assumed to already contain, if needed, a `"constructor"` property whose value is _F_. This operation converts _F_ into a constructor by performing the following steps:

    +

    The abstract operation MakeConstructor requires a Function argument _F_ and optionally, a Boolean _writablePrototype_ and an object _prototype_. If _prototype_ is provided it is assumed to already contain, if needed, a *"constructor"* property whose value is _F_. This operation converts _F_ into a constructor by performing the following steps:

    1. Assert: _F_ is an ECMAScript function object. 1. Assert: IsConstructor(_F_) is *true*. - 1. Assert: _F_ is an extensible object that does not have a `"prototype"` own property. + 1. Assert: _F_ is an extensible object that does not have a *"prototype"* own property. 1. If _writablePrototype_ is not present, set _writablePrototype_ to *true*. 1. If _prototype_ is not present, then 1. Set _prototype_ to ObjectCreate(%Object.prototype%). - 1. Perform ! DefinePropertyOrThrow(_prototype_, `"constructor"`, PropertyDescriptor { [[Value]]: _F_, [[Writable]]: _writablePrototype_, [[Enumerable]]: *false*, [[Configurable]]: *true* }). - 1. Perform ! DefinePropertyOrThrow(_F_, `"prototype"`, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: _writablePrototype_, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! DefinePropertyOrThrow(_prototype_, *"constructor"*, PropertyDescriptor { [[Value]]: _F_, [[Writable]]: _writablePrototype_, [[Enumerable]]: *false*, [[Configurable]]: *true* }). + 1. Perform ! DefinePropertyOrThrow(_F_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: _writablePrototype_, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return NormalCompletion(*undefined*).
    @@ -8614,29 +8614,29 @@

    MakeMethod ( _F_, _homeObject_ )

    SetFunctionName ( _F_, _name_ [ , _prefix_ ] )

    -

    The abstract operation SetFunctionName requires a Function argument _F_, a String or Symbol argument _name_ and optionally a String argument _prefix_. This operation adds a `"name"` property to _F_ by performing the following steps:

    +

    The abstract operation SetFunctionName requires a Function argument _F_, a String or Symbol argument _name_ and optionally a String argument _prefix_. This operation adds a *"name"* property to _F_ by performing the following steps:

    - 1. Assert: _F_ is an extensible object that does not have a `"name"` own property. + 1. Assert: _F_ is an extensible object that does not have a *"name"* own property. 1. Assert: Type(_name_) is either Symbol or String. 1. Assert: If _prefix_ is present, then Type(_prefix_) is String. 1. If Type(_name_) is Symbol, then 1. Let _description_ be _name_'s [[Description]] value. 1. If _description_ is *undefined*, set _name_ to the empty String. - 1. Else, set _name_ to the string-concatenation of `"["`, _description_, and `"]"`. + 1. Else, set _name_ to the string-concatenation of *"["*, _description_, and *"]"*. 1. If _prefix_ is present, then 1. Set _name_ to the string-concatenation of _prefix_, the code unit 0x0020 (SPACE), and _name_. - 1. Return ! DefinePropertyOrThrow(_F_, `"name"`, PropertyDescriptor { [[Value]]: _name_, [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *true* }). + 1. Return ! DefinePropertyOrThrow(_F_, *"name"*, PropertyDescriptor { [[Value]]: _name_, [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *true* }).

    SetFunctionLength ( _F_, _length_ )

    -

    The abstract operation SetFunctionLength requires a Function argument _F_ and a Number argument _length_. This operation adds a `"length"` property to _F_ by performing the following steps:

    +

    The abstract operation SetFunctionLength requires a Function argument _F_ and a Number argument _length_. This operation adds a *"length"* property to _F_ by performing the following steps:

    - 1. Assert: _F_ is an extensible object that does not have a `"length"` own property. + 1. Assert: _F_ is an extensible object that does not have a *"length"* own property. 1. Assert: Type(_length_) is Number. 1. Assert: _length_ ≥ 0 and ! IsInteger(_length_) is *true*. - 1. Return ! DefinePropertyOrThrow(_F_, `"length"`, PropertyDescriptor { [[Value]]: _length_, [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *true* }). + 1. Return ! DefinePropertyOrThrow(_F_, *"length"*, PropertyDescriptor { [[Value]]: _length_, [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *true* }).
    @@ -8679,10 +8679,10 @@

    FunctionDeclarationInstantiation ( _func_, _argumentsList_ )

    1. If _func_.[[ThisMode]] is ~lexical~, then 1. NOTE: Arrow functions never have an arguments objects. 1. Set _argumentsObjectNeeded_ to *false*. - 1. Else if `"arguments"` is an element of _parameterNames_, then + 1. Else if *"arguments"* is an element of _parameterNames_, then 1. Set _argumentsObjectNeeded_ to *false*. 1. Else if _hasParameterExpressions_ is *false*, then - 1. If `"arguments"` is an element of _functionNames_ or if `"arguments"` is an element of _lexicalNames_, then + 1. If *"arguments"* is an element of _functionNames_ or if *"arguments"* is an element of _lexicalNames_, then 1. Set _argumentsObjectNeeded_ to *false*. 1. For each String _paramName_ in _parameterNames_, do 1. Let _alreadyDeclared_ be _envRec_.HasBinding(_paramName_). @@ -8698,11 +8698,11 @@

    FunctionDeclarationInstantiation ( _func_, _argumentsList_ )

    1. NOTE: mapped argument object is only provided for non-strict functions that don't have a rest parameter, any parameter default value initializers, or any destructured parameters. 1. Let _ao_ be CreateMappedArgumentsObject(_func_, _formals_, _argumentsList_, _envRec_). 1. If _strict_ is *true*, then - 1. Perform ! _envRec_.CreateImmutableBinding(`"arguments"`, *false*). + 1. Perform ! _envRec_.CreateImmutableBinding(*"arguments"*, *false*). 1. Else, - 1. Perform ! _envRec_.CreateMutableBinding(`"arguments"`, *false*). - 1. Call _envRec_.InitializeBinding(`"arguments"`, _ao_). - 1. Let _parameterBindings_ be a new List of _parameterNames_ with `"arguments"` appended. + 1. Perform ! _envRec_.CreateMutableBinding(*"arguments"*, *false*). + 1. Call _envRec_.InitializeBinding(*"arguments"*, _ao_). + 1. Let _parameterBindings_ be a new List of _parameterNames_ with *"arguments"* appended. 1. Else, 1. Let _parameterBindings_ be _parameterNames_. 1. Let _iteratorRecord_ be CreateListIteratorRecord(_argumentsList_). @@ -8772,7 +8772,7 @@

    Built-in Function Objects

    Unless otherwise specified every built-in function object has the %Function.prototype% object as the initial value of its [[Prototype]] internal slot.

    The behaviour specified for each built-in function via algorithm steps or other means is the specification of the function body behaviour for both [[Call]] and [[Construct]] invocations of the function. However, [[Construct]] invocation is not supported by all built-in functions. For each built-in function, when invoked with [[Call]], the [[Call]] _thisArgument_ provides the *this* value, the [[Call]] _argumentsList_ provides the named parameters, and the NewTarget value is *undefined*. When invoked with [[Construct]], the *this* value is uninitialized, the [[Construct]] _argumentsList_ provides the named parameters, and the [[Construct]] _newTarget_ parameter provides the NewTarget value. If the built-in function is implemented as an ECMAScript function object then this specified behaviour must be implemented by the ECMAScript code that is the body of the function. Built-in functions that are ECMAScript function objects must be strict functions. If a built-in constructor has any [[Call]] behaviour other than throwing a *TypeError* exception, an ECMAScript implementation of the function must be done in a manner that does not cause the function's [[FunctionKind]] internal slot to have the value ~classConstructor~.

    Built-in function objects that are not identified as constructors do not implement the [[Construct]] internal method unless otherwise specified in the description of a particular function. When a built-in constructor is called as part of a `new` expression the _argumentsList_ parameter of the invoked [[Construct]] internal method provides the values for the built-in constructor's named parameters.

    -

    Built-in functions that are not constructors do not have a `"prototype"` property unless otherwise specified in the description of a particular function.

    +

    Built-in functions that are not constructors do not have a *"prototype"* property unless otherwise specified in the description of a particular function.

    If a built-in function object is not implemented as an ECMAScript function it must provide [[Call]] and [[Construct]] internal methods that conform to the following definitions:

    @@ -8932,7 +8932,7 @@

    BoundFunctionCreate ( _targetFunction_, _boundThis_, _boundArgs_ )

    Array Exotic Objects

    -

    An Array object is an exotic object that gives special treatment to array index property keys (see ). A property whose property name is an array index is also called an element. Every Array object has a non-configurable `"length"` property whose value is always a nonnegative integer less than 232. The value of the `"length"` property is numerically greater than the name of every own property whose name is an array index; whenever an own property of an Array object is created or changed, other properties are adjusted as necessary to maintain this invariant. Specifically, whenever an own property is added whose name is an array index, the value of the `"length"` property is changed, if necessary, to be one more than the numeric value of that array index; and whenever the value of the `"length"` property is changed, every own property whose name is an array index whose value is not smaller than the new length is deleted. This constraint applies only to own properties of an Array object and is unaffected by `"length"` or array index properties that may be inherited from its prototypes.

    +

    An Array object is an exotic object that gives special treatment to array index property keys (see ). A property whose property name is an array index is also called an element. Every Array object has a non-configurable *"length"* property whose value is always a nonnegative integer less than 232. The value of the *"length"* property is numerically greater than the name of every own property whose name is an array index; whenever an own property of an Array object is created or changed, other properties are adjusted as necessary to maintain this invariant. Specifically, whenever an own property is added whose name is an array index, the value of the *"length"* property is changed, if necessary, to be one more than the numeric value of that array index; and whenever the value of the *"length"* property is changed, every own property whose name is an array index whose value is not smaller than the new length is deleted. This constraint applies only to own properties of an Array object and is unaffected by *"length"* or array index properties that may be inherited from its prototypes.

    A String property name _P_ is an array index if and only if ToString(ToUint32(_P_)) is equal to _P_ and ToUint32(_P_) is not equal to 232 - 1.

    @@ -8943,10 +8943,10 @@

    [[DefineOwnProperty]] ( _P_, _Desc_ )

    When the [[DefineOwnProperty]] internal method of an Array exotic object _A_ is called with property key _P_, and Property Descriptor _Desc_, the following steps are taken:

    1. Assert: IsPropertyKey(_P_) is *true*. - 1. If _P_ is `"length"`, then + 1. If _P_ is *"length"*, then 1. Return ? ArraySetLength(_A_, _Desc_). 1. Else if _P_ is an array index, then - 1. Let _oldLenDesc_ be OrdinaryGetOwnProperty(_A_, `"length"`). + 1. Let _oldLenDesc_ be OrdinaryGetOwnProperty(_A_, *"length"*). 1. Assert: _oldLenDesc_ will never be *undefined* or an accessor descriptor because Array objects are created with a length data property that cannot be deleted or reconfigured. 1. Let _oldLen_ be _oldLenDesc_.[[Value]]. 1. Let _index_ be ! ToUint32(_P_). @@ -8955,7 +8955,7 @@

    [[DefineOwnProperty]] ( _P_, _Desc_ )

    1. If _succeeded_ is *false*, return *false*. 1. If _index_ ≥ _oldLen_, then 1. Set _oldLenDesc_.[[Value]] to _index_ + 1. - 1. Let _succeeded_ be OrdinaryDefineOwnProperty(_A_, `"length"`, _oldLenDesc_). + 1. Let _succeeded_ be OrdinaryDefineOwnProperty(_A_, *"length"*, _oldLenDesc_). 1. Assert: _succeeded_ is *true*. 1. Return *true*. 1. Return OrdinaryDefineOwnProperty(_A_, _P_, _Desc_). @@ -8975,7 +8975,7 @@

    ArrayCreate ( _length_ [ , _proto_ ] )

    1. Set _A_.[[DefineOwnProperty]] as specified in . 1. Set _A_.[[Prototype]] to _proto_. 1. Set _A_.[[Extensible]] to *true*. - 1. Perform ! OrdinaryDefineOwnProperty(_A_, `"length"`, PropertyDescriptor { [[Value]]: _length_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! OrdinaryDefineOwnProperty(_A_, *"length"*, PropertyDescriptor { [[Value]]: _length_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return _A_.
    @@ -8988,7 +8988,7 @@

    ArraySpeciesCreate ( _originalArray_, _length_ )

    1. If _length_ is *-0*, set _length_ to *+0*. 1. Let _isArray_ be ? IsArray(_originalArray_). 1. If _isArray_ is *false*, return ? ArrayCreate(_length_). - 1. Let _C_ be ? Get(_originalArray_, `"constructor"`). + 1. Let _C_ be ? Get(_originalArray_, *"constructor"*). 1. If IsConstructor(_C_) is *true*, then 1. Let _thisRealm_ be the current Realm Record. 1. Let _realmC_ be ? GetFunctionRealm(_C_). @@ -9011,24 +9011,24 @@

    ArraySetLength ( _A_, _Desc_ )

    When the abstract operation ArraySetLength is called with an Array exotic object _A_, and Property Descriptor _Desc_, the following steps are taken:

    1. If _Desc_.[[Value]] is absent, then - 1. Return OrdinaryDefineOwnProperty(_A_, `"length"`, _Desc_). + 1. Return OrdinaryDefineOwnProperty(_A_, *"length"*, _Desc_). 1. Let _newLenDesc_ be a copy of _Desc_. 1. Let _newLen_ be ? ToUint32(_Desc_.[[Value]]). 1. Let _numberLen_ be ? ToNumber(_Desc_.[[Value]]). 1. If _newLen_ ≠ _numberLen_, throw a *RangeError* exception. 1. Set _newLenDesc_.[[Value]] to _newLen_. - 1. Let _oldLenDesc_ be OrdinaryGetOwnProperty(_A_, `"length"`). + 1. Let _oldLenDesc_ be OrdinaryGetOwnProperty(_A_, *"length"*). 1. Assert: _oldLenDesc_ will never be *undefined* or an accessor descriptor because Array objects are created with a length data property that cannot be deleted or reconfigured. 1. Let _oldLen_ be _oldLenDesc_.[[Value]]. 1. If _newLen_ ≥ _oldLen_, then - 1. Return OrdinaryDefineOwnProperty(_A_, `"length"`, _newLenDesc_). + 1. Return OrdinaryDefineOwnProperty(_A_, *"length"*, _newLenDesc_). 1. If _oldLenDesc_.[[Writable]] is *false*, return *false*. 1. If _newLenDesc_.[[Writable]] is absent or has the value *true*, let _newWritable_ be *true*. 1. Else, 1. Need to defer setting the [[Writable]] attribute to *false* in case any elements cannot be deleted. 1. Let _newWritable_ be *false*. 1. Set _newLenDesc_.[[Writable]] to *true*. - 1. Let _succeeded_ be ! OrdinaryDefineOwnProperty(_A_, `"length"`, _newLenDesc_). + 1. Let _succeeded_ be ! OrdinaryDefineOwnProperty(_A_, *"length"*, _newLenDesc_). 1. If _succeeded_ is *false*, return *false*. 1. Repeat, while _newLen_ < _oldLen_, 1. Set _oldLen_ to _oldLen_ - 1. @@ -9036,10 +9036,10 @@

    ArraySetLength ( _A_, _Desc_ )

    1. If _deleteSucceeded_ is *false*, then 1. Set _newLenDesc_.[[Value]] to _oldLen_ + 1. 1. If _newWritable_ is *false*, set _newLenDesc_.[[Writable]] to *false*. - 1. Perform ! OrdinaryDefineOwnProperty(_A_, `"length"`, _newLenDesc_). + 1. Perform ! OrdinaryDefineOwnProperty(_A_, *"length"*, _newLenDesc_). 1. Return *false*. 1. If _newWritable_ is *false*, then - 1. Return OrdinaryDefineOwnProperty(_A_, `"length"`, PropertyDescriptor { [[Writable]]: *false* }). This call will always return *true*. + 1. Return OrdinaryDefineOwnProperty(_A_, *"length"*, PropertyDescriptor { [[Writable]]: *false* }). This call will always return *true*. 1. Return *true*.
    @@ -9050,7 +9050,7 @@

    ArraySetLength ( _A_, _Desc_ )

    String Exotic Objects

    -

    A String object is an exotic object that encapsulates a String value and exposes virtual integer-indexed data properties corresponding to the individual code unit elements of the String value. String exotic objects always have a data property named `"length"` whose value is the number of code unit elements in the encapsulated String value. Both the code unit data properties and the `"length"` property are non-writable and non-configurable.

    +

    A String object is an exotic object that encapsulates a String value and exposes virtual integer-indexed data properties corresponding to the individual code unit elements of the String value. String exotic objects always have a data property named *"length"* whose value is the number of code unit elements in the encapsulated String value. Both the code unit data properties and the *"length"* property are non-writable and non-configurable.

    String exotic objects have the same internal slots as ordinary objects. They also have a [[StringData]] internal slot.

    String exotic objects provide alternative definitions for the following internal methods. All of the other String exotic object essential internal methods that are not defined below are as specified in .

    @@ -9112,7 +9112,7 @@

    StringCreate ( _value_, _prototype_ )

    1. Set _S_.[[Prototype]] to _prototype_. 1. Set _S_.[[Extensible]] to *true*. 1. Let _length_ be the number of code unit elements in _value_. - 1. Perform ! DefinePropertyOrThrow(_S_, `"length"`, PropertyDescriptor { [[Value]]: _length_, [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! DefinePropertyOrThrow(_S_, *"length"*, PropertyDescriptor { [[Value]]: _length_, [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return _S_.
    @@ -9150,10 +9150,10 @@

    Arguments Exotic Objects

    The ParameterMap object and its property values are used as a device for specifying the arguments object correspondence to argument bindings. The ParameterMap object and the objects that are the values of its properties are not directly observable from ECMAScript code. An ECMAScript implementation does not need to actually create or use such objects to implement the specified semantics.

    -

    Ordinary arguments objects define a non-configurable accessor property named `"callee"` which throws a *TypeError* exception on access. The `"callee"` property has a more specific meaning for arguments exotic objects, which are created only for some class of non-strict functions. The definition of this property in the ordinary variant exists to ensure that it is not defined in any other manner by conforming ECMAScript implementations.

    +

    Ordinary arguments objects define a non-configurable accessor property named *"callee"* which throws a *TypeError* exception on access. The *"callee"* property has a more specific meaning for arguments exotic objects, which are created only for some class of non-strict functions. The definition of this property in the ordinary variant exists to ensure that it is not defined in any other manner by conforming ECMAScript implementations.

    -

    ECMAScript implementations of arguments exotic objects have historically contained an accessor property named `"caller"`. Prior to ECMAScript 2017, this specification included the definition of a throwing `"caller"` property on ordinary arguments objects. Since implementations do not contain this extension any longer, ECMAScript 2017 dropped the requirement for a throwing `"caller"` accessor.

    +

    ECMAScript implementations of arguments exotic objects have historically contained an accessor property named *"caller"*. Prior to ECMAScript 2017, this specification included the definition of a throwing *"caller"* property on ordinary arguments objects. Since implementations do not contain this extension any longer, ECMAScript 2017 dropped the requirement for a throwing *"caller"* accessor.

    @@ -9251,14 +9251,14 @@

    CreateUnmappedArgumentsObject ( _argumentsList_ )

    1. Let _len_ be the number of elements in _argumentsList_. 1. Let _obj_ be ObjectCreate(%Object.prototype%, « [[ParameterMap]] »). 1. Set _obj_.[[ParameterMap]] to *undefined*. - 1. Perform DefinePropertyOrThrow(_obj_, `"length"`, PropertyDescriptor { [[Value]]: _len_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *true* }). + 1. Perform DefinePropertyOrThrow(_obj_, *"length"*, PropertyDescriptor { [[Value]]: _len_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *true* }). 1. Let _index_ be 0. 1. Repeat, while _index_ < _len_, 1. Let _val_ be _argumentsList_[_index_]. 1. Perform ! CreateDataPropertyOrThrow(_obj_, ! ToString(_index_), _val_). 1. Set _index_ to _index_ + 1. 1. Perform ! DefinePropertyOrThrow(_obj_, @@iterator, PropertyDescriptor { [[Value]]: %Array.prototype.values%, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *true* }). - 1. Perform ! DefinePropertyOrThrow(_obj_, `"callee"`, PropertyDescriptor { [[Get]]: %ThrowTypeError%, [[Set]]: %ThrowTypeError%, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! DefinePropertyOrThrow(_obj_, *"callee"*, PropertyDescriptor { [[Get]]: %ThrowTypeError%, [[Set]]: %ThrowTypeError%, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Return _obj_.
    @@ -9287,7 +9287,7 @@

    CreateMappedArgumentsObject ( _func_, _formals_, _argumentsList_, _env_ )CreateMappedArgumentsObject ( _func_, _formals_, _argumentsList_, _env_ ) @@ -9659,7 +9659,7 @@

    [[Get]] ( _P_, _Receiver_ )

    1. Assert: _binding_ is a ResolvedBinding Record. 1. Let _targetModule_ be _binding_.[[Module]]. 1. Assert: _targetModule_ is not *undefined*. - 1. If _binding_.[[BindingName]] is `"*namespace*"`, then + 1. If _binding_.[[BindingName]] is *"*namespace*"*, then 1. Return ? GetModuleNamespace(_targetModule_). 1. Let _targetEnv_ be _targetModule_.[[Environment]]. 1. If _targetEnv_ is *undefined*, throw a *ReferenceError* exception. @@ -9883,7 +9883,7 @@

    [[GetPrototypeOf]] ( )

    1. If _handler_ is *null*, throw a *TypeError* exception. 1. Assert: Type(_handler_) is Object. 1. Let _target_ be _O_.[[ProxyTarget]]. - 1. Let _trap_ be ? GetMethod(_handler_, `"getPrototypeOf"`). + 1. Let _trap_ be ? GetMethod(_handler_, *"getPrototypeOf"*). 1. If _trap_ is *undefined*, then 1. Return ? _target_.[[GetPrototypeOf]](). 1. Let _handlerProto_ be ? Call(_trap_, _handler_, « _target_ »). @@ -9916,7 +9916,7 @@

    [[SetPrototypeOf]] ( _V_ )

    1. If _handler_ is *null*, throw a *TypeError* exception. 1. Assert: Type(_handler_) is Object. 1. Let _target_ be _O_.[[ProxyTarget]]. - 1. Let _trap_ be ? GetMethod(_handler_, `"setPrototypeOf"`). + 1. Let _trap_ be ? GetMethod(_handler_, *"setPrototypeOf"*). 1. If _trap_ is *undefined*, then 1. Return ? _target_.[[SetPrototypeOf]](_V_). 1. Let _booleanTrapResult_ be ! ToBoolean(? Call(_trap_, _handler_, « _target_, _V_ »)). @@ -9948,7 +9948,7 @@

    [[IsExtensible]] ( )

    1. If _handler_ is *null*, throw a *TypeError* exception. 1. Assert: Type(_handler_) is Object. 1. Let _target_ be _O_.[[ProxyTarget]]. - 1. Let _trap_ be ? GetMethod(_handler_, `"isExtensible"`). + 1. Let _trap_ be ? GetMethod(_handler_, *"isExtensible"*). 1. If _trap_ is *undefined*, then 1. Return ? IsExtensible(_target_). 1. Let _booleanTrapResult_ be ! ToBoolean(? Call(_trap_, _handler_, « _target_ »)). @@ -9977,7 +9977,7 @@

    [[PreventExtensions]] ( )

    1. If _handler_ is *null*, throw a *TypeError* exception. 1. Assert: Type(_handler_) is Object. 1. Let _target_ be _O_.[[ProxyTarget]]. - 1. Let _trap_ be ? GetMethod(_handler_, `"preventExtensions"`). + 1. Let _trap_ be ? GetMethod(_handler_, *"preventExtensions"*). 1. If _trap_ is *undefined*, then 1. Return ? _target_.[[PreventExtensions]](). 1. Let _booleanTrapResult_ be ! ToBoolean(? Call(_trap_, _handler_, « _target_ »)). @@ -10008,7 +10008,7 @@

    [[GetOwnProperty]] ( _P_ )

    1. If _handler_ is *null*, throw a *TypeError* exception. 1. Assert: Type(_handler_) is Object. 1. Let _target_ be _O_.[[ProxyTarget]]. - 1. Let _trap_ be ? GetMethod(_handler_, `"getOwnPropertyDescriptor"`). + 1. Let _trap_ be ? GetMethod(_handler_, *"getOwnPropertyDescriptor"*). 1. If _trap_ is *undefined*, then 1. Return ? _target_.[[GetOwnProperty]](_P_). 1. Let _trapResultObj_ be ? Call(_trap_, _handler_, « _target_, _P_ »). @@ -10061,7 +10061,7 @@

    [[DefineOwnProperty]] ( _P_, _Desc_ )

    1. If _handler_ is *null*, throw a *TypeError* exception. 1. Assert: Type(_handler_) is Object. 1. Let _target_ be _O_.[[ProxyTarget]]. - 1. Let _trap_ be ? GetMethod(_handler_, `"defineProperty"`). + 1. Let _trap_ be ? GetMethod(_handler_, *"defineProperty"*). 1. If _trap_ is *undefined*, then 1. Return ? _target_.[[DefineOwnProperty]](_P_, _Desc_). 1. Let _descObj_ be FromPropertyDescriptor(_Desc_). @@ -10108,7 +10108,7 @@

    [[HasProperty]] ( _P_ )

    1. If _handler_ is *null*, throw a *TypeError* exception. 1. Assert: Type(_handler_) is Object. 1. Let _target_ be _O_.[[ProxyTarget]]. - 1. Let _trap_ be ? GetMethod(_handler_, `"has"`). + 1. Let _trap_ be ? GetMethod(_handler_, *"has"*). 1. If _trap_ is *undefined*, then 1. Return ? _target_.[[HasProperty]](_P_). 1. Let _booleanTrapResult_ be ! ToBoolean(? Call(_trap_, _handler_, « _target_, _P_ »)). @@ -10145,7 +10145,7 @@

    [[Get]] ( _P_, _Receiver_ )

    1. If _handler_ is *null*, throw a *TypeError* exception. 1. Assert: Type(_handler_) is Object. 1. Let _target_ be _O_.[[ProxyTarget]]. - 1. Let _trap_ be ? GetMethod(_handler_, `"get"`). + 1. Let _trap_ be ? GetMethod(_handler_, *"get"*). 1. If _trap_ is *undefined*, then 1. Return ? _target_.[[Get]](_P_, _Receiver_). 1. Let _trapResult_ be ? Call(_trap_, _handler_, « _target_, _P_, _Receiver_ »). @@ -10179,7 +10179,7 @@

    [[Set]] ( _P_, _V_, _Receiver_ )

    1. If _handler_ is *null*, throw a *TypeError* exception. 1. Assert: Type(_handler_) is Object. 1. Let _target_ be _O_.[[ProxyTarget]]. - 1. Let _trap_ be ? GetMethod(_handler_, `"set"`). + 1. Let _trap_ be ? GetMethod(_handler_, *"set"*). 1. If _trap_ is *undefined*, then 1. Return ? _target_.[[Set]](_P_, _V_, _Receiver_). 1. Let _booleanTrapResult_ be ! ToBoolean(? Call(_trap_, _handler_, « _target_, _P_, _V_, _Receiver_ »)). @@ -10217,7 +10217,7 @@

    [[Delete]] ( _P_ )

    1. If _handler_ is *null*, throw a *TypeError* exception. 1. Assert: Type(_handler_) is Object. 1. Let _target_ be _O_.[[ProxyTarget]]. - 1. Let _trap_ be ? GetMethod(_handler_, `"deleteProperty"`). + 1. Let _trap_ be ? GetMethod(_handler_, *"deleteProperty"*). 1. If _trap_ is *undefined*, then 1. Return ? _target_.[[Delete]](_P_). 1. Let _booleanTrapResult_ be ! ToBoolean(? Call(_trap_, _handler_, « _target_, _P_ »)). @@ -10248,7 +10248,7 @@

    [[OwnPropertyKeys]] ( )

    1. If _handler_ is *null*, throw a *TypeError* exception. 1. Assert: Type(_handler_) is Object. 1. Let _target_ be _O_.[[ProxyTarget]]. - 1. Let _trap_ be ? GetMethod(_handler_, `"ownKeys"`). + 1. Let _trap_ be ? GetMethod(_handler_, *"ownKeys"*). 1. If _trap_ is *undefined*, then 1. Return ? _target_.[[OwnPropertyKeys]](). 1. Let _trapResultArray_ be ? Call(_trap_, _handler_, « _target_ »). @@ -10309,7 +10309,7 @@

    [[Call]] ( _thisArgument_, _argumentsList_ )

    1. If _handler_ is *null*, throw a *TypeError* exception. 1. Assert: Type(_handler_) is Object. 1. Let _target_ be _O_.[[ProxyTarget]]. - 1. Let _trap_ be ? GetMethod(_handler_, `"apply"`). + 1. Let _trap_ be ? GetMethod(_handler_, *"apply"*). 1. If _trap_ is *undefined*, then 1. Return ? Call(_target_, _thisArgument_, _argumentsList_). 1. Let _argArray_ be ! CreateArrayFromList(_argumentsList_). @@ -10329,7 +10329,7 @@

    [[Construct]] ( _argumentsList_, _newTarget_ )

    1. Assert: Type(_handler_) is Object. 1. Let _target_ be _O_.[[ProxyTarget]]. 1. Assert: IsConstructor(_target_) is *true*. - 1. Let _trap_ be ? GetMethod(_handler_, `"construct"`). + 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_). @@ -10922,13 +10922,13 @@

    Static Semantics: Early Errors

    IdentifierStart :: `\` UnicodeEscapeSequence
    • - It is a Syntax Error if SV(|UnicodeEscapeSequence|) is none of `"$"`, or `"_"`, or the UTF16Encoding of a code point matched by the |UnicodeIDStart| lexical grammar production. + It is a Syntax Error if SV(|UnicodeEscapeSequence|) is none of *"$"*, or *"_"*, or the UTF16Encoding of a code point matched by the |UnicodeIDStart| lexical grammar production.
    IdentifierPart :: `\` UnicodeEscapeSequence
    • - It is a Syntax Error if SV(|UnicodeEscapeSequence|) is none of `"$"`, or `"_"`, or the UTF16Encoding of either <ZWNJ> or <ZWJ>, or the UTF16Encoding of a Unicode code point that would be matched by the |UnicodeIDContinue| lexical grammar production. + It is a Syntax Error if SV(|UnicodeEscapeSequence|) is none of *"$"*, or *"_"*, or the UTF16Encoding of either <ZWNJ> or <ZWJ>, or the UTF16Encoding of a Unicode code point that would be matched by the |UnicodeIDContinue| lexical grammar production.
    @@ -12222,7 +12222,7 @@

    Static Semantics: Early Errors

    BindingIdentifier : Identifier
    • - It is a Syntax Error if the code matched by this production is contained in strict mode code and the StringValue of |Identifier| is `"arguments"` or `"eval"`. + It is a Syntax Error if the code matched by this production is contained in strict mode code and the StringValue of |Identifier| is *"arguments"* or *"eval"*.
    @@ -12274,19 +12274,19 @@

    Static Semantics: Early Errors

    • - It is a Syntax Error if this production has a [Yield] parameter and StringValue of |Identifier| is `"yield"`. + It is a Syntax Error if this production has a [Yield] parameter and StringValue of |Identifier| is *"yield"*.
    • - It is a Syntax Error if this production has an [Await] parameter and StringValue of |Identifier| is `"await"`. + It is a Syntax Error if this production has an [Await] parameter and StringValue of |Identifier| is *"await"*.
    Identifier : IdentifierName but not ReservedWord
    • - It is a Syntax Error if this phrase is contained in strict mode code and the StringValue of |IdentifierName| is: `"implements"`, `"interface"`, `"let"`, `"package"`, `"private"`, `"protected"`, `"public"`, `"static"`, or `"yield"`. + It is a Syntax Error if this phrase is contained in strict mode code and the StringValue of |IdentifierName| is: *"implements"*, *"interface"*, *"let"*, *"package"*, *"private"*, *"protected"*, *"public"*, *"static"*, or *"yield"*.
    • - It is a Syntax Error if the goal symbol of the syntactic grammar is |Module| and the StringValue of |IdentifierName| is `"await"`. + It is a Syntax Error if the goal symbol of the syntactic grammar is |Module| and the StringValue of |IdentifierName| is *"await"*.
    • It is a Syntax Error if StringValue of |IdentifierName| is the same String value as the StringValue of any |ReservedWord| except for `yield` or `await`. @@ -12306,11 +12306,11 @@

      Static Semantics: BoundNames

      BindingIdentifier : `yield` - 1. Return a new List containing `"yield"`. + 1. Return a new List containing *"yield"*. BindingIdentifier : `await` - 1. Return a new List containing `"await"`. + 1. Return a new List containing *"await"*. @@ -12319,7 +12319,7 @@

      Static Semantics: AssignmentTargetType

      IdentifierReference : Identifier - 1. If this |IdentifierReference| is contained in strict mode code and StringValue of |Identifier| is `"eval"` or `"arguments"`, return ~strict~. + 1. If this |IdentifierReference| is contained in strict mode code and StringValue of |Identifier| is *"eval"* or *"arguments"*, return ~strict~. 1. Return ~simple~. IdentifierReference : `yield` @@ -12343,7 +12343,7 @@

      Static Semantics: StringValue

      LabelIdentifier : `yield` - 1. Return `"yield"`. + 1. Return *"yield"*. IdentifierReference : `await` @@ -12353,7 +12353,7 @@

      Static Semantics: StringValue

      LabelIdentifier : `await`
      - 1. Return `"await"`. + 1. Return *"await"*. Identifier : IdentifierName but not ReservedWord @@ -12375,11 +12375,11 @@

      Runtime Semantics: BindingInitialization

      BindingIdentifier : `yield` - 1. Return ? InitializeBoundName(`"yield"`, _value_, _environment_). + 1. Return ? InitializeBoundName(*"yield"*, _value_, _environment_). BindingIdentifier : `await` - 1. Return ? InitializeBoundName(`"await"`, _value_, _environment_). + 1. Return ? InitializeBoundName(*"await"*, _value_, _environment_). @@ -12405,11 +12405,11 @@

      Runtime Semantics: Evaluation

      IdentifierReference : `yield` - 1. Return ? ResolveBinding(`"yield"`). + 1. Return ? ResolveBinding(*"yield"*). IdentifierReference : `await` - 1. Return ? ResolveBinding(`"await"`). + 1. Return ? ResolveBinding(*"await"*).

      The result of evaluating an |IdentifierReference| is always a value of type Reference.

      @@ -12642,7 +12642,7 @@

      Runtime Semantics: ArrayAccumulation

      Elision : `,` 1. Let _len_ be _nextIndex_ + 1. - 1. Perform ? Set(_array_, `"length"`, _len_, *true*). + 1. Perform ? Set(_array_, *"length"*, _len_, *true*). 1. NOTE: The above Set throws if _len_ exceeds 232-1. 1. Return _len_. @@ -13184,7 +13184,7 @@

      Runtime Semantics: GetTemplateObject ( _templateLiteral_ )

      1. Call _rawObj_.[[DefineOwnProperty]](_prop_, PropertyDescriptor { [[Value]]: _rawValue_, [[Writable]]: *false*, [[Enumerable]]: *true*, [[Configurable]]: *false* }). 1. Set _index_ to _index_ + 1. 1. Perform SetIntegrityLevel(_rawObj_, ~frozen~). - 1. Call _template_.[[DefineOwnProperty]](`"raw"`, PropertyDescriptor { [[Value]]: _rawObj_, [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Call _template_.[[DefineOwnProperty]](*"raw"*, PropertyDescriptor { [[Value]]: _rawObj_, [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Perform SetIntegrityLevel(_template_, ~frozen~). 1. Append the Record { [[Site]]: _templateLiteral_, [[Array]]: _template_ } to _templateRegistry_. 1. Return _template_. @@ -13676,7 +13676,7 @@

      Runtime Semantics: Evaluation

      1. Let _arguments_ be the |Arguments| of _expr_. 1. Let _ref_ be the result of evaluating _memberExpr_. 1. Let _func_ be ? GetValue(_ref_). - 1. If Type(_ref_) is Reference and IsPropertyReference(_ref_) is *false* and GetReferencedName(_ref_) is `"eval"`, then + 1. If Type(_ref_) is Reference and IsPropertyReference(_ref_) is *false* and GetReferencedName(_ref_) is *"eval"*, then 1. If SameValue(_func_, %eval%) is *true*, then 1. Let _argList_ be ? ArgumentListEvaluation of _arguments_. 1. If _argList_ has no elements, return *undefined*. @@ -14161,7 +14161,7 @@

      Runtime Semantics: Evaluation

      1. Let _val_ be the result of evaluating |UnaryExpression|. 1. If Type(_val_) is Reference, then - 1. If IsUnresolvableReference(_val_) is *true*, return `"undefined"`. + 1. If IsUnresolvableReference(_val_) is *true*, return *"undefined"*. 1. Set _val_ to ? GetValue(_val_). 1. Return a String according to . @@ -14181,7 +14181,7 @@

      Runtime Semantics: Evaluation

      Undefined - `"undefined"` + *"undefined"* @@ -14189,7 +14189,7 @@

      Runtime Semantics: Evaluation

      Null - `"object"` + *"object"* @@ -14197,7 +14197,7 @@

      Runtime Semantics: Evaluation

      Boolean - `"boolean"` + *"boolean"* @@ -14205,7 +14205,7 @@

      Runtime Semantics: Evaluation

      Number - `"number"` + *"number"* @@ -14213,7 +14213,7 @@

      Runtime Semantics: Evaluation

      String - `"string"` + *"string"* @@ -14221,7 +14221,7 @@

      Runtime Semantics: Evaluation

      Symbol - `"symbol"` + *"symbol"* @@ -14229,7 +14229,7 @@

      Runtime Semantics: Evaluation

      BigInt - `"bigint"` + *"bigint"* @@ -14237,7 +14237,7 @@

      Runtime Semantics: Evaluation

      Object (does not implement [[Call]]) - `"object"` + *"object"* @@ -14245,7 +14245,7 @@

      Runtime Semantics: Evaluation

      Object (implements [[Call]]) - `"function"` + *"function"* @@ -14741,7 +14741,7 @@

      Runtime Semantics: Evaluation

      Runtime Semantics: InstanceofOperator ( _V_, _target_ )

      -

      The abstract operation InstanceofOperator(_V_, _target_) implements the generic algorithm for determining if ECMAScript value _V_ is an instance of object _target_ either by consulting _target_'s @@hasinstance method or, if absent, determining whether the value of _target_'s `"prototype"` property is present in _V_'s prototype chain. This abstract operation performs the following steps:

      +

      The abstract operation InstanceofOperator(_V_, _target_) implements the generic algorithm for determining if ECMAScript value _V_ is an instance of object _target_ either by consulting _target_'s @@hasinstance method or, if absent, determining whether the value of _target_'s *"prototype"* property is present in _V_'s prototype chain. This abstract operation performs the following steps:

      1. If Type(_target_) is not Object, throw a *TypeError* exception. 1. Let _instOfHandler_ be ? GetMethod(_target_, @@hasInstance). @@ -16136,7 +16136,7 @@

      Static Semantics: Early Errors

      LexicalDeclaration : LetOrConst BindingList `;`
      • - It is a Syntax Error if the BoundNames of |BindingList| contains `"let"`. + It is a Syntax Error if the BoundNames of |BindingList| contains *"let"*.
      • It is a Syntax Error if the BoundNames of |BindingList| contains any duplicate entries. @@ -17416,7 +17416,7 @@

        Static Semantics: Early Errors

        • - It is a Syntax Error if the BoundNames of |ForDeclaration| contains `"let"`. + It is a Syntax Error if the BoundNames of |ForDeclaration| contains *"let"*.
        • It is a Syntax Error if any element of the BoundNames of |ForDeclaration| also occurs in the VarDeclaredNames of |Statement|. @@ -19025,7 +19025,7 @@

          Syntax

          Directive Prologues and the Use Strict Directive

          A Directive Prologue is the longest sequence of |ExpressionStatement|s occurring as the initial |StatementListItem|s or |ModuleItem|s of a |FunctionBody|, a |ScriptBody|, or a |ModuleBody| and where each |ExpressionStatement| in the sequence consists entirely of a |StringLiteral| token followed by a semicolon. The semicolon may appear explicitly or may be inserted by automatic semicolon insertion. A Directive Prologue may be an empty sequence.

          -

          A Use Strict Directive is an |ExpressionStatement| in a Directive Prologue whose |StringLiteral| is either the exact code unit sequences `"use strict"` or `'use strict'`. A Use Strict Directive may not contain an |EscapeSequence| or |LineContinuation|.

          +

          A Use Strict Directive is an |ExpressionStatement| in a Directive Prologue whose |StringLiteral| is either the exact code unit sequences *"use strict"* or *'use strict'*. A Use Strict Directive may not contain an |EscapeSequence| or |LineContinuation|.

          A Directive Prologue may contain more than one Use Strict Directive. However, an implementation may issue a warning if this occurs.

          The |ExpressionStatement|s of a Directive Prologue are evaluated normally during evaluation of the containing production. Implementations may define implementation specific meanings for |ExpressionStatement|s which are not a Use Strict Directive and which occur in a Directive Prologue. If an appropriate notification mechanism exists, an implementation should issue a warning if it encounters in a Directive Prologue an |ExpressionStatement| that is not a Use Strict Directive and which does not have a meaning defined by the implementation.

          @@ -19046,7 +19046,7 @@

          Static Semantics: Early Errors

          If the source code matching |FormalParameters| is strict mode code, the Early Error rules for UniqueFormalParameters : FormalParameters are applied.
        • - If |BindingIdentifier| is present and the source code matching |BindingIdentifier| is strict mode code, it is a Syntax Error if the StringValue of |BindingIdentifier| is `"eval"` or `"arguments"`. + If |BindingIdentifier| is present and the source code matching |BindingIdentifier| is strict mode code, it is a Syntax Error if the StringValue of |BindingIdentifier| is *"eval"* or *"arguments"*.
        • It is a Syntax Error if ContainsUseStrict of |FunctionBody| is *true* and IsSimpleParameterList of |FormalParameters| is *false*. @@ -19114,10 +19114,10 @@

          Static Semantics: BoundNames

          FunctionDeclaration : `function` `(` FormalParameters `)` `{` FunctionBody `}` - 1. Return « `"*default*"` ». + 1. Return « *"*default*"* ». -

          `"*default*"` is used within this specification as a synthetic name for hoistable anonymous functions that are defined using export declarations.

          +

          *"*default*"* is used within this specification as a synthetic name for hoistable anonymous functions that are defined using export declarations.

          FormalParameters : [empty] @@ -19423,7 +19423,7 @@

          Runtime Semantics: InstantiateFunctionObject

          1. Let _F_ be FunctionCreate(~Normal~, |FormalParameters|, |FunctionBody|, _scope_). 1. Perform MakeConstructor(_F_). - 1. Perform SetFunctionName(_F_, `"default"`). + 1. Perform SetFunctionName(_F_, *"default"*). 1. Set _F_.[[SourceText]] to the source text matched by |FunctionDeclaration|. 1. Return _F_. @@ -19482,7 +19482,7 @@

          Runtime Semantics: Evaluation

          The |BindingIdentifier| in a |FunctionExpression| can be referenced from inside the |FunctionExpression|'s |FunctionBody| to allow the function to call itself recursively. However, unlike in a |FunctionDeclaration|, the |BindingIdentifier| in a |FunctionExpression| cannot be referenced from and does not affect the scope enclosing the |FunctionExpression|.

          -

          A `"prototype"` property is automatically created for every function defined using a |FunctionDeclaration| or |FunctionExpression|, to allow for the possibility that the function will be used as a constructor.

          +

          A *"prototype"* property is automatically created for every function defined using a |FunctionDeclaration| or |FunctionExpression|, to allow for the possibility that the function will be used as a constructor.

          FunctionStatementList : [empty] @@ -19902,7 +19902,7 @@

          Runtime Semantics: PropertyDefinitionEvaluation

          1. Let _formalParameterList_ be an instance of the production FormalParameters : [empty]. 1. Let _closure_ be FunctionCreate(~Method~, _formalParameterList_, |FunctionBody|, _scope_). 1. Perform MakeMethod(_closure_, _object_). - 1. Perform SetFunctionName(_closure_, _propKey_, `"get"`). + 1. Perform SetFunctionName(_closure_, _propKey_, *"get"*). 1. Set _closure_.[[SourceText]] to the source text matched by |MethodDefinition|. 1. Let _desc_ be the PropertyDescriptor { [[Get]]: _closure_, [[Enumerable]]: _enumerable_, [[Configurable]]: *true* }. 1. Return ? DefinePropertyOrThrow(_object_, _propKey_, _desc_). @@ -19914,7 +19914,7 @@

          Runtime Semantics: PropertyDefinitionEvaluation

          1. Let _scope_ be the running execution context's LexicalEnvironment. 1. Let _closure_ be FunctionCreate(~Method~, |PropertySetParameterList|, |FunctionBody|, _scope_). 1. Perform MakeMethod(_closure_, _object_). - 1. Perform SetFunctionName(_closure_, _propKey_, `"set"`). + 1. Perform SetFunctionName(_closure_, _propKey_, *"set"*). 1. Set _closure_.[[SourceText]] to the source text matched by |MethodDefinition|. 1. Let _desc_ be the PropertyDescriptor { [[Set]]: _closure_, [[Enumerable]]: _enumerable_, [[Configurable]]: *true* }. 1. Return ? DefinePropertyOrThrow(_object_, _propKey_, _desc_). @@ -19983,7 +19983,7 @@

          Static Semantics: Early Errors

          If the source code matching |FormalParameters| is strict mode code, the Early Error rules for UniqueFormalParameters : FormalParameters are applied.
        • - If |BindingIdentifier| is present and the source code matching |BindingIdentifier| is strict mode code, it is a Syntax Error if the StringValue of |BindingIdentifier| is `"eval"` or `"arguments"`. + If |BindingIdentifier| is present and the source code matching |BindingIdentifier| is strict mode code, it is a Syntax Error if the StringValue of |BindingIdentifier| is *"eval"* or *"arguments"*.
        • It is a Syntax Error if ContainsUseStrict of |GeneratorBody| is *true* and IsSimpleParameterList of |FormalParameters| is *false*. @@ -20018,10 +20018,10 @@

          Static Semantics: BoundNames

          GeneratorDeclaration : `function` `*` `(` FormalParameters `)` `{` GeneratorBody `}` - 1. Return « `"*default*"` ». + 1. Return « *"*default*"* ». -

          `"*default*"` is used within this specification as a synthetic name for hoistable anonymous functions that are defined using export declarations.

          +

          *"*default*"* is used within this specification as a synthetic name for hoistable anonymous functions that are defined using export declarations.

          @@ -20115,7 +20115,7 @@

          Runtime Semantics: EvaluateBody

          GeneratorBody : FunctionBody 1. Perform ? FunctionDeclarationInstantiation(_functionObject_, _argumentsList_). - 1. Let _G_ be ? OrdinaryCreateFromConstructor(_functionObject_, `"%Generator.prototype%"`, « [[GeneratorState]], [[GeneratorContext]] »). + 1. Let _G_ be ? OrdinaryCreateFromConstructor(_functionObject_, *"%Generator.prototype%"*, « [[GeneratorState]], [[GeneratorContext]] »). 1. Perform GeneratorStart(_G_, |FunctionBody|). 1. Return Completion { [[Type]]: ~return~, [[Value]]: _G_, [[Target]]: ~empty~ }. @@ -20130,7 +20130,7 @@

          Runtime Semantics: InstantiateFunctionObject

          1. Let _name_ be StringValue of |BindingIdentifier|. 1. Let _F_ be GeneratorFunctionCreate(~Normal~, |FormalParameters|, |GeneratorBody|, _scope_). 1. Let _prototype_ be ObjectCreate(%Generator.prototype%). - 1. Perform DefinePropertyOrThrow(_F_, `"prototype"`, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform DefinePropertyOrThrow(_F_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Perform SetFunctionName(_F_, _name_). 1. Set _F_.[[SourceText]] to the source text matched by |GeneratorDeclaration|. 1. Return _F_. @@ -20139,8 +20139,8 @@

          Runtime Semantics: InstantiateFunctionObject

          1. Let _F_ be GeneratorFunctionCreate(~Normal~, |FormalParameters|, |GeneratorBody|, _scope_). 1. Let _prototype_ be ObjectCreate(%Generator.prototype%). - 1. Perform DefinePropertyOrThrow(_F_, `"prototype"`, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). - 1. Perform SetFunctionName(_F_, `"default"`). + 1. Perform DefinePropertyOrThrow(_F_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform SetFunctionName(_F_, *"default"*). 1. Set _F_.[[SourceText]] to the source text matched by |GeneratorDeclaration|. 1. Return _F_. @@ -20161,7 +20161,7 @@

          Runtime Semantics: PropertyDefinitionEvaluation

          1. Let _closure_ be GeneratorFunctionCreate(~Method~, |UniqueFormalParameters|, |GeneratorBody|, _scope_). 1. Perform MakeMethod(_closure_, _object_). 1. Let _prototype_ be ObjectCreate(%Generator.prototype%). - 1. Perform DefinePropertyOrThrow(_closure_, `"prototype"`, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Perform SetFunctionName(_closure_, _propKey_). 1. Set _closure_.[[SourceText]] to the source text matched by |GeneratorMethod|. 1. Let _desc_ be the PropertyDescriptor { [[Value]]: _closure_, [[Writable]]: *true*, [[Enumerable]]: _enumerable_, [[Configurable]]: *true* }. @@ -20187,7 +20187,7 @@

          Runtime Semantics: Evaluation

          1. Let _scope_ be the LexicalEnvironment of the running execution context. 1. Let _closure_ be GeneratorFunctionCreate(~Normal~, |FormalParameters|, |GeneratorBody|, _scope_). 1. Let _prototype_ be ObjectCreate(%Generator.prototype%). - 1. Perform DefinePropertyOrThrow(_closure_, `"prototype"`, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Set _closure_.[[SourceText]] to the source text matched by |GeneratorExpression|. 1. Return _closure_. @@ -20200,7 +20200,7 @@

          Runtime Semantics: Evaluation

          1. Perform _envRec_.CreateImmutableBinding(_name_, *false*). 1. Let _closure_ be GeneratorFunctionCreate(~Normal~, |FormalParameters|, |GeneratorBody|, _funcEnv_). 1. Let _prototype_ be ObjectCreate(%Generator.prototype%). - 1. Perform DefinePropertyOrThrow(_closure_, `"prototype"`, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Perform SetFunctionName(_closure_, _name_). 1. Perform _envRec_.InitializeBinding(_name_, _closure_). 1. Set _closure_.[[SourceText]] to the source text matched by |GeneratorExpression|. @@ -20242,7 +20242,7 @@

          Runtime Semantics: Evaluation

          1. If _generatorKind_ is ~async~, then set _received_ to AsyncGeneratorYield(? IteratorValue(_innerResult_)). 1. Else, set _received_ to GeneratorYield(_innerResult_). 1. Else if _received_.[[Type]] is ~throw~, then - 1. Let _throw_ be ? GetMethod(_iterator_, `"throw"`). + 1. Let _throw_ be ? GetMethod(_iterator_, *"throw"*). 1. If _throw_ is not *undefined*, then 1. Let _innerResult_ be ? Call(_throw_, _iterator_, « _received_.[[Value]] »). 1. If _generatorKind_ is ~async~, then set _innerResult_ to ? Await(_innerResult_). @@ -20262,7 +20262,7 @@

          Runtime Semantics: Evaluation

          1. Throw a *TypeError* exception. 1. Else, 1. Assert: _received_.[[Type]] is ~return~. - 1. Let _return_ be ? GetMethod(_iterator_, `"return"`). + 1. Let _return_ be ? GetMethod(_iterator_, *"return"*). 1. If _return_ is *undefined*, then 1. If _generatorKind_ is ~async~, then set _received_.[[Value]] to ? Await(_received_.[[Value]]). 1. Return Completion(_received_). @@ -20322,7 +20322,7 @@

          Static Semantics: Early Errors

          • If the source code matching |FormalParameters| is strict mode code, the Early Error rules for UniqueFormalParameters : FormalParameters are applied.
          • -
          • If |BindingIdentifier| is present and the source code matching |BindingIdentifier| is strict mode code, it is a Syntax Error if the StringValue of |BindingIdentifier| is `"eval"` or `"arguments"`.
          • +
          • If |BindingIdentifier| is present and the source code matching |BindingIdentifier| is strict mode code, it is a Syntax Error if the StringValue of |BindingIdentifier| is *"eval"* or *"arguments"*.
          • It is a Syntax Error if ContainsUseStrict of |AsyncGeneratorBody| is *true* and IsSimpleParameterList of |FormalParameters| is *false*.
          • It is a Syntax Error if any element of the BoundNames of |FormalParameters| also occurs in the LexicallyDeclaredNames of |AsyncGeneratorBody|.
          • It is a Syntax Error if |FormalParameters| Contains |YieldExpression| is *true*.
          • @@ -20343,10 +20343,10 @@

            Static Semantics: BoundNames

            AsyncGeneratorDeclaration : `async` `function` `*` `(` FormalParameters `)` `{` AsyncGeneratorBody `}` - 1. Return « `"*default*"` ». + 1. Return « *"*default*"* ». -

            `"*default*"` is used within this specification as a synthetic name for hoistable anonymous functions that are defined using export declarations.

            +

            *"*default*"* is used within this specification as a synthetic name for hoistable anonymous functions that are defined using export declarations.

            @@ -20441,7 +20441,7 @@

            Runtime Semantics: EvaluateBody

            1. Perform ? FunctionDeclarationInstantiation(_functionObject_, _argumentsList_). - 1. Let _generator_ be ? OrdinaryCreateFromConstructor(_functionObject_, `"%AsyncGenerator.prototype%"`, « [[AsyncGeneratorState]], [[AsyncGeneratorContext]], [[AsyncGeneratorQueue]] »). + 1. Let _generator_ be ? OrdinaryCreateFromConstructor(_functionObject_, *"%AsyncGenerator.prototype%"*, « [[AsyncGeneratorState]], [[AsyncGeneratorContext]], [[AsyncGeneratorQueue]] »). 1. Perform ! AsyncGeneratorStart(_generator_, |FunctionBody|). 1. Return Completion { [[Type]]: ~return~, [[Value]]: _generator_, [[Target]]: ~empty~ }. @@ -20457,7 +20457,7 @@

            Runtime Semantics: InstantiateFunctionObject

            1. Let _name_ be StringValue of |BindingIdentifier|. 1. Let _F_ be ! AsyncGeneratorFunctionCreate(~Normal~, |FormalParameters|, |AsyncGeneratorBody|, _scope_). 1. Let _prototype_ be ! ObjectCreate(%AsyncGenerator.prototype%). - 1. Perform ! DefinePropertyOrThrow(_F_, `"prototype"`, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! DefinePropertyOrThrow(_F_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Perform ! SetFunctionName(_F_, _name_). 1. Set _F_.[[SourceText]] to the source text matched by |AsyncGeneratorDeclaration|. 1. Return _F_. @@ -20469,8 +20469,8 @@

            Runtime Semantics: InstantiateFunctionObject

            1. Let _F_ be AsyncGeneratorFunctionCreate(~Normal~, |FormalParameters|, |AsyncGeneratorBody|, _scope_). 1. Let _prototype_ be ObjectCreate(%AsyncGenerator.prototype%). - 1. Perform DefinePropertyOrThrow(_F_, `"prototype"`, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). - 1. Perform SetFunctionName(_F_, `"default"`). + 1. Perform DefinePropertyOrThrow(_F_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform SetFunctionName(_F_, *"default"*). 1. Set _F_.[[SourceText]] to the source text matched by |AsyncGeneratorDeclaration|. 1. Return _F_. @@ -20492,7 +20492,7 @@

            Runtime Semantics: PropertyDefinitionEvaluation

            1. Let _closure_ be ! AsyncGeneratorFunctionCreate(~Method~, |UniqueFormalParameters|, |AsyncGeneratorBody|, _scope_). 1. Perform ! MakeMethod(_closure_, _object_). 1. Let _prototype_ be ! ObjectCreate(%AsyncGenerator.prototype%). - 1. Perform ! DefinePropertyOrThrow(_closure_, `"prototype"`, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Perform ! SetFunctionName(_closure_, _propKey_). 1. Set _closure_.[[SourceText]] to the source text matched by |AsyncGeneratorMethod|. 1. Let _desc_ be PropertyDescriptor { [[Value]]: _closure_, [[Writable]]: *true*, [[Enumerable]]: _enumerable_, [[Configurable]]: *true* }. @@ -20523,7 +20523,7 @@

            Runtime Semantics: Evaluation

            1. Let _scope_ be the LexicalEnvironment of the running execution context. 1. Let _closure_ be ! AsyncGeneratorFunctionCreate(~Normal~, |FormalParameters|, |AsyncGeneratorBody|, _scope_). 1. Let _prototype_ be ! ObjectCreate(%AsyncGenerator.prototype%). - 1. Perform ! DefinePropertyOrThrow(_closure_, `"prototype"`, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Set _closure_.[[SourceText]] to the source text matched by |AsyncGeneratorExpression|. 1. Return _closure_. @@ -20539,7 +20539,7 @@

            Runtime Semantics: Evaluation

            1. Perform ! _envRec_.CreateImmutableBinding(_name_). 1. Let _closure_ be ! AsyncGeneratorFunctionCreate(~Normal~, |FormalParameters|, |AsyncGeneratorBody|, _funcEnv_). 1. Let _prototype_ be ! ObjectCreate(%AsyncGenerator.prototype%). - 1. Perform ! DefinePropertyOrThrow(_closure_, `"prototype"`, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform ! DefinePropertyOrThrow(_closure_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Perform ! SetFunctionName(_closure_, _name_). 1. Perform ! _envRec_.InitializeBinding(_name_, _closure_). 1. Set _closure_.[[SourceText]] to the source text matched by |AsyncGeneratorExpression|. @@ -20600,16 +20600,16 @@

            Static Semantics: Early Errors

            ClassBody : ClassElementList
            • - It is a Syntax Error if PrototypePropertyNameList of |ClassElementList| contains more than one occurrence of `"constructor"`. + It is a Syntax Error if PrototypePropertyNameList of |ClassElementList| contains more than one occurrence of *"constructor"*.
            ClassElement : MethodDefinition
            • - It is a Syntax Error if PropName of |MethodDefinition| is not `"constructor"` and HasDirectSuper of |MethodDefinition| is *true*. + It is a Syntax Error if PropName of |MethodDefinition| is not *"constructor"* and HasDirectSuper of |MethodDefinition| is *true*.
            • - It is a Syntax Error if PropName of |MethodDefinition| is `"constructor"` and SpecialMethod of |MethodDefinition| is *true*. + It is a Syntax Error if PropName of |MethodDefinition| is *"constructor"* and SpecialMethod of |MethodDefinition| is *true*.
            ClassElement : `static` MethodDefinition @@ -20618,7 +20618,7 @@

            Static Semantics: Early Errors

            It is a Syntax Error if HasDirectSuper of |MethodDefinition| is *true*.
          • - It is a Syntax Error if PropName of |MethodDefinition| is `"prototype"`. + It is a Syntax Error if PropName of |MethodDefinition| is *"prototype"*.
          @@ -20632,7 +20632,7 @@

          Static Semantics: BoundNames

          ClassDeclaration : `class` ClassTail - 1. Return « `"*default*"` ». + 1. Return « *"*default*"* ». @@ -20642,7 +20642,7 @@

          Static Semantics: ConstructorMethod

          1. If |ClassElement| is ClassElement : `;` , return ~empty~. 1. If IsStatic of |ClassElement| is *true*, return ~empty~. - 1. If PropName of |ClassElement| is not `"constructor"`, return ~empty~. + 1. If PropName of |ClassElement| is not *"constructor"*, return ~empty~. 1. Return |ClassElement|. ClassElementList : ClassElementList ClassElement @@ -20651,11 +20651,11 @@

          Static Semantics: ConstructorMethod

          1. If _head_ is not ~empty~, return _head_. 1. If |ClassElement| is ClassElement : `;` , return ~empty~. 1. If IsStatic of |ClassElement| is *true*, return ~empty~. - 1. If PropName of |ClassElement| is not `"constructor"`, return ~empty~. + 1. If PropName of |ClassElement| is not *"constructor"*, return ~empty~. 1. Return |ClassElement|. -

          Early Error rules ensure that there is only one method definition named `"constructor"` and that it is not an accessor property or generator definition.

          +

          Early Error rules ensure that there is only one method definition named *"constructor"* and that it is not an accessor property or generator definition.

          @@ -20757,14 +20757,14 @@

          Static Semantics: NonConstructorMethodDefinitions

          ClassElementList : ClassElement 1. If |ClassElement| is ClassElement : `;` , return a new empty List. - 1. If IsStatic of |ClassElement| is *false* and PropName of |ClassElement| is `"constructor"`, return a new empty List. + 1. If IsStatic of |ClassElement| is *false* and PropName of |ClassElement| is *"constructor"*, return a new empty List. 1. Return a List containing |ClassElement|. ClassElementList : ClassElementList ClassElement 1. Let _list_ be NonConstructorMethodDefinitions of |ClassElementList|. 1. If |ClassElement| is ClassElement : `;` , return _list_. - 1. If IsStatic of |ClassElement| is *false* and PropName of |ClassElement| is `"constructor"`, return _list_. + 1. If IsStatic of |ClassElement| is *false* and PropName of |ClassElement| is *"constructor"*, return _list_. 1. Append |ClassElement| to the end of _list_. 1. Return _list_. @@ -20820,7 +20820,7 @@

          Runtime Semantics: ClassDefinitionEvaluation

          1. Let _constructorParent_ be %Function.prototype%. 1. Else if IsConstructor(_superclass_) is *false*, throw a *TypeError* exception. 1. Else, - 1. Let _protoParent_ be ? Get(_superclass_, `"prototype"`). + 1. Let _protoParent_ be ? Get(_superclass_, *"prototype"*). 1. If Type(_protoParent_) is neither Object nor Null, throw a *TypeError* exception. 1. Let _constructorParent_ be _superclass_. 1. Let _proto_ be ObjectCreate(_protoParent_). @@ -20843,7 +20843,7 @@

          Runtime Semantics: ClassDefinitionEvaluation

          1. Perform MakeClassConstructor(_F_). 1. If _className_ is not *undefined*, then 1. Perform SetFunctionName(_F_, _className_). - 1. Perform CreateMethodProperty(_proto_, `"constructor"`, _F_). + 1. Perform CreateMethodProperty(_proto_, *"constructor"*, _F_). 1. If |ClassBody_opt| is not present, let _methods_ be a new empty List. 1. Else, let _methods_ be NonConstructorMethodDefinitions of |ClassBody|. 1. For each |ClassElement| _m_ in order from _methods_, do @@ -20874,7 +20874,7 @@

          Runtime Semantics: BindingClassDeclarationEvaluation

          ClassDeclaration : `class` ClassTail - 1. Let _value_ be ? ClassDefinitionEvaluation of |ClassTail| with arguments *undefined* and `"default"`. + 1. Let _value_ be ? ClassDefinitionEvaluation of |ClassTail| with arguments *undefined* and *"default"*. 1. Set _value_.[[SourceText]] to the source text matched by |ClassDeclaration|. 1. Return _value_. @@ -20979,7 +20979,7 @@

          Static Semantics: Early Errors

        • It is a Syntax Error if ContainsUseStrict of |AsyncFunctionBody| is *true* and IsSimpleParameterList of |FormalParameters| is *false*.
        • It is a Syntax Error if |FormalParameters| Contains |AwaitExpression| is *true*.
        • If the source code matching |FormalParameters| is strict mode code, the Early Error rules for UniqueFormalParameters : FormalParameters are applied.
        • -
        • If |BindingIdentifier| is present and the source code matching |BindingIdentifier| is strict mode code, it is a Syntax Error if the StringValue of |BindingIdentifier| is `"eval"` or `"arguments"`.
        • +
        • If |BindingIdentifier| is present and the source code matching |BindingIdentifier| is strict mode code, it is a Syntax Error if the StringValue of |BindingIdentifier| is *"eval"* or *"arguments"*.
        • It is a Syntax Error if any element of the BoundNames of |FormalParameters| also occurs in the LexicallyDeclaredNames of |AsyncFunctionBody|.
        • It is a Syntax Error if |FormalParameters| Contains |SuperProperty| is *true*.
        • It is a Syntax Error if |AsyncFunctionBody| Contains |SuperProperty| is *true*.
        • @@ -21000,7 +21000,7 @@

          Static Semantics: BoundNames

          AsyncFunctionDeclaration : `async` `function` `(` FormalParameters `)` `{` AsyncFunctionBody `}` - 1. Return « `"*default*"` ». + 1. Return « *"*default*"* ». "`*default*`" is used within this specification as a synthetic name for hoistable anonymous functions that are defined using export declarations. @@ -21112,7 +21112,7 @@

          Runtime Semantics: InstantiateFunctionObject

          1. Let _F_ be ! AsyncFunctionCreate(~Normal~, |FormalParameters|, |AsyncFunctionBody|, _scope_). - 1. Perform ! SetFunctionName(_F_, `"default"`). + 1. Perform ! SetFunctionName(_F_, *"default"*). 1. Set _F_.[[SourceText]] to the source text matched by |AsyncFunctionDeclaration|. 1. Return _F_. @@ -22538,7 +22538,7 @@

          Abstract Module Records

          ResolveExport(_exportName_ [, _resolveSet_]) -

          Return the binding of a name exported by this module. Bindings are represented by a ResolvedBinding Record, of the form { [[Module]]: Module Record, [[BindingName]]: String }. If the export is a Module Namespace Object without a direct binding in any module, [[BindingName]] will be set to `"*namespace*"`. Return *null* if the name cannot be resolved, or `"ambiguous"` if multiple bindings were found.

          +

          Return the binding of a name exported by this module. Bindings are represented by a ResolvedBinding Record, of the form { [[Module]]: Module Record, [[BindingName]]: String }. If the export is a Module Namespace Object without a direct binding in any module, [[BindingName]] will be set to *"*namespace*"*. Return *null* if the name cannot be resolved, or *"ambiguous"* if multiple bindings were found.

          This operation must be idempotent if it completes normally. Each time it is called with a specific _exportName_, _resolveSet_ pair as arguments it must return the same result.

          @@ -23025,13 +23025,13 @@

          Source Text Module Records

          `import v from "mod";` - `"mod"` + *"mod"* - `"default"` + *"default"* - `"v"` + *"v"* @@ -23039,13 +23039,13 @@

          Source Text Module Records

          `import * as ns from "mod";` - `"mod"` + *"mod"* - `"*"` + *"*"* - `"ns"` + *"ns"* @@ -23053,13 +23053,13 @@

          Source Text Module Records

          `import {x} from "mod";` - `"mod"` + *"mod"* - `"x"` + *"x"* - `"x"` + *"x"* @@ -23067,13 +23067,13 @@

          Source Text Module Records

          `import {x as v} from "mod";` - `"mod"` + *"mod"* - `"x"` + *"x"* - `"v"` + *"v"* @@ -23133,7 +23133,7 @@

          Source Text Module Records

          String | null - The name under which the desired binding is exported by the module identified by [[ModuleRequest]]. *null* if the |ExportDeclaration| does not have a |ModuleSpecifier|. `"*"` indicates that the export request is for all exported bindings. + The name under which the desired binding is exported by the module identified by [[ModuleRequest]]. *null* if the |ExportDeclaration| does not have a |ModuleSpecifier|. *"*"* indicates that the export request is for all exported bindings. @@ -23177,7 +23177,7 @@

          Source Text Module Records

          `export var v;` - `"v"` + *"v"* *null* @@ -23186,7 +23186,7 @@

          Source Text Module Records

          *null* - `"v"` + *"v"* @@ -23194,7 +23194,7 @@

          Source Text Module Records

          `export default function f() {}` - `"default"` + *"default"* *null* @@ -23203,7 +23203,7 @@

          Source Text Module Records

          *null* - `"f"` + *"f"* @@ -23211,7 +23211,7 @@

          Source Text Module Records

          `export default function () {}` - `"default"` + *"default"* *null* @@ -23220,7 +23220,7 @@

          Source Text Module Records

          *null* - `"*default*"` + *"*default*"* @@ -23228,7 +23228,7 @@

          Source Text Module Records

          `export default 42;` - `"default"` + *"default"* *null* @@ -23237,7 +23237,7 @@

          Source Text Module Records

          *null* - `"*default*"` + *"*default*"* @@ -23245,7 +23245,7 @@

          Source Text Module Records

          `export {x};` - `"x"` + *"x"* *null* @@ -23254,7 +23254,7 @@

          Source Text Module Records

          *null* - `"x"` + *"x"* @@ -23262,7 +23262,7 @@

          Source Text Module Records

          `export {v as x};` - `"x"` + *"x"* *null* @@ -23271,7 +23271,7 @@

          Source Text Module Records

          *null* - `"v"` + *"v"* @@ -23279,13 +23279,13 @@

          Source Text Module Records

          `export {x} from "mod";` - `"x"` + *"x"* - `"mod"` + *"mod"* - `"x"` + *"x"* *null* @@ -23296,13 +23296,13 @@

          Source Text Module Records

          `export {v as x} from "mod";` - `"x"` + *"x"* - `"mod"` + *"mod"* - `"v"` + *"v"* *null* @@ -23316,10 +23316,10 @@

          Source Text Module Records

          *null* - `"mod"` + *"mod"* - `"*"` + *"*"* *null* @@ -23330,13 +23330,13 @@

          Source Text Module Records

          `export * as ns from "mod";` - `"ns"` + *"ns"* - `"mod"` + *"mod"* - `"*"` + *"*"* *null* @@ -23368,13 +23368,13 @@

          ParseModule ( _sourceText_, _realm_, _hostDefined_ )

          1. Append _ee_ to _localExportEntries_. 1. Else, 1. Let _ie_ be the element of _importEntries_ whose [[LocalName]] is the same as _ee_.[[LocalName]]. - 1. If _ie_.[[ImportName]] is `"*"`, then + 1. If _ie_.[[ImportName]] is *"*"*, then 1. NOTE: This is a re-export of an imported module namespace object. 1. Append _ee_ to _localExportEntries_. 1. Else, 1. NOTE: This is a re-export of a single name. 1. Append the ExportEntry Record { [[ModuleRequest]]: _ie_.[[ModuleRequest]], [[ImportName]]: _ie_.[[ImportName]], [[LocalName]]: *null*, [[ExportName]]: _ee_.[[ExportName]] } to _indirectExportEntries_. - 1. Else if _ee_.[[ImportName]] is `"*"` and _ee_.[[ExportName]] is *null*, then + 1. Else if _ee_.[[ImportName]] is *"*"* and _ee_.[[ExportName]] is *null*, then 1. Append _ee_ to _starExportEntries_. 1. Else, 1. Append _ee_ to _indirectExportEntries_. @@ -23408,7 +23408,7 @@

          GetExportedNames ( [ _exportStarSet_ ] ) Concrete Method

          1. Let _requestedModule_ be ? HostResolveImportedModule(_module_, _e_.[[ModuleRequest]]). 1. Let _starNames_ be ? _requestedModule_.GetExportedNames(_exportStarSet_). 1. For each element _n_ of _starNames_, do - 1. If SameValue(_n_, `"default"`) is *false*, then + 1. If SameValue(_n_, *"default"*) is *false*, then 1. If _n_ is not an element of _exportedNames_, then 1. Append _n_ to _exportedNames_. 1. Return _exportedNames_. @@ -23424,7 +23424,7 @@

          ResolveExport ( _exportName_ [ , _resolveSet_ ] ) Concrete Method

          ResolveExport attempts to resolve an imported binding to the actual defining module and local binding name. The defining module may be the module represented by the Module Record this method was invoked on or some other module that is imported by that module. The parameter _resolveSet_ is used to detect unresolved circular import/export paths. If a pair consisting of specific Module Record and _exportName_ is reached that is already in _resolveSet_, an import circularity has been encountered. Before recursively calling ResolveExport, a pair consisting of _module_ and _exportName_ is added to _resolveSet_.

          -

          If a defining module is found, a ResolvedBinding Record { [[Module]], [[BindingName]] } is returned. This record identifies the resolved binding of the originally requested export, unless this is the export of a namespace with no local binding. In this case, [[BindingName]] will be set to `"*namespace*"`. If no definition was found or the request is found to be circular, *null* is returned. If the request is found to be ambiguous, the string `"ambiguous"` is returned.

          +

          If a defining module is found, a ResolvedBinding Record { [[Module]], [[BindingName]] } is returned. This record identifies the resolved binding of the originally requested export, unless this is the export of a namespace with no local binding. In this case, [[BindingName]] will be set to *"*namespace*"*. If no definition was found or the request is found to be circular, *null* is returned. If the request is found to be ambiguous, the string *"ambiguous"* is returned.

          This abstract method performs the following steps:

          @@ -23444,13 +23444,13 @@

          ResolveExport ( _exportName_ [ , _resolveSet_ ] ) Concrete Method

          1. For each ExportEntry Record _e_ in _module_.[[IndirectExportEntries]], do 1. If SameValue(_exportName_, _e_.[[ExportName]]) is *true*, then 1. Let _importedModule_ be ? HostResolveImportedModule(_module_, _e_.[[ModuleRequest]]). - 1. If _e_.[[ImportName]] is `"*"`, then + 1. If _e_.[[ImportName]] is *"*"*, then 1. Assert: _module_ does not provide the direct binding for this export. - 1. Return ResolvedBinding Record { [[Module]]: _importedModule_, [[BindingName]]: `"*namespace*"` }. + 1. Return ResolvedBinding Record { [[Module]]: _importedModule_, [[BindingName]]: *"*namespace*"* }. 1. Else, 1. Assert: _module_ imports a specific binding for this export. 1. Return _importedModule_.ResolveExport(_e_.[[ImportName]], _resolveSet_). - 1. If SameValue(_exportName_, `"default"`) is *true*, then + 1. If SameValue(_exportName_, *"default"*) is *true*, then 1. Assert: A `default` export was not explicitly defined by this module. 1. Return *null*. 1. NOTE: A `default` export cannot be provided by an `export *` or `export * from "mod"` declaration. @@ -23458,13 +23458,13 @@

          ResolveExport ( _exportName_ [ , _resolveSet_ ] ) Concrete Method

          1. For each ExportEntry Record _e_ in _module_.[[StarExportEntries]], do 1. Let _importedModule_ be ? HostResolveImportedModule(_module_, _e_.[[ModuleRequest]]). 1. Let _resolution_ be ? _importedModule_.ResolveExport(_exportName_, _resolveSet_). - 1. If _resolution_ is `"ambiguous"`, return `"ambiguous"`. + 1. If _resolution_ is *"ambiguous"*, return *"ambiguous"*. 1. If _resolution_ is not *null*, then 1. Assert: _resolution_ is a ResolvedBinding Record. 1. If _starResolution_ is *null*, set _starResolution_ to _resolution_. 1. Else, 1. Assert: There is more than one `*` import that includes the requested name. - 1. If _resolution_.[[Module]] and _starResolution_.[[Module]] are not the same Module Record or SameValue(_resolution_.[[BindingName]], _starResolution_.[[BindingName]]) is *false*, return `"ambiguous"`. + 1. If _resolution_.[[Module]] and _starResolution_.[[Module]] are not the same Module Record or SameValue(_resolution_.[[BindingName]], _starResolution_.[[BindingName]]) is *false*, return *"ambiguous"*. 1. Return _starResolution_. @@ -23480,7 +23480,7 @@

          InitializeEnvironment ( ) Concrete Method

          1. Let _module_ be this Source Text Module Record. 1. For each ExportEntry Record _e_ in _module_.[[IndirectExportEntries]], do 1. Let _resolution_ be ? _module_.ResolveExport(_e_.[[ExportName]]). - 1. If _resolution_ is *null* or `"ambiguous"`, throw a *SyntaxError* exception. + 1. If _resolution_ is *null* or *"ambiguous"*, throw a *SyntaxError* exception. 1. Assert: _resolution_ is a ResolvedBinding Record. 1. Assert: All named exports from _module_ are resolvable. 1. Let _realm_ be _module_.[[Realm]]. @@ -23491,14 +23491,14 @@

          InitializeEnvironment ( ) Concrete Method

          1. For each ImportEntry Record _in_ in _module_.[[ImportEntries]], do 1. Let _importedModule_ be ! HostResolveImportedModule(_module_, _in_.[[ModuleRequest]]). 1. NOTE: The above call cannot fail because imported module requests are a subset of _module_.[[RequestedModules]], and these have been resolved earlier in this algorithm. - 1. If _in_.[[ImportName]] is `"*"`, then + 1. If _in_.[[ImportName]] is *"*"*, then 1. Let _namespace_ be ? GetModuleNamespace(_importedModule_). 1. Perform ! _envRec_.CreateImmutableBinding(_in_.[[LocalName]], *true*). 1. Call _envRec_.InitializeBinding(_in_.[[LocalName]], _namespace_). 1. Else, 1. Let _resolution_ be ? _importedModule_.ResolveExport(_in_.[[ImportName]]). - 1. If _resolution_ is *null* or `"ambiguous"`, throw a *SyntaxError* exception. - 1. If _resolution_.[[BindingName]] is `"*namespace*"`, then + 1. If _resolution_ is *null* or *"ambiguous"*, throw a *SyntaxError* exception. + 1. If _resolution_.[[BindingName]] is *"*namespace*"*, then 1. Let _namespace_ be ? GetModuleNamespace(_resolution_.[[Module]]). 1. Perform ! _envRec_.CreateImmutableBinding(_in_.[[LocalName]], *true*). 1. Call _envRec_.InitializeBinding(_in_.[[LocalName]], _namespace_). @@ -23846,13 +23846,13 @@

          Static Semantics: ImportEntriesForModule

          ImportedDefaultBinding : ImportedBinding 1. Let _localName_ be the sole element of BoundNames of |ImportedBinding|. - 1. Let _defaultEntry_ be the ImportEntry Record { [[ModuleRequest]]: _module_, [[ImportName]]: `"default"`, [[LocalName]]: _localName_ }. + 1. Let _defaultEntry_ be the ImportEntry Record { [[ModuleRequest]]: _module_, [[ImportName]]: *"default"*, [[LocalName]]: _localName_ }. 1. Return a new List containing _defaultEntry_. NameSpaceImport : `*` `as` ImportedBinding 1. Let _localName_ be the StringValue of |ImportedBinding|. - 1. Let _entry_ be the ImportEntry Record { [[ModuleRequest]]: _module_, [[ImportName]]: `"*"`, [[LocalName]]: _localName_ }. + 1. Let _entry_ be the ImportEntry Record { [[ModuleRequest]]: _module_, [[ImportName]]: *"*"*, [[LocalName]]: _localName_ }. 1. Return a new List containing _entry_. NamedImports : `{` `}` @@ -23931,7 +23931,7 @@

          Static Semantics: Early Errors

          ExportDeclaration : `export` NamedExports `;`
          • - For each |IdentifierName| _n_ in ReferencedBindings of |NamedExports|: It is a Syntax Error if StringValue of _n_ is a |ReservedWord| or if the StringValue of _n_ is one of: `"implements"`, `"interface"`, `"let"`, `"package"`, `"private"`, `"protected"`, `"public"`, or `"static"`. + For each |IdentifierName| _n_ in ReferencedBindings of |NamedExports|: It is a Syntax Error if StringValue of _n_ is a |ReservedWord| or if the StringValue of _n_ is one of: *"implements"*, *"interface"*, *"let"*, *"package"*, *"private"*, *"protected"*, *"public"*, or *"static"*.
          @@ -23961,18 +23961,18 @@

          Static Semantics: BoundNames

          ExportDeclaration : `export` `default` HoistableDeclaration 1. Let _declarationNames_ be the BoundNames of |HoistableDeclaration|. - 1. If _declarationNames_ does not include the element `"*default*"`, append `"*default*"` to _declarationNames_. + 1. If _declarationNames_ does not include the element *"*default*"*, append *"*default*"* to _declarationNames_. 1. Return _declarationNames_. ExportDeclaration : `export` `default` ClassDeclaration 1. Let _declarationNames_ be the BoundNames of |ClassDeclaration|. - 1. If _declarationNames_ does not include the element `"*default*"`, append `"*default*"` to _declarationNames_. + 1. If _declarationNames_ does not include the element *"*default*"*, append *"*default*"* to _declarationNames_. 1. Return _declarationNames_. ExportDeclaration : `export` `default` AssignmentExpression `;` - 1. Return « `"*default*"` ». + 1. Return « *"*default*"* ». @@ -24063,7 +24063,7 @@

          Static Semantics: ExportedNames

          ExportDeclaration : `export` `default` AssignmentExpression `;` - 1. Return « `"default"` ». + 1. Return « *"default"* ». NamedExports : `{` `}` @@ -24117,21 +24117,21 @@

          Static Semantics: ExportEntries

          1. Let _names_ be BoundNames of |HoistableDeclaration|. 1. Let _localName_ be the sole element of _names_. - 1. Return a new List containing the ExportEntry Record { [[ModuleRequest]]: *null*, [[ImportName]]: *null*, [[LocalName]]: _localName_, [[ExportName]]: `"default"` }. + 1. Return a new List containing the ExportEntry Record { [[ModuleRequest]]: *null*, [[ImportName]]: *null*, [[LocalName]]: _localName_, [[ExportName]]: *"default"* }. ExportDeclaration : `export` `default` ClassDeclaration 1. Let _names_ be BoundNames of |ClassDeclaration|. 1. Let _localName_ be the sole element of _names_. - 1. Return a new List containing the ExportEntry Record { [[ModuleRequest]]: *null*, [[ImportName]]: *null*, [[LocalName]]: _localName_, [[ExportName]]: `"default"` }. + 1. Return a new List containing the ExportEntry Record { [[ModuleRequest]]: *null*, [[ImportName]]: *null*, [[LocalName]]: _localName_, [[ExportName]]: *"default"* }. ExportDeclaration : `export` `default` AssignmentExpression `;` - 1. Let _entry_ be the ExportEntry Record { [[ModuleRequest]]: *null*, [[ImportName]]: *null*, [[LocalName]]: `"*default*"`, [[ExportName]]: `"default"` }. + 1. Let _entry_ be the ExportEntry Record { [[ModuleRequest]]: *null*, [[ImportName]]: *null*, [[LocalName]]: *"*default*"*, [[ExportName]]: *"default"* }. 1. Return a new List containing _entry_. -

          `"*default*"` is used within this specification as a synthetic name for anonymous default export values.

          +

          *"*default*"* is used within this specification as a synthetic name for anonymous default export values.

          @@ -24140,13 +24140,13 @@

          Static Semantics: ExportEntriesForModule

          With parameter _module_.

          ExportFromClause : `*` - 1. Let _entry_ be the ExportEntry Record { [[ModuleRequest]]: _module_, [[ImportName]]: `"*"`, [[LocalName]]: *null*, [[ExportName]]: *null* }. + 1. Let _entry_ be the ExportEntry Record { [[ModuleRequest]]: _module_, [[ImportName]]: *"*"*, [[LocalName]]: *null*, [[ExportName]]: *null* }. 1. Return a new List containing _entry_. ExportFromClause : `*` `as` IdentifierName 1. Let _exportName_ be the StringValue of |IdentifierName|. - 1. Let _entry_ be the ExportEntry Record { [[ModuleRequest]]: _module_, [[ImportName]]: `"*"`, [[LocalName]]: *null*, [[ExportName]]: _exportName_ }. + 1. Let _entry_ be the ExportEntry Record { [[ModuleRequest]]: _module_, [[ImportName]]: *"*"*, [[LocalName]]: *null*, [[ExportName]]: _exportName_ }. 1. Return a new List containing _entry_. NamedExports : `{` `}` @@ -24302,20 +24302,20 @@

          Runtime Semantics: Evaluation

          1. Let _value_ be ? BindingClassDeclarationEvaluation of |ClassDeclaration|. 1. Let _className_ be the sole element of BoundNames of |ClassDeclaration|. - 1. If _className_ is `"*default*"`, then + 1. If _className_ is *"*default*"*, then 1. Let _env_ be the running execution context's LexicalEnvironment. - 1. Perform ? InitializeBoundName(`"*default*"`, _value_, _env_). + 1. Perform ? InitializeBoundName(*"*default*"*, _value_, _env_). 1. Return NormalCompletion(~empty~). ExportDeclaration : `export` `default` AssignmentExpression `;` 1. If IsAnonymousFunctionDefinition(|AssignmentExpression|) is *true*, then - 1. Let _value_ be NamedEvaluation of |AssignmentExpression| with argument `"default"`. + 1. Let _value_ be NamedEvaluation of |AssignmentExpression| with argument *"default"*. 1. Else, 1. Let _rhs_ be the result of evaluating |AssignmentExpression|. 1. Let _value_ be ? GetValue(_rhs_). 1. Let _env_ be the running execution context's LexicalEnvironment. - 1. Perform ? InitializeBoundName(`"*default*"`, _value_, _env_). + 1. Perform ? InitializeBoundName(*"*default*"*, _value_, _env_). 1. Return NormalCompletion(~empty~). @@ -24355,13 +24355,13 @@

          Forbidden Extensions

          An implementation must not extend this specification in the following ways:

          • - ECMAScript function objects defined using syntactic constructors in strict mode code must not be created with own properties named `"caller"` or `"arguments"`. Such own properties also must not be created for function objects defined using an |ArrowFunction|, |MethodDefinition|, |GeneratorDeclaration|, |GeneratorExpression|, |AsyncGeneratorDeclaration|, |AsyncGeneratorExpression|, |ClassDeclaration|, |ClassExpression|, |AsyncFunctionDeclaration|, |AsyncFunctionExpression|, or |AsyncArrowFunction| regardless of whether the definition is contained in strict mode code. Built-in functions, strict functions created using the `Function` constructor, generator functions created using the `Generator` constructor, async functions created using the `AsyncFunction` constructor, and functions created using the `bind` method also must not be created with such own properties. + ECMAScript function objects defined using syntactic constructors in strict mode code must not be created with own properties named *"caller"* or *"arguments"*. Such own properties also must not be created for function objects defined using an |ArrowFunction|, |MethodDefinition|, |GeneratorDeclaration|, |GeneratorExpression|, |AsyncGeneratorDeclaration|, |AsyncGeneratorExpression|, |ClassDeclaration|, |ClassExpression|, |AsyncFunctionDeclaration|, |AsyncFunctionExpression|, or |AsyncArrowFunction| regardless of whether the definition is contained in strict mode code. Built-in functions, strict functions created using the `Function` constructor, generator functions created using the `Generator` constructor, async functions created using the `AsyncFunction` constructor, and functions created using the `bind` method also must not be created with such own properties.
          • - If an implementation extends any function object with an own property named `"caller"` the value of that property, as observed using [[Get]] or [[GetOwnProperty]], must not be a strict function object. If it is an accessor property, the function that is the value of the property's [[Get]] attribute must never return a strict function when called. + If an implementation extends any function object with an own property named *"caller"* the value of that property, as observed using [[Get]] or [[GetOwnProperty]], must not be a strict function object. If it is an accessor property, the function that is the value of the property's [[Get]] attribute must never return a strict function when called.
          • - Neither mapped nor unmapped arguments objects may be created with an own property named `"caller"`. + Neither mapped nor unmapped arguments objects may be created with an own property named *"caller"*.
          • The behaviour of the following methods must not be extended except as specified in ECMA-402: `Object.prototype.toLocaleString`, `Array.prototype.toLocaleString`, `Number.prototype.toLocaleString`, `Date.prototype.toLocaleDateString`, `Date.prototype.toLocaleString`, `Date.prototype.toLocaleTimeString`, `String.prototype.localeCompare`, %TypedArray%`.prototype.toLocaleString`. @@ -24406,13 +24406,13 @@

            ECMAScript Standard Built-in Objects

            Unless otherwise specified every built-in prototype object has the Object prototype object, which is the initial value of the expression `Object.prototype` (), as the value of its [[Prototype]] internal slot, except the Object prototype object itself.

            Built-in function objects that are not identified as constructors do not implement the [[Construct]] internal method unless otherwise specified in the description of a particular function.

            Each built-in function defined in this specification is created by calling the CreateBuiltinFunction abstract operation ().

            -

            Every built-in function object, including constructors, has a `"length"` property whose value is an integer. Unless otherwise specified, this value is equal to the largest number of named arguments shown in the subclause headings for the function description. Optional parameters (which are indicated with brackets: `[` `]`) or rest parameters (which are shown using the form «...name») are not included in the default argument count.

            +

            Every built-in function object, including constructors, has a *"length"* property whose value is an integer. Unless otherwise specified, this value is equal to the largest number of named arguments shown in the subclause headings for the function description. Optional parameters (which are indicated with brackets: `[` `]`) or rest parameters (which are shown using the form «...name») are not included in the default argument count.

            -

            For example, the function object that is the initial value of the `"map"` property of the Array prototype object is described under the subclause heading «Array.prototype.map (callbackFn [ , thisArg])» which shows the two named arguments callbackFn and thisArg, the latter being optional; therefore the value of the `"length"` property of that function object is 1.

            +

            For example, the function object that is the initial value of the *"map"* property of the Array prototype object is described under the subclause heading «Array.prototype.map (callbackFn [ , thisArg])» which shows the two named arguments callbackFn and thisArg, the latter being optional; therefore the value of the *"length"* property of that function object is 1.

            -

            Unless otherwise specified, the `"length"` property of a built-in function object has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *true* }.

            -

            Every built-in function object, including constructors, that is not identified as an anonymous function has a `"name"` property whose value is a String. Unless otherwise specified, this value is the name that is given to the function in this specification. For functions that are specified as properties of objects, the name value is the property name string used to access the function. Functions that are specified as get or set accessor functions of built-in properties have `"get "` or `"set "` prepended to the property name string. The value of the `"name"` property is explicitly specified for each built-in functions whose property key is a Symbol value.

            -

            Unless otherwise specified, the `"name"` property of a built-in function object, if it exists, has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *true* }.

            +

            Unless otherwise specified, the *"length"* property of a built-in function object has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *true* }.

            +

            Every built-in function object, including constructors, that is not identified as an anonymous function has a *"name"* property whose value is a String. Unless otherwise specified, this value is the name that is given to the function in this specification. For functions that are specified as properties of objects, the name value is the property name string used to access the function. Functions that are specified as get or set accessor functions of built-in properties have *"get "* or *"set "* prepended to the property name string. The value of the *"name"* property is explicitly specified for each built-in functions whose property key is a Symbol value.

            +

            Unless otherwise specified, the *"name"* property of a built-in function object, if it exists, has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *true* }.

            Every other data property described in clauses 18 through 26 and in Annex has the attributes { [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *true* } unless otherwise specified.

            Every accessor property described in clauses 18 through 26 and in Annex has the attributes { [[Enumerable]]: *false*, [[Configurable]]: *true* } unless otherwise specified. If only a get accessor function is described, the set accessor function is the default value, *undefined*. If only a set accessor is described the get accessor is the default value, *undefined*.

            @@ -24433,7 +24433,7 @@

            Value Properties of the Global Object

            globalThis

            -

            The initial value of the `"globalThis"` property of the global object in a Realm Record _realm_ is _realm_.[[GlobalEnv]]'s EnvironmentRecord's [[GlobalThisValue]].

            +

            The initial value of the *"globalThis"* property of the global object in a Realm Record _realm_ is _realm_.[[GlobalEnv]]'s EnvironmentRecord's [[GlobalThisValue]].

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

            @@ -24687,7 +24687,7 @@

            parseInt ( _string_, _radix_ )

            1. Else, 1. Set _R_ to 10. 1. If _stripPrefix_ is *true*, then - 1. If the length of _S_ is at least 2 and the first two code units of _S_ are either `"0x"` or `"0X"`, then + 1. If the length of _S_ is at least 2 and the first two code units of _S_ are either *"0x"* or *"0X"*, then 1. Remove the first two code units from _S_. 1. Set _R_ to 16. 1. If _S_ contains a code unit that is not a radix-_R_ digit, let _Z_ be the substring of _S_ consisting of all code units before the first such code unit; otherwise, let _Z_ be _S_. @@ -24754,7 +24754,7 @@

            Syntax

            The above syntax is based upon RFC 2396 and does not reflect changes introduced by the more recent RFC 3986.

            Runtime Semantics

            -

            When a code unit to be included in a URI is not listed above or is not intended to have the special meaning sometimes given to the reserved code units, that code unit must be encoded. The code unit is transformed into its UTF-8 encoding, with surrogate pairs first converted from UTF-16 to the corresponding code point value. (Note that for code units in the range [0, 127] this results in a single octet with the same value.) The resulting sequence of octets is then transformed into a String with each octet represented by an escape sequence of the form `"%xx"`.

            +

            When a code unit to be included in a URI is not listed above or is not intended to have the special meaning sometimes given to the reserved code units, that code unit must be encoded. The code unit is transformed into its UTF-8 encoding, with surrogate pairs first converted from UTF-16 to the corresponding code point value. (Note that for code units in the range [0, 127] this results in a single octet with the same value.) The resulting sequence of octets is then transformed into a String with each octet represented by an escape sequence of the form *"%xx"*.

            Runtime Semantics: Encode ( _string_, _unescapedSet_ )

            @@ -24777,7 +24777,7 @@

            Runtime Semantics: Encode ( _string_, _unescapedSet_ )

            1. For each element _octet_ of _Octets_ in List order, do 1. Set _R_ to the string-concatenation of: * the previous value of _R_ - * `"%"` + * *"%"* * the String representation of _octet_, formatted as a two-digit uppercase hexadecimal number, padded to the left with a zero if necessary
            @@ -25012,7 +25012,7 @@

            decodeURI ( _encodedURI_ )

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

            1. Let _uriString_ be ? ToString(_encodedURI_). - 1. Let _reservedURISet_ be a String containing one instance of each code unit valid in |uriReserved| plus `"#"`. + 1. Let _reservedURISet_ be a String containing one instance of each code unit valid in |uriReserved| plus *"#"*. 1. Return ? Decode(_uriString_, _reservedURISet_). @@ -25037,7 +25037,7 @@

            encodeURI ( _uri_ )

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

            1. Let _uriString_ be ? ToString(_uri_). - 1. Let _unescapedURISet_ be a String containing one instance of each code unit valid in |uriReserved| and |uriUnescaped| plus `"#"`. + 1. Let _unescapedURISet_ be a String containing one instance of each code unit valid in |uriReserved| and |uriUnescaped| plus *"#"*. 1. Return ? Encode(_uriString_, _unescapedURISet_). @@ -25268,7 +25268,7 @@

            The Object Constructor

            The Object constructor:

            • is the intrinsic object %Object%.
            • -
            • is the initial value of the `"Object"` property of the global object.
            • +
            • is the initial value of the *"Object"* property of the global object.
            • creates a new ordinary object when called as a constructor.
            • performs a type conversion when called as a function rather than as a constructor.
            • is designed to be subclassable. It may be used as the value of an `extends` clause of a class definition.
            • @@ -25279,11 +25279,11 @@

              Object ( [ _value_ ] )

              When the `Object` function is called with optional argument _value_, the following steps are taken:

              1. If NewTarget is neither *undefined* nor the active function, then - 1. Return ? OrdinaryCreateFromConstructor(NewTarget, `"%Object.prototype%"`). + 1. Return ? OrdinaryCreateFromConstructor(NewTarget, *"%Object.prototype%"*). 1. If _value_ is *null*, *undefined* or not supplied, return ObjectCreate(%Object.prototype%). 1. Return ! ToObject(_value_). -

              The `"length"` property of the `Object` constructor function is 1.

              +

              The *"length"* property of the `Object` constructor function is 1.

              @@ -25292,7 +25292,7 @@

              Properties of the Object Constructor

              The Object constructor:

              • has a [[Prototype]] internal slot whose value is %Function.prototype%.
              • -
              • has a `"length"` property.
              • +
              • has a *"length"* property.
              • has the following additional properties:
              @@ -25314,7 +25314,7 @@

              Object.assign ( _target_, ..._sources_ )

              1. Perform ? Set(_to_, _nextKey_, _propValue_, *true*). 1. Return _to_. -

              The `"length"` property of the `assign` function is 2.

              +

              The *"length"* property of the `assign` function is 2.

              @@ -25649,7 +25649,7 @@

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

              When the `toLocaleString` method is called, the following steps are taken:

              1. Let _O_ be the *this* value. - 1. Return ? Invoke(_O_, `"toString"`). + 1. Return ? Invoke(_O_, *"toString"*).

              The optional parameters to this function are not used but are intended to correspond to the parameter pattern used by ECMA-402 `toLocaleString` functions. Implementations that do not include ECMA-402 support must not use those parameter positions for other purposes.

              @@ -25664,23 +25664,23 @@

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

              Object.prototype.toString ( )

              When the `toString` method is called, the following steps are taken:

              - 1. If the *this* value is *undefined*, return `"[object Undefined]"`. - 1. If the *this* value is *null*, return `"[object Null]"`. + 1. If the *this* value is *undefined*, return *"[object Undefined]"*. + 1. If the *this* value is *null*, return *"[object Null]"*. 1. Let _O_ be ! ToObject(*this* value). 1. Let _isArray_ be ? IsArray(_O_). - 1. If _isArray_ is *true*, let _builtinTag_ be `"Array"`. - 1. Else if _O_ has a [[ParameterMap]] internal slot, let _builtinTag_ be `"Arguments"`. - 1. Else if _O_ has a [[Call]] internal method, let _builtinTag_ be `"Function"`. - 1. Else if _O_ has an [[ErrorData]] internal slot, let _builtinTag_ be `"Error"`. - 1. Else if _O_ has a [[BooleanData]] internal slot, let _builtinTag_ be `"Boolean"`. - 1. Else if _O_ has a [[NumberData]] internal slot, let _builtinTag_ be `"Number"`. - 1. Else if _O_ has a [[StringData]] internal slot, let _builtinTag_ be `"String"`. - 1. Else if _O_ has a [[DateValue]] internal slot, let _builtinTag_ be `"Date"`. - 1. Else if _O_ has a [[RegExpMatcher]] internal slot, let _builtinTag_ be `"RegExp"`. - 1. Else, let _builtinTag_ be `"Object"`. + 1. If _isArray_ is *true*, let _builtinTag_ be *"Array"*. + 1. Else if _O_ has a [[ParameterMap]] internal slot, let _builtinTag_ be *"Arguments"*. + 1. Else if _O_ has a [[Call]] internal method, let _builtinTag_ be *"Function"*. + 1. Else if _O_ has an [[ErrorData]] internal slot, let _builtinTag_ be *"Error"*. + 1. Else if _O_ has a [[BooleanData]] internal slot, let _builtinTag_ be *"Boolean"*. + 1. Else if _O_ has a [[NumberData]] internal slot, let _builtinTag_ be *"Number"*. + 1. Else if _O_ has a [[StringData]] internal slot, let _builtinTag_ be *"String"*. + 1. Else if _O_ has a [[DateValue]] internal slot, let _builtinTag_ be *"Date"*. + 1. Else if _O_ has a [[RegExpMatcher]] internal slot, let _builtinTag_ be *"RegExp"*. + 1. Else, let _builtinTag_ be *"Object"*. 1. Let _tag_ be ? Get(_O_, @@toStringTag). 1. If Type(_tag_) is not String, set _tag_ to _builtinTag_. - 1. Return the string-concatenation of `"[object "`, _tag_, and `"]"`. + 1. Return the string-concatenation of *"[object "*, _tag_, and *"]"*.

              This function is the %ObjProto_toString% intrinsic object.

              @@ -25712,7 +25712,7 @@

              The Function Constructor

              The Function constructor:

              • is the intrinsic object %Function%.
              • -
              • is the initial value of the `"Function"` property of the global object.
              • +
              • is the initial value of the *"Function"* property of the global object.
              • creates and initializes a new function object when called as a function rather than as a constructor. Thus the function call `Function(…)` is equivalent to the object creation expression `new Function(…)` with the same arguments.
              • is designed to be subclassable. It may be used as the value of an `extends` clause of a class definition. Subclass constructors that intend to inherit the specified `Function` behaviour must include a `super` call to the `Function` constructor to create and initialize a subclass instance with the internal slots necessary for built-in function behaviour. All ECMAScript syntactic forms for defining function objects create instances of `Function`. There is no syntactic means to create instances of `Function` subclasses except for the built-in `GeneratorFunction`, `AsyncFunction`, and `AsyncGeneratorFunction` subclasses.
              @@ -25748,20 +25748,20 @@

              Runtime Semantics: CreateDynamicFunction ( _constructor_, _newTarget_, _kind 1. If _kind_ is ~normal~, then 1. Let _goal_ be the grammar symbol |FunctionBody[~Yield, ~Await]|. 1. Let _parameterGoal_ be the grammar symbol |FormalParameters[~Yield, ~Await]|. - 1. Let _fallbackProto_ be `"%Function.prototype%"`. + 1. Let _fallbackProto_ be *"%Function.prototype%"*. 1. Else if _kind_ is ~generator~, then 1. Let _goal_ be the grammar symbol |GeneratorBody|. 1. Let _parameterGoal_ be the grammar symbol |FormalParameters[+Yield, ~Await]|. - 1. Let _fallbackProto_ be `"%Generator%"`. + 1. Let _fallbackProto_ be *"%Generator%"*. 1. Else if _kind_ is ~async~, then 1. Let _goal_ be the grammar symbol |AsyncFunctionBody|. 1. Let _parameterGoal_ be the grammar symbol |FormalParameters[~Yield, +Await]|. - 1. Let _fallbackProto_ be `"%AsyncFunction.prototype%"`. + 1. Let _fallbackProto_ be *"%AsyncFunction.prototype%"*. 1. Else, 1. Assert: _kind_ is ~asyncGenerator~. 1. Let _goal_ be the grammar symbol |AsyncGeneratorBody|. 1. Let _parameterGoal_ be the grammar symbol |FormalParameters[+Yield, +Await]|. - 1. Let _fallbackProto_ be `"%AsyncGenerator%"`. + 1. Let _fallbackProto_ be *"%AsyncGenerator%"*. 1. Let _argCount_ be the number of elements in _args_. 1. Let _P_ be the empty String. 1. If _argCount_ = 0, let _bodyText_ be the empty String. @@ -25774,7 +25774,7 @@

              Runtime Semantics: CreateDynamicFunction ( _constructor_, _newTarget_, _kind 1. Repeat, while _k_ < _argCount_ - 1 1. Let _nextArg_ be _args_[_k_]. 1. Let _nextArgString_ be ? ToString(_nextArg_). - 1. Set _P_ to the string-concatenation of the previous value of _P_, `","` (a comma), and _nextArgString_. + 1. Set _P_ to the string-concatenation of the previous value of _P_, *","* (a comma), and _nextArgString_. 1. Set _k_ to _k_ + 1. 1. Let _bodyText_ be _args_[_k_]. 1. Set _bodyText_ to ? ToString(_bodyText_). @@ -25802,30 +25802,30 @@

              Runtime Semantics: CreateDynamicFunction ( _constructor_, _newTarget_, _kind 1. Perform FunctionInitialize(_F_, ~Normal~, _parameters_, _body_, _scope_). 1. If _kind_ is ~generator~, then 1. Let _prototype_ be ObjectCreate(%Generator.prototype%). - 1. Perform DefinePropertyOrThrow(_F_, `"prototype"`, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform DefinePropertyOrThrow(_F_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Else if _kind_ is ~asyncGenerator~, then 1. Let _prototype_ be ObjectCreate(%AsyncGenerator.prototype%). - 1. Perform DefinePropertyOrThrow(_F_, `"prototype"`, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). + 1. Perform DefinePropertyOrThrow(_F_, *"prototype"*, PropertyDescriptor { [[Value]]: _prototype_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }). 1. Else if _kind_ is ~normal~, perform MakeConstructor(_F_). - 1. NOTE: Async functions are not constructable and do not have a [[Construct]] internal method or a `"prototype"` property. - 1. Perform SetFunctionName(_F_, `"anonymous"`). + 1. NOTE: Async functions are not constructable and do not have a [[Construct]] internal method or a *"prototype"* property. + 1. Perform SetFunctionName(_F_, *"anonymous"*). 1. Let _prefix_ be the prefix associated with _kind_ in . - 1. Let _sourceText_ be the string-concatenation of _prefix_, `" anonymous("`, _P_, 0x000A (LINE FEED), `") {"`, 0x000A (LINE FEED), _bodyText_, 0x000A (LINE FEED), and `"}"`. + 1. Let _sourceText_ be the string-concatenation of _prefix_, *" anonymous("*, _P_, 0x000A (LINE FEED), *") {"*, 0x000A (LINE FEED), _bodyText_, 0x000A (LINE FEED), and *"}"*. 1. Set _F_.[[SourceText]] to _sourceText_. 1. Return _F_. -

              A `"prototype"` property is created for every non-async function created using CreateDynamicFunction to provide for the possibility that the function will be used as a constructor.

              +

              A *"prototype"* property is created for every non-async function created using CreateDynamicFunction to provide for the possibility that the function will be used as a constructor.

              - - - - + + + +
              KindPrefix
              ~normal~`"function"`
              ~generator~`"function*"`
              ~async~`"async function"`
              ~asyncGenerator~`"async function*"`
              ~normal~*"function"*
              ~generator~*"function*"*
              ~async~*"async function"*
              ~asyncGenerator~*"async function*"*
              @@ -25863,9 +25863,9 @@

              Properties of the Function Prototype Object

            • accepts any arguments and returns *undefined* when invoked.
            • does not have a [[Construct]] internal method; it cannot be used as a constructor with the `new` operator.
            • has a [[Prototype]] internal slot whose value is %Object.prototype%.
            • -
            • does not have a `"prototype"` property.
            • -
            • has a `"length"` property whose value is 0.
            • -
            • has a `"name"` property whose value is the empty String.
            • +
            • does not have a *"prototype"* property.
            • +
            • has a *"length"* property whose value is 0.
            • +
            • has a *"name"* property whose value is the empty String.

            The Function prototype object is specified to be a function object to ensure compatibility with ECMAScript code that was created prior to the ECMAScript 2015 specification.

            @@ -25900,22 +25900,22 @@

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

            1. If IsCallable(_Target_) is *false*, throw a *TypeError* exception. 1. Let _args_ be a new (possibly empty) List consisting of all of the argument values provided after _thisArg_ in order. 1. Let _F_ be ? BoundFunctionCreate(_Target_, _thisArg_, _args_). - 1. Let _targetHasLength_ be ? HasOwnProperty(_Target_, `"length"`). + 1. Let _targetHasLength_ be ? HasOwnProperty(_Target_, *"length"*). 1. If _targetHasLength_ is *true*, then - 1. Let _targetLen_ be ? Get(_Target_, `"length"`). + 1. Let _targetLen_ be ? Get(_Target_, *"length"*). 1. If Type(_targetLen_) is not Number, let _L_ be 0. 1. Else, 1. Set _targetLen_ to ! ToInteger(_targetLen_). 1. Let _L_ be the larger of 0 and the result of _targetLen_ minus the number of elements of _args_. 1. Else, let _L_ be 0. 1. Perform ! SetFunctionLength(_F_, _L_). - 1. Let _targetName_ be ? Get(_Target_, `"name"`). + 1. Let _targetName_ be ? Get(_Target_, *"name"*). 1. If Type(_targetName_) is not String, set _targetName_ to the empty string. - 1. Perform SetFunctionName(_F_, _targetName_, `"bound"`). + 1. Perform SetFunctionName(_F_, _targetName_, *"bound"*). 1. Return _F_. -

            Function objects created using `Function.prototype.bind` are exotic objects. They also do not have a `"prototype"` property.

            +

            Function objects created using `Function.prototype.bind` are exotic objects. They also do not have a *"prototype"* property.

            If _Target_ is an arrow function or a bound function then the _thisArg_ passed to this method will not be used by subsequent calls to _F_.

            @@ -25951,7 +25951,7 @@

            Function.prototype.toString ( )

            When the `toString` method is called, the following steps are taken:

            1. Let _func_ be the *this* value. - 1. If _func_ is a Bound Function exotic object or a built-in function object, then return an implementation-dependent String source code representation of _func_. The representation must have the syntax of a |NativeFunction|. Additionally, if _func_ is a Well-known Intrinsic Object and is not identified as an anonymous function, the portion of the returned String that would be matched by |PropertyName| must be the initial value of the `"name"` property of _func_. + 1. If _func_ is a Bound Function exotic object or a built-in function object, then return an implementation-dependent String source code representation of _func_. The representation must have the syntax of a |NativeFunction|. Additionally, if _func_ is a Well-known Intrinsic Object and is not identified as an anonymous function, the portion of the returned String that would be matched by |PropertyName| must be the initial value of the *"name"* property of _func_. 1. If Type(_func_) is Object and _func_ has a [[SourceText]] internal slot and Type(_func_.[[SourceText]]) is String and ! HostHasSourceTextAvailable(_func_) is *true*, then return _func_.[[SourceText]]. 1. If Type(_func_) is Object and IsCallable(_func_) is *true*, then return an implementation-dependent String source code representation of _func_. The representation must have the syntax of a |NativeFunction|. 1. Throw a *TypeError* exception. @@ -25970,7 +25970,7 @@

            Function.prototype [ @@hasInstance ] ( _V_ )

            1. Let _F_ be the *this* value. 1. Return ? OrdinaryHasInstance(_F_, _V_).
            -

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

            +

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

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

            This is the default implementation of `@@hasInstance` that most functions inherit. `@@hasInstance` is called by the `instanceof` operator to determine whether a value is an instance of a specific constructor. An expression such as

            @@ -25994,21 +25994,21 @@

            Function Instances

            length

            -

            The value of the `"length"` property is an integer that indicates the typical number of arguments expected by the function. However, the language permits the function to be invoked with some other number of arguments. The behaviour of a function when invoked on a number of arguments other than the number specified by its `"length"` property depends on the function. This property has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *true* }.

            +

            The value of the *"length"* property is an integer that indicates the typical number of arguments expected by the function. However, the language permits the function to be invoked with some other number of arguments. The behaviour of a function when invoked on a number of arguments other than the number specified by its *"length"* property depends on the function. This property has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *true* }.

            name

            -

            The value of the `"name"` property is a String that is descriptive of the function. The name has no semantic significance but is typically a variable or property name that is used to refer to the function at its point of definition in ECMAScript code. This property has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *true* }.

            -

            Anonymous functions objects that do not have a contextual name associated with them by this specification do not have a `"name"` own property but inherit the `"name"` property of %Function.prototype%.

            +

            The value of the *"name"* property is a String that is descriptive of the function. The name has no semantic significance but is typically a variable or property name that is used to refer to the function at its point of definition in ECMAScript code. This property has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *true* }.

            +

            Anonymous functions objects that do not have a contextual name associated with them by this specification do not have a *"name"* own property but inherit the *"name"* property of %Function.prototype%.

            prototype

            -

            Function instances that can be used as a constructor have a `"prototype"` property. Whenever such a Function instance is created another ordinary object is also created and is the initial value of the function's `"prototype"` property. Unless otherwise specified, the value of the `"prototype"` property is used to initialize the [[Prototype]] internal slot of the object created when that function is invoked as a constructor.

            +

            Function instances that can be used as a constructor have a *"prototype"* property. Whenever such a Function instance is created another ordinary object is also created and is the initial value of the function's *"prototype"* property. Unless otherwise specified, the value of the *"prototype"* property is used to initialize the [[Prototype]] internal slot of the object created when that function is invoked as a constructor.

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

            -

            Function objects created using `Function.prototype.bind`, or by evaluating a |MethodDefinition| (that is not a |GeneratorMethod| or |AsyncGeneratorMethod|) or an |ArrowFunction| do not have a `"prototype"` property.

            +

            Function objects created using `Function.prototype.bind`, or by evaluating a |MethodDefinition| (that is not a |GeneratorMethod| or |AsyncGeneratorMethod|) or an |ArrowFunction| do not have a *"prototype"* property.

            @@ -26028,7 +26028,7 @@

            The Boolean Constructor

            The Boolean constructor:

            • is the intrinsic object %Boolean%.
            • -
            • is the initial value of the `"Boolean"` property of the global object.
            • +
            • is the initial value of the *"Boolean"* property of the global object.
            • creates and initializes a new Boolean object when called as a constructor.
            • performs a type conversion when called as a function rather than as a constructor.
            • is designed to be subclassable. It may be used as the value of an `extends` clause of a class definition. Subclass constructors that intend to inherit the specified `Boolean` behaviour must include a `super` call to the `Boolean` constructor to create and initialize the subclass instance with a [[BooleanData]] internal slot.
            • @@ -26040,7 +26040,7 @@

              Boolean ( _value_ )

              1. Let _b_ be ! ToBoolean(_value_). 1. If NewTarget is *undefined*, return _b_. - 1. Let _O_ be ? OrdinaryCreateFromConstructor(NewTarget, `"%Boolean.prototype%"`, « [[BooleanData]] »). + 1. Let _O_ be ? OrdinaryCreateFromConstructor(NewTarget, *"%Boolean.prototype%"*, « [[BooleanData]] »). 1. Set _O_.[[BooleanData]] to _b_. 1. Return _O_. @@ -26092,7 +26092,7 @@

              Boolean.prototype.toString ( )

              The following steps are taken:

              1. Let _b_ be ? thisBooleanValue(*this* value). - 1. If _b_ is *true*, return `"true"`; else return `"false"`. + 1. If _b_ is *true*, return *"true"*; else return *"false"*. @@ -26119,7 +26119,7 @@

              The Symbol Constructor

              The Symbol constructor:

              • is the intrinsic object %Symbol%.
              • -
              • is the initial value of the `"Symbol"` property of the global object.
              • +
              • is the initial value of the *"Symbol"* property of the global object.
              • returns a new Symbol value when called as a function.
              • is not intended to be used with the `new` operator.
              • is not intended to be subclassed.
              • @@ -26348,7 +26348,7 @@

                Runtime Semantics: SymbolDescriptiveString ( _sym_ )

                1. Let _desc_ be _sym_'s [[Description]] value. 1. If _desc_ is *undefined*, set _desc_ to the empty string. 1. Assert: Type(_desc_) is String. - 1. Return the string-concatenation of `"Symbol("`, _desc_, and `")"`. + 1. Return the string-concatenation of *"Symbol("*, _desc_, and *")"*. @@ -26363,12 +26363,12 @@

                Symbol.prototype.valueOf ( )

                Symbol.prototype [ @@toPrimitive ] ( _hint_ )

                -

                This function is called by ECMAScript language operators to convert a Symbol object to a primitive value. The allowed values for _hint_ are `"default"`, `"number"`, and `"string"`.

                +

                This function is called by ECMAScript language operators to convert a Symbol object to a primitive value. The allowed values for _hint_ are *"default"*, *"number"*, and *"string"*.

                When the `@@toPrimitive` method is called with argument _hint_, the following steps are taken:

                1. Return ? thisSymbolValue(*this* value). -

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

                +

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

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

                @@ -26394,7 +26394,7 @@

                The Error Constructor

                The Error constructor:

                • is the intrinsic object %Error%.
                • -
                • is the initial value of the `"Error"` property of the global object.
                • +
                • is the initial value of the *"Error"* property of the global object.
                • creates and initializes a new Error object when called as a function rather than as a constructor. Thus the function call `Error(…)` is equivalent to the object creation expression `new Error(…)` with the same arguments.
                • is designed to be subclassable. It may be used as the value of an `extends` clause of a class definition. Subclass constructors that intend to inherit the specified `Error` behaviour must include a `super` call to the `Error` constructor to create and initialize subclass instances with an [[ErrorData]] internal slot.
                @@ -26404,11 +26404,11 @@

                Error ( _message_ )

                When the `Error` function is called with argument _message_, the following steps are taken:

                1. If NewTarget is *undefined*, let _newTarget_ be the active function object; else let _newTarget_ be NewTarget. - 1. Let _O_ be ? OrdinaryCreateFromConstructor(_newTarget_, `"%Error.prototype%"`, « [[ErrorData]] »). + 1. Let _O_ be ? OrdinaryCreateFromConstructor(_newTarget_, *"%Error.prototype%"*, « [[ErrorData]] »). 1. If _message_ is not *undefined*, then 1. Let _msg_ be ? ToString(_message_). 1. Let _msgDesc_ be the PropertyDescriptor { [[Value]]: _msg_, [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *true* }. - 1. Perform ! DefinePropertyOrThrow(_O_, `"message"`, _msgDesc_). + 1. Perform ! DefinePropertyOrThrow(_O_, *"message"*, _msgDesc_). 1. Return _O_. @@ -26451,7 +26451,7 @@

                Error.prototype.message

                Error.prototype.name

                -

                The initial value of `Error.prototype.name` is `"Error"`.

                +

                The initial value of `Error.prototype.name` is *"Error"*.

                @@ -26460,9 +26460,9 @@

                Error.prototype.toString ( )

                1. Let _O_ be the *this* value. 1. If Type(_O_) is not Object, throw a *TypeError* exception. - 1. Let _name_ be ? Get(_O_, `"name"`). - 1. If _name_ is *undefined*, set _name_ to `"Error"`; otherwise set _name_ to ? ToString(_name_). - 1. Let _msg_ be ? Get(_O_, `"message"`). + 1. Let _name_ be ? Get(_O_, *"name"*). + 1. If _name_ is *undefined*, set _name_ to *"Error"*; otherwise set _name_ to ? ToString(_name_). + 1. Let _msg_ be ? Get(_O_, *"message"*). 1. If _msg_ is *undefined*, set _msg_ to the empty String; otherwise set _msg_ to ? ToString(_msg_). 1. If _name_ is the empty String, return _msg_. 1. If _msg_ is the empty String, return _name_. @@ -26513,7 +26513,7 @@

                URIError

                _NativeError_ Object Structure

                -

                When an ECMAScript implementation detects a runtime error, it throws a new instance of one of the _NativeError_ objects defined in . Each of these objects has the structure described below, differing only in the name used as the constructor name instead of _NativeError_, in the `"name"` property of the prototype object, and in the implementation-defined `"message"` property of the prototype object.

                +

                When an ECMAScript implementation detects a runtime error, it throws a new instance of one of the _NativeError_ objects defined in . Each of these objects has the structure described below, differing only in the name used as the constructor name instead of _NativeError_, in the *"name"* property of the prototype object, and in the implementation-defined *"message"* property of the prototype object.

                For each error object, references to _NativeError_ in the definition should be replaced with the appropriate error object name from .

                @@ -26533,10 +26533,10 @@

                NativeError ( _message_ )

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

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

                +

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

                @@ -26545,7 +26545,7 @@

                Properties of the _NativeError_ Constructors

                Each _NativeError_ constructor:

                • has a [[Prototype]] internal slot whose value is %Error%.
                • -
                • has a `"name"` property whose value is the String value *"NativeError"*.
                • +
                • has a *"name"* property whose value is the String value *"NativeError"*.
                • has the following properties:
                @@ -26567,17 +26567,17 @@

                Properties of the _NativeError_ Prototype Objects

                _NativeError_.prototype.constructor

                -

                The initial value of the `"constructor"` property of the prototype for a given _NativeError_ constructor is the corresponding intrinsic object %_NativeError_% ().

                +

                The initial value of the *"constructor"* property of the prototype for a given _NativeError_ constructor is the corresponding intrinsic object %_NativeError_% ().

                _NativeError_.prototype.message

                -

                The initial value of the `"message"` property of the prototype for a given _NativeError_ constructor is the empty String.

                +

                The initial value of the *"message"* property of the prototype for a given _NativeError_ constructor is the empty String.

                _NativeError_.prototype.name

                -

                The initial value of the `"name"` property of the prototype for a given _NativeError_ constructor is the String value consisting of the name of the constructor (the name used instead of _NativeError_).

                +

                The initial value of the *"name"* property of the prototype for a given _NativeError_ constructor is the String value consisting of the name of the constructor (the name used instead of _NativeError_).

                @@ -26600,7 +26600,7 @@

                The Number Constructor

                The Number constructor:

                • is the intrinsic object %Number%.
                • -
                • is the initial value of the `"Number"` property of the global object.
                • +
                • is the initial value of the *"Number"* property of the global object.
                • creates and initializes a new Number object when called as a constructor.
                • performs a type conversion when called as a function rather than as a constructor.
                • is designed to be subclassable. It may be used as the value of an `extends` clause of a class definition. Subclass constructors that intend to inherit the specified `Number` behaviour must include a `super` call to the `Number` constructor to create and initialize the subclass instance with a [[NumberData]] internal slot.
                • @@ -26613,7 +26613,7 @@

                  Number ( _value_ )

                  1. If no arguments were passed to this function invocation, let _n_ be *+0*. 1. Else, let _n_ be ? ToNumber(_value_). 1. If NewTarget is *undefined*, return _n_. - 1. Let _O_ be ? OrdinaryCreateFromConstructor(NewTarget, `"%Number.prototype%"`, « [[NumberData]] »). + 1. Let _O_ be ? OrdinaryCreateFromConstructor(NewTarget, *"%Number.prototype%"*, « [[NumberData]] »). 1. Set _O_.[[NumberData]] to _n_. 1. Return _O_. @@ -26720,12 +26720,12 @@

                  Number.NEGATIVE_INFINITY

                  Number.parseFloat ( _string_ )

                  -

                  The value of the `Number.parseFloat` data property is the same built-in function object that is the value of the `"parseFloat"` property of the global object defined in .

                  +

                  The value of the `Number.parseFloat` data property is the same built-in function object that is the value of the *"parseFloat"* property of the global object defined in .

                  Number.parseInt ( _string_, _radix_ )

                  -

                  The value of the `Number.parseInt` data property is the same built-in function object that is the value of the `"parseInt"` property of the global object defined in .

                  +

                  The value of the `Number.parseInt` data property is the same built-in function object that is the value of the *"parseInt"* property of the global object defined in .

                  @@ -26774,13 +26774,13 @@

                  Number.prototype.toExponential ( _fractionDigits_ )

                  1. Let _x_ be ? thisNumberValue(*this* value). 1. Let _f_ be ? ToInteger(_fractionDigits_). 1. Assert: If _fractionDigits_ is *undefined*, then _f_ is 0. - 1. If _x_ is *NaN*, return the String `"NaN"`. + 1. If _x_ is *NaN*, return the String *"NaN"*. 1. Let _s_ be the empty String. 1. If _x_ < 0, then - 1. Set _s_ to `"-"`. + 1. Set _s_ to *"-"*. 1. Set _x_ to -_x_. 1. If _x_ = *+∞*, then - 1. Return the string-concatenation of _s_ and `"Infinity"`. + 1. Return the string-concatenation of _s_ and *"Infinity"*. 1. If _f_ < 0 or _f_ > 100, throw a *RangeError* exception. 1. If _x_ = 0, then 1. Let _m_ be the String value consisting of _f_ + 1 occurrences of the code unit 0x0030 (DIGIT ZERO). @@ -26793,18 +26793,18 @@

                  Number.prototype.toExponential ( _fractionDigits_ )

                  1. Let _m_ be the String value consisting of the digits of the decimal representation of _n_ (in order, with no leading zeroes). 1. If _f_ ≠ 0, then 1. Let _a_ be the first code unit of _m_, and let _b_ be the remaining _f_ code units of _m_. - 1. Set _m_ to the string-concatenation of _a_, `"."`, and _b_. + 1. Set _m_ to the string-concatenation of _a_, *"."*, and _b_. 1. If _e_ = 0, then - 1. Let _c_ be `"+"`. - 1. Let _d_ be `"0"`. + 1. Let _c_ be *"+"*. + 1. Let _d_ be *"0"*. 1. Else, - 1. If _e_ > 0, let _c_ be `"+"`. + 1. If _e_ > 0, let _c_ be *"+"*. 1. Else, 1. Assert: _e_ < 0. - 1. Let _c_ be `"-"`. + 1. Let _c_ be *"-"*. 1. Set _e_ to -_e_. 1. Let _d_ be the String value consisting of the digits of the decimal representation of _e_ (in order, with no leading zeroes). - 1. Set _m_ to the string-concatenation of _m_, `"e"`, _c_, and _d_. + 1. Set _m_ to the string-concatenation of _m_, *"e"*, _c_, and _d_. 1. Return the string-concatenation of _s_ and _m_. @@ -26826,16 +26826,16 @@

                  Number.prototype.toFixed ( _fractionDigits_ )

                  1. Let _f_ be ? ToInteger(_fractionDigits_). 1. Assert: If _fractionDigits_ is *undefined*, then _f_ is 0. 1. If _f_ < 0 or _f_ > 100, throw a *RangeError* exception. - 1. If _x_ is *NaN*, return the String `"NaN"`. + 1. If _x_ is *NaN*, return the String *"NaN"*. 1. Let _s_ be the empty String. 1. If _x_ < 0, then - 1. Set _s_ to `"-"`. + 1. Set _s_ to *"-"*. 1. Set _x_ to -_x_. 1. If _x_ ≥ 1021, then 1. Let _m_ be ! ToString(_x_). 1. Else, 1. Let _n_ be an integer for which ℝ(_n_) ÷ 10ℝ(_f_) - ℝ(_x_) is as close to zero as possible. If there are two such _n_, pick the larger _n_. - 1. If _n_ = 0, let _m_ be the String `"0"`. Otherwise, let _m_ be the String value consisting of the digits of the decimal representation of _n_ (in order, with no leading zeroes). + 1. If _n_ = 0, let _m_ be the String *"0"*. Otherwise, let _m_ be the String value consisting of the digits of the decimal representation of _n_ (in order, with no leading zeroes). 1. If _f_ ≠ 0, then 1. Let _k_ be the length of _m_. 1. If _k_ ≤ _f_, then @@ -26843,14 +26843,14 @@

                  Number.prototype.toFixed ( _fractionDigits_ )

                  1. Set _m_ to the string-concatenation of _z_ and _m_. 1. Set _k_ to _f_ + 1. 1. Let _a_ be the first _k_ - _f_ code units of _m_, and let _b_ be the remaining _f_ code units of _m_. - 1. Set _m_ to the string-concatenation of _a_, `"."`, and _b_. + 1. Set _m_ to the string-concatenation of _a_, *"."*, and _b_. 1. Return the string-concatenation of _s_ and _m_.

                  The output of `toFixed` may be more precise than `toString` for some values because toString only prints enough significant digits to distinguish the number from adjacent number values. For example,

                  -

                  `(1000000000000000128).toString()` returns `"1000000000000000100"`, while +

                  `(1000000000000000128).toString()` returns *"1000000000000000100"*, while
                  - `(1000000000000000128).toFixed(0)` returns `"1000000000000000128"`.

                  + `(1000000000000000128).toFixed(0)` returns *"1000000000000000128"*.

                  @@ -26868,13 +26868,13 @@

                  Number.prototype.toPrecision ( _precision_ )

                  1. Let _x_ be ? thisNumberValue(*this* value). 1. If _precision_ is *undefined*, return ! ToString(_x_). 1. Let _p_ be ? ToInteger(_precision_). - 1. If _x_ is *NaN*, return the String `"NaN"`. + 1. If _x_ is *NaN*, return the String *"NaN"*. 1. Let _s_ be the empty String. 1. If _x_ < 0, then 1. Set _s_ to the code unit 0x002D (HYPHEN-MINUS). 1. Set _x_ to -_x_. 1. If _x_ = *+∞*, then - 1. Return the string-concatenation of _s_ and `"Infinity"`. + 1. Return the string-concatenation of _s_ and *"Infinity"*. 1. If _p_ < 1 or _p_ > 100, throw a *RangeError* exception. 1. If _x_ = 0, then 1. Let _m_ be the String value consisting of _p_ occurrences of the code unit 0x0030 (DIGIT ZERO). @@ -26886,7 +26886,7 @@

                  Number.prototype.toPrecision ( _precision_ )

                  1. Assert: _e_ ≠ 0. 1. If _p_ ≠ 1, then 1. Let _a_ be the first code unit of _m_, and let _b_ be the remaining _p_ - 1 code units of _m_. - 1. Set _m_ to the string-concatenation of _a_, `"."`, and _b_. + 1. Set _m_ to the string-concatenation of _a_, *"."*, and _b_. 1. If _e_ > 0, then 1. Let _c_ be the code unit 0x002B (PLUS SIGN). 1. Else, @@ -26920,7 +26920,7 @@

                  Number.prototype.toString ( [ _radix_ ] )

                  1. Return the String representation of this Number value using the radix specified by _radixNumber_. Letters `a`-`z` are used for digits with values 10 through 35. The precise algorithm is implementation-dependent, however the algorithm should be a generalization of that specified in .

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

                  -

                  The `"length"` property of the `toString` method is 1.

                  +

                  The *"length"* property of the `toString` method is 1.

                  @@ -26944,7 +26944,7 @@

                  The BigInt Constructor

                  The BigInt constructor:

                  • is the intrinsic object %BigInt%.
                  • -
                  • is the initial value of the `"BigInt"` property of the global object.
                  • +
                  • is the initial value of the *"BigInt"* property of the global object.
                  • performs a type conversion when called as a function rather than as a constructor.
                  • is not intended to be used with the `new` operator or to be subclassed. It may be used as the value of an `extends` clause of a class definition but a `super` call to the `BigInt` constructor will cause an exception.
                  @@ -27071,7 +27071,7 @@

                  The Math Object

                  The Math object:

                  • is the intrinsic object %Math%.
                  • -
                  • is the initial value of the `"Math"` property of the global object.
                  • +
                  • is the initial value of the *"Math"* property of the global object.
                  • is an ordinary object.
                  • has a [[Prototype]] internal slot whose value is %Object.prototype%.
                  • is not a function object.
                  • @@ -28169,7 +28169,7 @@

                    Date Time String Format

                    `YYYY` - is the year in the proleptic Gregorian calendar as four decimal digits from 0000 to 9999, or as an expanded year of `"+"` or `"-"` followed by six decimal digits. + is the year in the proleptic Gregorian calendar as four decimal digits from 0000 to 9999, or as an expanded year of *"+"* or *"-"* followed by six decimal digits. @@ -28177,7 +28177,7 @@

                    Date Time String Format

                    `-` - `"-"` (hyphen) appears literally twice in the string. + *"-"* (hyphen) appears literally twice in the string. @@ -28201,7 +28201,7 @@

                    Date Time String Format

                    `T` - `"T"` appears literally in the string, to indicate the beginning of the time element. + *"T"* appears literally in the string, to indicate the beginning of the time element. @@ -28217,7 +28217,7 @@

                    Date Time String Format

                    `:` - `":"` (colon) appears literally twice in the string. + *":"* (colon) appears literally twice in the string. @@ -28241,7 +28241,7 @@

                    Date Time String Format

                    `.` - `"."` (dot) appears literally in the string. + *"."* (dot) appears literally in the string. @@ -28257,7 +28257,7 @@

                    Date Time String Format

                    `Z` - is the UTC offset representation specified as `"Z"` (for UTC with no offset) or an offset of either `"+"` or `"-"` followed by a time expression `HH:mm` (indicating local time ahead of or behind UTC, respectively) + is the UTC offset representation specified as *"Z"* (for UTC with no offset) or an offset of either *"+"* or *"-"* followed by a time expression `HH:mm` (indicating local time ahead of or behind UTC, respectively) @@ -28332,12 +28332,12 @@

                    The Date Constructor

                    The Date constructor:

                    • is the intrinsic object %Date%.
                    • -
                    • is the initial value of the `"Date"` property of the global object.
                    • +
                    • is the initial value of the *"Date"* property of the global object.
                    • creates and initializes a new Date object when called as a constructor.
                    • returns a String representing the current time (UTC) when called as a function rather than as a constructor.
                    • is a single function whose behaviour is overloaded based upon the number and types of its arguments.
                    • is designed to be subclassable. It may be used as the value of an `extends` clause of a class definition. Subclass constructors that intend to inherit the specified `Date` behaviour must include a `super` call to the `Date` constructor to create and initialize the subclass instance with a [[DateValue]] internal slot.
                    • -
                    • has a `"length"` property whose value is 7.
                    • +
                    • has a *"length"* property whose value is 7.
                    @@ -28363,7 +28363,7 @@

                    Date ( _year_, _month_ [ , _date_ [ , _hours_ [ , _minutes_ [ , _seconds_ [ 1. Let _yi_ be ! ToInteger(_y_). 1. If 0 ≤ _yi_ ≤ 99, let _yr_ be 1900 + _yi_; otherwise, let _yr_ be _y_. 1. Let _finalDate_ be MakeDate(MakeDay(_yr_, _m_, _dt_), MakeTime(_h_, _min_, _s_, _milli_)). - 1. Let _O_ be ? OrdinaryCreateFromConstructor(NewTarget, `"%Date.prototype%"`, « [[DateValue]] »). + 1. Let _O_ be ? OrdinaryCreateFromConstructor(NewTarget, *"%Date.prototype%"*, « [[DateValue]] »). 1. Set _O_.[[DateValue]] to TimeClip(UTC(_finalDate_)). 1. Return _O_. @@ -28389,7 +28389,7 @@

                    Date ( _value_ )

                    1. Let _tv_ be the result of parsing _v_ as a date, in exactly the same manner as for the `parse` method (). 1. Else, 1. Let _tv_ be ? ToNumber(_v_). - 1. Let _O_ be ? OrdinaryCreateFromConstructor(NewTarget, `"%Date.prototype%"`, « [[DateValue]] »). + 1. Let _O_ be ? OrdinaryCreateFromConstructor(NewTarget, *"%Date.prototype%"*, « [[DateValue]] »). 1. Set _O_.[[DateValue]] to TimeClip(_tv_). 1. Return _O_. @@ -28406,7 +28406,7 @@

                    Date ( )

                    1. Let _now_ be the Number that is the time value (UTC) identifying the current time. 1. Return ToDateString(_now_). 1. Else, - 1. Let _O_ be ? OrdinaryCreateFromConstructor(NewTarget, `"%Date.prototype%"`, « [[DateValue]] »). + 1. Let _O_ be ? OrdinaryCreateFromConstructor(NewTarget, *"%Date.prototype%"*, « [[DateValue]] »). 1. Set _O_.[[DateValue]] to the time value (UTC) identifying the current time. 1. Return _O_. @@ -28429,7 +28429,7 @@

                    Date.now ( )

                    Date.parse ( _string_ )

                    The `parse` function applies the ToString operator to its argument. If ToString results in an abrupt completion the Completion Record is immediately returned. Otherwise, `parse` interprets the resulting String as a date and time; it returns a Number, the UTC time value corresponding to the date and time. The String may be interpreted as a local time, a UTC time, or a time in some other time zone, depending on the contents of the String. The function first attempts to parse the String according to the format described in Date Time String Format (), including expanded years. If the String does not conform to that format the function may fall back to any implementation-specific heuristics or implementation-specific date formats. Strings that are unrecognizable or contain out-of-bounds format element values shall cause `Date.parse` to return *NaN*.

                    -

                    If the String conforms to the Date Time String Format, substitute values take the place of absent format elements. When the `MM` or `DD` elements are absent, `"01"` is used. When the `HH`, `mm`, or `ss` elements are absent, `"00"` is used. When the `sss` element is absent, `"000"` is used. When the UTC offset representation is absent, date-only forms are interpreted as a UTC time and date-time forms are interpreted as a local time.

                    +

                    If the String conforms to the Date Time String Format, substitute values take the place of absent format elements. When the `MM` or `DD` elements are absent, *"01"* is used. When the `HH`, `mm`, or `ss` elements are absent, *"00"* is used. When the `sss` element is absent, *"000"* is used. When the UTC offset representation is absent, date-only forms are interpreted as a UTC time and date-time forms are interpreted as a local time.

                    If `x` is any Date object whose milliseconds amount is zero within a particular implementation of ECMAScript, then all of the following expressions should produce the same numeric value in that implementation, if all the properties referenced have their initial values:

                    
                               x.valueOf()
                    @@ -28467,7 +28467,7 @@ 

                    Date.UTC ( _year_ [ , _month_ [ , _date_ [ , _hours_ [ , _minutes_ [ , _seco 1. If 0 ≤ _yi_ ≤ 99, let _yr_ be 1900 + _yi_; otherwise, let _yr_ be _y_. 1. Return TimeClip(MakeDate(MakeDay(_yr_, _m_, _dt_), MakeTime(_h_, _min_, _s_, _milli_))). -

                    The `"length"` property of the `UTC` function is 7.

                    +

                    The *"length"* property of the `UTC` function is 7.

                    The `UTC` function differs from the `Date` constructor in two ways: it returns a time value as a Number, rather than creating a Date object, and it interprets the arguments in UTC rather than as local time.

                    @@ -28702,7 +28702,7 @@

                    Date.prototype.setFullYear ( _year_ [ , _month_ [ , _date_ ] ] )

                    1. Set the [[DateValue]] internal slot of this Date object to _u_. 1. Return _u_. -

                    The `"length"` property of the `setFullYear` method is 3.

                    +

                    The *"length"* property of the `setFullYear` method is 3.

                    If _month_ is not present, this method behaves as if _month_ was present with the value `getMonth()`. If _date_ is not present, it behaves as if _date_ was present with the value `getDate()`.

                    @@ -28722,7 +28722,7 @@

                    Date.prototype.setHours ( _hour_ [ , _min_ [ , _sec_ [ , _ms_ ] ] ] )

                    1. Set the [[DateValue]] internal slot of this Date object to _u_. 1. Return _u_. -

                    The `"length"` property of the `setHours` method is 4.

                    +

                    The *"length"* property of the `setHours` method is 4.

                    If _min_ is not present, this method behaves as if _min_ was present with the value `getMinutes()`. If _sec_ is not present, it behaves as if _sec_ was present with the value `getSeconds()`. If _ms_ is not present, it behaves as if _ms_ was present with the value `getMilliseconds()`.

                    @@ -28754,7 +28754,7 @@

                    Date.prototype.setMinutes ( _min_ [ , _sec_ [ , _ms_ ] ] )

                    1. Set the [[DateValue]] internal slot of this Date object to _u_. 1. Return _u_. -

                    The `"length"` property of the `setMinutes` method is 3.

                    +

                    The *"length"* property of the `setMinutes` method is 3.

                    If _sec_ is not present, this method behaves as if _sec_ was present with the value `getSeconds()`. If _ms_ is not present, this behaves as if _ms_ was present with the value `getMilliseconds()`.

                    @@ -28772,7 +28772,7 @@

                    Date.prototype.setMonth ( _month_ [ , _date_ ] )

                    1. Set the [[DateValue]] internal slot of this Date object to _u_. 1. Return _u_. -

                    The `"length"` property of the `setMonth` method is 2.

                    +

                    The *"length"* property of the `setMonth` method is 2.

                    If _date_ is not present, this method behaves as if _date_ was present with the value `getDate()`.

                    @@ -28790,7 +28790,7 @@

                    Date.prototype.setSeconds ( _sec_ [ , _ms_ ] )

                    1. Set the [[DateValue]] internal slot of this Date object to _u_. 1. Return _u_. -

                    The `"length"` property of the `setSeconds` method is 2.

                    +

                    The *"length"* property of the `setSeconds` method is 2.

                    If _ms_ is not present, this method behaves as if _ms_ was present with the value `getMilliseconds()`.

                    @@ -28835,7 +28835,7 @@

                    Date.prototype.setUTCFullYear ( _year_ [ , _month_ [ , _date_ ] ] )

                    1. Set the [[DateValue]] internal slot of this Date object to _v_. 1. Return _v_. -

                    The `"length"` property of the `setUTCFullYear` method is 3.

                    +

                    The *"length"* property of the `setUTCFullYear` method is 3.

                    If _month_ is not present, this method behaves as if _month_ was present with the value `getUTCMonth()`. If _date_ is not present, it behaves as if _date_ was present with the value `getUTCDate()`.

                    @@ -28855,7 +28855,7 @@

                    Date.prototype.setUTCHours ( _hour_ [ , _min_ [ , _sec_ [ , _ms_ ] ] ] )

                    -

                    The `"length"` property of the `setUTCHours` method is 4.

                    +

                    The *"length"* property of the `setUTCHours` method is 4.

                    If _min_ is not present, this method behaves as if _min_ was present with the value `getUTCMinutes()`. If _sec_ is not present, it behaves as if _sec_ was present with the value `getUTCSeconds()`. If _ms_ is not present, it behaves as if _ms_ was present with the value `getUTCMilliseconds()`.

                    @@ -28891,7 +28891,7 @@

                    Date.prototype.setUTCMinutes ( _min_ [ , _sec_ [ , _ms_ ] ] )

                    1. Set the [[DateValue]] internal slot of this Date object to _v_. 1. Return _v_. -

                    The `"length"` property of the `setUTCMinutes` method is 3.

                    +

                    The *"length"* property of the `setUTCMinutes` method is 3.

                    If _sec_ is not present, this method behaves as if _sec_ was present with the value `getUTCSeconds()`. If _ms_ is not present, it function behaves as if _ms_ was present with the value return by `getUTCMilliseconds()`.

                    @@ -28911,7 +28911,7 @@

                    Date.prototype.setUTCMonth ( _month_ [ , _date_ ] )

                    1. Set the [[DateValue]] internal slot of this Date object to _v_. 1. Return _v_. -

                    The `"length"` property of the `setUTCMonth` method is 2.

                    +

                    The *"length"* property of the `setUTCMonth` method is 2.

                    If _date_ is not present, this method behaves as if _date_ was present with the value `getUTCDate()`.

                    @@ -28931,7 +28931,7 @@

                    Date.prototype.setUTCSeconds ( _sec_ [ , _ms_ ] )

                    1. Set the [[DateValue]] internal slot of this Date object to _v_. 1. Return _v_. -

                    The `"length"` property of the `setUTCSeconds` method is 2.

                    +

                    The *"length"* property of the `setUTCSeconds` method is 2.

                    If _ms_ is not present, this method behaves as if _ms_ was present with the value `getUTCMilliseconds()`.

                    @@ -28943,7 +28943,7 @@

                    Date.prototype.toDateString ( )

                    1. Let _O_ be this Date object. 1. Let _tv_ be ? thisTimeValue(_O_). - 1. If _tv_ is *NaN*, return `"Invalid Date"`. + 1. If _tv_ is *NaN*, return *"Invalid Date"*. 1. Let _t_ be LocalTime(_tv_). 1. Return DateString(_t_). @@ -28951,7 +28951,7 @@

                    Date.prototype.toDateString ( )

                    Date.prototype.toISOString ( )

                    -

                    If this time value is not a finite Number or if it corresponds with a year that cannot be represented in the Date Time String Format, this function throws a *RangeError* exception. Otherwise, it returns a String representation of this time value in that format on the UTC time scale, including all format elements and the UTC offset representation `"Z"`.

                    +

                    If this time value is not a finite Number or if it corresponds with a year that cannot be represented in the Date Time String Format, this function throws a *RangeError* exception. Otherwise, it returns a String representation of this time value in that format on the UTC time scale, including all format elements and the UTC offset representation *"Z"*.

                    @@ -28962,7 +28962,7 @@

                    Date.prototype.toJSON ( _key_ )

                    1. Let _O_ be ? ToObject(*this* value). 1. Let _tv_ be ? ToPrimitive(_O_, hint Number). 1. If Type(_tv_) is Number and _tv_ is not finite, return *null*. - 1. Return ? Invoke(_O_, `"toISOString"`). + 1. Return ? Invoke(_O_, *"toISOString"*).

                    The argument is ignored.

                    @@ -29016,7 +29016,7 @@

                    Runtime Semantics: TimeString ( _tv_ )

                    1. Let _hour_ be the String representation of HourFromTime(_tv_), formatted as a two-digit decimal number, padded to the left with a zero if necessary. 1. Let _minute_ be the String representation of MinFromTime(_tv_), formatted as a two-digit decimal number, padded to the left with a zero if necessary. 1. Let _second_ be the String representation of SecFromTime(_tv_), formatted as a two-digit decimal number, padded to the left with a zero if necessary. - 1. Return the string-concatenation of _hour_, `":"`, _minute_, `":"`, _second_, the code unit 0x0020 (SPACE), and `"GMT"`. + 1. Return the string-concatenation of _hour_, *":"*, _minute_, *":"*, _second_, the code unit 0x0020 (SPACE), and *"GMT"*.
                    @@ -29030,9 +29030,9 @@

                    Runtime Semantics: DateString ( _tv_ )

                    1. Let _month_ be the Name of the entry in with the Number MonthFromTime(_tv_). 1. Let _day_ be the String representation of DateFromTime(_tv_), formatted as a two-digit decimal number, padded to the left with a zero if necessary. 1. Let _yv_ be YearFromTime(_tv_). - 1. If _yv_ ≥ 0, let _yearSign_ be the empty string; otherwise, let _yearSign_ be `"-"`. + 1. If _yv_ ≥ 0, let _yearSign_ be the empty string; otherwise, let _yearSign_ be *"-"*. 1. Let _year_ be the String representation of abs(_yv_), formatted as a decimal number. - 1. Let _paddedYear_ be ! StringPad(_year_, 4, `"0"`, ~start~). + 1. Let _paddedYear_ be ! StringPad(_year_, 4, *"0"*, ~start~). 1. Return the string-concatenation of _weekday_, the code unit 0x0020 (SPACE), _month_, the code unit 0x0020 (SPACE), _day_, the code unit 0x0020 (SPACE), _yearSign_, and _paddedYear_. @@ -29051,7 +29051,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    0 - `"Sun"` + *"Sun"* @@ -29059,7 +29059,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    1 - `"Mon"` + *"Mon"* @@ -29067,7 +29067,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    2 - `"Tue"` + *"Tue"* @@ -29075,7 +29075,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    3 - `"Wed"` + *"Wed"* @@ -29083,7 +29083,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    4 - `"Thu"` + *"Thu"* @@ -29091,7 +29091,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    5 - `"Fri"` + *"Fri"* @@ -29099,7 +29099,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    6 - `"Sat"` + *"Sat"* @@ -29121,7 +29121,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    0 - `"Jan"` + *"Jan"* @@ -29129,7 +29129,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    1 - `"Feb"` + *"Feb"* @@ -29137,7 +29137,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    2 - `"Mar"` + *"Mar"* @@ -29145,7 +29145,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    3 - `"Apr"` + *"Apr"* @@ -29153,7 +29153,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    4 - `"May"` + *"May"* @@ -29161,7 +29161,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    5 - `"Jun"` + *"Jun"* @@ -29169,7 +29169,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    6 - `"Jul"` + *"Jul"* @@ -29177,7 +29177,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    7 - `"Aug"` + *"Aug"* @@ -29185,7 +29185,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    8 - `"Sep"` + *"Sep"* @@ -29193,7 +29193,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    9 - `"Oct"` + *"Oct"* @@ -29201,7 +29201,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    10 - `"Nov"` + *"Nov"* @@ -29209,7 +29209,7 @@

                    Runtime Semantics: DateString ( _tv_ )

                    11 - `"Dec"` + *"Dec"* @@ -29224,7 +29224,7 @@

                    Runtime Semantics: TimeZoneString ( _tv_ )

                    1. Assert: Type(_tv_) is Number. 1. Assert: _tv_ is not *NaN*. 1. Let _offset_ be LocalTZA(_tv_, *true*). - 1. If _offset_ ≥ 0, let _offsetSign_ be `"+"`; otherwise, let _offsetSign_ be `"-"`. + 1. If _offset_ ≥ 0, let _offsetSign_ be *"+"*; otherwise, let _offsetSign_ be *"-"*. 1. Let _offsetMin_ be the String representation of MinFromTime(abs(_offset_)), formatted as a two-digit decimal number, padded to the left with a zero if necessary. 1. Let _offsetHour_ be the String representation of HourFromTime(abs(_offset_)), formatted as a two-digit decimal number, padded to the left with a zero if necessary. 1. Let _tzName_ be an implementation-defined string that is either the empty string or the string-concatenation of the code unit 0x0020 (SPACE), the code unit 0x0028 (LEFT PARENTHESIS), an implementation-dependent timezone name, and the code unit 0x0029 (RIGHT PARENTHESIS). @@ -29237,7 +29237,7 @@

                    Runtime Semantics: ToDateString ( _tv_ )

                    The following steps are performed:

                    1. Assert: Type(_tv_) is Number. - 1. If _tv_ is *NaN*, return `"Invalid Date"`. + 1. If _tv_ is *NaN*, return *"Invalid Date"*. 1. Let _t_ be LocalTime(_tv_). 1. Return the string-concatenation of DateString(_t_), the code unit 0x0020 (SPACE), TimeString(_t_), and TimeZoneString(_tv_). @@ -29250,7 +29250,7 @@

                    Date.prototype.toTimeString ( )

                    1. Let _O_ be this Date object. 1. Let _tv_ be ? thisTimeValue(_O_). - 1. If _tv_ is *NaN*, return `"Invalid Date"`. + 1. If _tv_ is *NaN*, return *"Invalid Date"*. 1. Let _t_ be LocalTime(_tv_). 1. Return the string-concatenation of TimeString(_t_) and TimeZoneString(_tv_). @@ -29262,15 +29262,15 @@

                    Date.prototype.toUTCString ( )

                    1. Let _O_ be this Date object. 1. Let _tv_ be ? thisTimeValue(_O_). - 1. If _tv_ is *NaN*, return `"Invalid Date"`. + 1. If _tv_ is *NaN*, return *"Invalid Date"*. 1. Let _weekday_ be the Name of the entry in with the Number WeekDay(_tv_). 1. Let _month_ be the Name of the entry in with the Number MonthFromTime(_tv_). 1. Let _day_ be the String representation of DateFromTime(_tv_), formatted as a two-digit decimal number, padded to the left with a zero if necessary. 1. Let _yv_ be YearFromTime(_tv_). - 1. If _yv_ ≥ 0, let _yearSign_ be the empty string; otherwise, let _yearSign_ be `"-"`. + 1. If _yv_ ≥ 0, let _yearSign_ be the empty string; otherwise, let _yearSign_ be *"-"*. 1. Let _year_ be the String representation of abs(_yv_), formatted as a decimal number. - 1. Let _paddedYear_ be ! StringPad(_year_, 4, `"0"`, ~start~). - 1. Return the string-concatenation of _weekday_, `","`, the code unit 0x0020 (SPACE), _day_, the code unit 0x0020 (SPACE), _month_, the code unit 0x0020 (SPACE), _yearSign_, _paddedYear_, the code unit 0x0020 (SPACE), and TimeString(_tv_). + 1. Let _paddedYear_ be ! StringPad(_year_, 4, *"0"*, ~start~). + 1. Return the string-concatenation of _weekday_, *","*, the code unit 0x0020 (SPACE), _day_, the code unit 0x0020 (SPACE), _month_, the code unit 0x0020 (SPACE), _yearSign_, _paddedYear_, the code unit 0x0020 (SPACE), and TimeString(_tv_). @@ -29284,7 +29284,7 @@

                    Date.prototype.valueOf ( )

                    Date.prototype [ @@toPrimitive ] ( _hint_ )

                    -

                    This function is called by ECMAScript language operators to convert a Date object to a primitive value. The allowed values for _hint_ are `"default"`, `"number"`, and `"string"`. Date objects, are unique among built-in ECMAScript object in that they treat `"default"` as being equivalent to `"string"`, All other built-in ECMAScript objects treat `"default"` as being equivalent to `"number"`.

                    +

                    This function is called by ECMAScript language operators to convert a Date object to a primitive value. The allowed values for _hint_ are *"default"*, *"number"*, and *"string"*. Date objects, are unique among built-in ECMAScript object in that they treat *"default"* as being equivalent to *"string"*, All other built-in ECMAScript objects treat *"default"* as being equivalent to *"number"*.

                    When the `@@toPrimitive` method is called with argument _hint_, the following steps are taken:

                    1. Let _O_ be the *this* value. @@ -29296,7 +29296,7 @@

                    Date.prototype [ @@toPrimitive ] ( _hint_ )

                    1. Else, throw a *TypeError* exception. 1. Return ? OrdinaryToPrimitive(_O_, _tryFirst_).
                    -

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

                    +

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

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

                    @@ -29319,7 +29319,7 @@

                    The String Constructor

                    The String constructor:

                    • is the intrinsic object %String%.
                    • -
                    • is the initial value of the `"String"` property of the global object.
                    • +
                    • is the initial value of the *"String"* property of the global object.
                    • creates and initializes a new String object when called as a constructor.
                    • performs a type conversion when called as a function rather than as a constructor.
                    • is designed to be subclassable. It may be used as the value of an `extends` clause of a class definition. Subclass constructors that intend to inherit the specified `String` behaviour must include a `super` call to the `String` constructor to create and initialize the subclass instance with a [[StringData]] internal slot.
                    • @@ -29329,12 +29329,12 @@

                      The String Constructor

                      String ( _value_ )

                      When `String` is called with argument _value_, the following steps are taken:

                      - 1. If no arguments were passed to this function invocation, let _s_ be `""`. + 1. If no arguments were passed to this function invocation, let _s_ be *""*. 1. Else, 1. If NewTarget is *undefined* and Type(_value_) is Symbol, return SymbolDescriptiveString(_value_). 1. Let _s_ be ? ToString(_value_). 1. If NewTarget is *undefined*, return _s_. - 1. Return ! StringCreate(_s_, ? GetPrototypeFromConstructor(NewTarget, `"%String.prototype%"`)). + 1. Return ! StringCreate(_s_, ? GetPrototypeFromConstructor(NewTarget, *"%String.prototype%"*)). @@ -29362,7 +29362,7 @@

                      String.fromCharCode ( ..._codeUnits_ )

                      1. Set _nextIndex_ to _nextIndex_ + 1. 1. Return the String value whose code units are, in order, the elements in the List _elements_. If _length_ is 0, the empty string is returned. -

                      The `"length"` property of the `fromCharCode` function is 1.

                      +

                      The *"length"* property of the `fromCharCode` function is 1.

                      @@ -29382,7 +29382,7 @@

                      String.fromCodePoint ( ..._codePoints_ )

                      1. Set _nextIndex_ to _nextIndex_ + 1. 1. Return the String value whose code units are, in order, the elements in the List _elements_. If _length_ is 0, the empty string is returned. -

                      The `"length"` property of the `fromCodePoint` function is 1.

                      +

                      The *"length"* property of the `fromCodePoint` function is 1.

                      @@ -29398,7 +29398,7 @@

                      String.raw ( _template_, ..._substitutions_ )

                      1. Let _substitutions_ be a List consisting of all of the arguments passed to this function, starting with the second argument. If fewer than two arguments were passed, the List is empty. 1. Let _numberOfSubstitutions_ be the number of elements in _substitutions_. 1. Let _cooked_ be ? ToObject(_template_). - 1. Let _raw_ be ? ToObject(? Get(_cooked_, `"raw"`)). + 1. Let _raw_ be ? ToObject(? Get(_cooked_, *"raw"*)). 1. Let _literalSegments_ be ? LengthOfArrayLike(_raw_). 1. If _literalSegments_ ≤ 0, return the empty string. 1. Let _stringElements_ be a new empty List. @@ -29428,7 +29428,7 @@

                      Properties of the String Prototype Object

                    • is the intrinsic object %StringPrototype%.
                    • is a String exotic object and has the internal methods specified for such objects.
                    • has a [[StringData]] internal slot whose value is the empty String.
                    • -
                    • has a `"length"` property whose initial value is 0 and whose attributes are { [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *false* }.
                    • +
                    • has a *"length"* property whose initial value is 0 and whose attributes are { [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *false* }.
                    • has a [[Prototype]] internal slot whose value is %Object.prototype%.

                    Unless explicitly stated otherwise, the methods of the String prototype object defined below are not generic and the *this* value passed to them must be either a String value or an object that has a [[StringData]] internal slot that has been initialized to a String value.

                    @@ -29518,7 +29518,7 @@

                    String.prototype.concat ( ..._args_ )

                    1. Set _R_ to the string-concatenation of the previous value of _R_ and _nextString_. 1. Return _R_. -

                    The `"length"` property of the `concat` method is 1.

                    +

                    The *"length"* property of the `concat` method is 1.

                    The `concat` function is intentionally generic; it does not require that its *this* value be a String object. Therefore it can be transferred to other kinds of objects for use as a method.

                    @@ -29690,7 +29690,7 @@

                    String.prototype.matchAll ( _regexp_ )

                    1. If _matcher_ is not *undefined*, then 1. Return ? Call(_matcher_, _regexp_, « _O_ »). 1. Let _S_ be ? ToString(_O_). - 1. Let _rx_ be ? RegExpCreate(_regexp_, `"g"`). + 1. Let _rx_ be ? RegExpCreate(_regexp_, *"g"*). 1. Return ? Invoke(_rx_, @@matchAll, « _S_ »). The `matchAll` function is intentionally generic, it does not require that its *this* value be a String object. Therefore, it can be transferred to other kinds of objects for use as a method. @@ -29703,9 +29703,9 @@

                    String.prototype.normalize ( [ _form_ ] )

                    1. Let _O_ be ? RequireObjectCoercible(*this* value). 1. Let _S_ be ? ToString(_O_). - 1. If _form_ is not present or _form_ is *undefined*, set _form_ to `"NFC"`. + 1. If _form_ is not present or _form_ is *undefined*, set _form_ to *"NFC"*. 1. Let _f_ be ? ToString(_form_). - 1. If _f_ is not one of `"NFC"`, `"NFD"`, `"NFKC"`, or `"NFKD"`, throw a *RangeError* exception. + 1. If _f_ is not one of *"NFC"*, *"NFD"*, *"NFKC"*, or *"NFKD"*, throw a *RangeError* exception. 1. Let _ns_ be the String value that is the result of normalizing _S_ into the normalization form named by _f_ as specified in https://unicode.org/reports/tr15/. 1. Return _ns_. @@ -29752,7 +29752,7 @@

                    Runtime Semantics: StringPad ( _O_, _maxLength_, _fillString_, _placement_ )

                    The argument _maxLength_ will be clamped such that it can be no smaller than the length of _S_.

                    -

                    The argument _fillString_ defaults to `" "` (the String value consisting of the code unit 0x0020 SPACE).

                    +

                    The argument _fillString_ defaults to *" "* (the String value consisting of the code unit 0x0020 SPACE).

                    @@ -29926,10 +29926,10 @@

                    Runtime Semantics: GetSubstitution ( _matched_, _str_, _position_, _captures - 1. If _namedCaptures_ is *undefined*, the replacement text is the String `"$<"`. + 1. If _namedCaptures_ is *undefined*, the replacement text is the String *"$<"*. 1. Else, 1. Scan until the next `>` U+003E (GREATER-THAN SIGN). - 1. If none is found, the replacement text is the String `"$<"`. + 1. If none is found, the replacement text is the String *"$<"*. 1. Else, 1. Let _groupName_ be the enclosed substring. 1. Let _capture_ be ? Get(_namedCaptures_, _groupName_). @@ -30011,12 +30011,12 @@

                    String.prototype.split ( _separator_, _limit_ )

                    1. Let _R_ be ? ToString(_separator_). 1. If _lim_ = 0, return _A_. 1. If _separator_ is *undefined*, then - 1. Perform ! CreateDataPropertyOrThrow(_A_, `"0"`, _S_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, *"0"*, _S_). 1. Return _A_. 1. If _s_ = 0, then 1. Let _z_ be SplitMatch(_S_, 0, _R_). 1. If _z_ is not *false*, return _A_. - 1. Perform ! CreateDataPropertyOrThrow(_A_, `"0"`, _S_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, *"0"*, _S_). 1. Return _A_. 1. Let _q_ be _p_. 1. Repeat, while _q_ ≠ _s_ @@ -30244,14 +30244,14 @@

                    String.prototype [ @@iterator ] ( )

                    1. Let _S_ be ? ToString(_O_). 1. Return CreateStringIterator(_S_).
                    -

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

                    +

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

                    Properties of String Instances

                    String instances are String exotic objects and have the internal methods specified for such objects. String instances inherit properties from the String prototype object. String instances also have a [[StringData]] internal slot.

                    -

                    String instances have a `"length"` property, and a set of enumerable properties with integer-indexed names.

                    +

                    String instances have a *"length"* property, and a set of enumerable properties with integer-indexed names.

                    length

                    @@ -30606,13 +30606,13 @@

                    Static Semantics: Early Errors

                    RegExpIdentifierStart[U] :: `\` RegExpUnicodeEscapeSequence[?U]
                    • - It is a Syntax Error if SV(|RegExpUnicodeEscapeSequence|) is none of `"$"`, or `"_"`, or the UTF16Encoding of a code point matched by the |UnicodeIDStart| lexical grammar production. + It is a Syntax Error if SV(|RegExpUnicodeEscapeSequence|) is none of *"$"*, or *"_"*, or the UTF16Encoding of a code point matched by the |UnicodeIDStart| lexical grammar production.
                    RegExpIdentifierPart[U] :: `\` RegExpUnicodeEscapeSequence[?U]
                    • - It is a Syntax Error if SV(|RegExpUnicodeEscapeSequence|) is none of `"$"`, or `"_"`, or the UTF16Encoding of either <ZWNJ> or <ZWJ>, or the UTF16Encoding of a Unicode code point that would be matched by the |UnicodeIDContinue| lexical grammar production. + It is a Syntax Error if SV(|RegExpUnicodeEscapeSequence|) is none of *"$"*, or *"_"*, or the UTF16Encoding of either <ZWNJ> or <ZWJ>, or the UTF16Encoding of a Unicode code point that would be matched by the |UnicodeIDContinue| lexical grammar production.
                    UnicodePropertyValueExpression :: UnicodePropertyName `=` UnicodePropertyValue @@ -30919,16 +30919,16 @@

                    Notation

                    _NcapturingParens_ is the total number of left-capturing parentheses (i.e. the total number of Atom :: `(` GroupSpecifier Disjunction `)` Parse Nodes) in the pattern. A left-capturing parenthesis is any `(` pattern character that is matched by the `(` terminal of the Atom :: `(` GroupSpecifier Disjunction `)` production.
                  • - _DotAll_ is *true* if the RegExp object's [[OriginalFlags]] internal slot contains `"s"` and otherwise is *false*. + _DotAll_ is *true* if the RegExp object's [[OriginalFlags]] internal slot contains *"s"* and otherwise is *false*.
                  • - _IgnoreCase_ is *true* if the RegExp object's [[OriginalFlags]] internal slot contains `"i"` and otherwise is *false*. + _IgnoreCase_ is *true* if the RegExp object's [[OriginalFlags]] internal slot contains *"i"* and otherwise is *false*.
                  • - _Multiline_ is *true* if the RegExp object's [[OriginalFlags]] internal slot contains `"m"` and otherwise is *false*. + _Multiline_ is *true* if the RegExp object's [[OriginalFlags]] internal slot contains *"m"* and otherwise is *false*.
                  • - _Unicode_ is *true* if the RegExp object's [[OriginalFlags]] internal slot contains `"u"` and otherwise is *false*. + _Unicode_ is *true* if the RegExp object's [[OriginalFlags]] internal slot contains *"u"* and otherwise is *false*.

                  Furthermore, the descriptions below use the following internal data structures:

                  @@ -30994,7 +30994,7 @@

                  Disjunction

                  The `|` regular expression operator separates two alternatives. The pattern first tries to match the left |Alternative| (followed by the sequel of the regular expression); if it fails, it tries to match the right |Disjunction| (followed by the sequel of the regular expression). If the left |Alternative|, the right |Disjunction|, and the sequel all have choice points, all choices in the sequel are tried before moving on to the next choice in the left |Alternative|. If choices in the left |Alternative| are exhausted, the right |Disjunction| is tried instead of the left |Alternative|. Any capturing parentheses inside a portion of the pattern skipped by `|` produce *undefined* values instead of Strings. Thus, for example,

                  /a|ab/.exec("abc")
                  -

                  returns the result `"a"` and not `"ab"`. Moreover,

                  +

                  returns the result *"a"* and not *"ab"*. Moreover,

                  /((a)|(ab))((c)|(bc))/.exec("abc")

                  returns the array

                  ["abc", "a", "a", undefined, "bc", undefined, "bc"]
                  @@ -31089,9 +31089,9 @@

                  Runtime Semantics: RepeatMatcher ( _m_, _min_, _max_, _greedy_, _x_, _c_, _p

                  If the |Atom| and the sequel of the regular expression all have choice points, the |Atom| is first matched as many (or as few, if non-greedy) times as possible. All choices in the sequel are tried before moving on to the next choice in the last repetition of |Atom|. All choices in the last (nth) repetition of |Atom| are tried before moving on to the next choice in the next-to-last (n - 1)st repetition of |Atom|; at which point it may turn out that more or fewer repetitions of |Atom| are now possible; these are exhausted (again, starting with either as few or as many as possible) before moving on to the next choice in the (n - 1)st repetition of |Atom| and so on.

                  Compare

                  /a[a-z]{2,4}/.exec("abcdefghi")
                  -

                  which returns `"abcde"` with

                  +

                  which returns *"abcde"* with

                  /a[a-z]{2,4}?/.exec("abcdefghi")
                  -

                  which returns `"abc"`.

                  +

                  which returns *"abc"*.

                  Consider also

                  /(aa|aabaac|ba|b|c)*/.exec("aabaac")

                  which, by the choice point ordering above, returns the array

                  @@ -31103,7 +31103,7 @@

                  Runtime Semantics: RepeatMatcher ( _m_, _min_, _max_, _greedy_, _x_, _c_, _p

                  The above ordering of choice points can be used to write a regular expression that calculates the greatest common divisor of two numbers (represented in unary notation). The following example calculates the gcd of 10 and 15:

                  "aaaaaaaaaa,aaaaaaaaaaaaaaa".replace(/^(a+)\1*,\1+$/, "$1")
                  -

                  which returns the gcd in unary notation `"aaaaa"`.

                  +

                  which returns the gcd in unary notation *"aaaaa"*.

                  Step 4 of the RepeatMatcher clears |Atom|'s captures each time |Atom| is repeated. We can see its behaviour in the regular expression

                  @@ -31624,7 +31624,7 @@

                  Runtime Semantics: Canonicalize ( _ch_ )

                  ["baaabaac", "ba", undefined, "abaac"]
                  -

                  In case-insignificant matches when _Unicode_ is *true*, all characters are implicitly case-folded using the simple mapping provided by the Unicode standard immediately before they are compared. The simple mapping always maps to a single code point, so it does not map, for example, `"ß"` (U+00DF) to `"SS"`. It may however map a code point outside the Basic Latin range to a character within, for example, `"ſ"` (U+017F) to `"s"`. Such characters are not mapped if _Unicode_ is *false*. This prevents Unicode code points such as U+017F and U+212A from matching regular expressions such as `/[a-z]/i`, but they will match `/[a-z]/ui`.

                  +

                  In case-insignificant matches when _Unicode_ is *true*, all characters are implicitly case-folded using the simple mapping provided by the Unicode standard immediately before they are compared. The simple mapping always maps to a single code point, so it does not map, for example, *"ß"* (U+00DF) to *"SS"*. It may however map a code point outside the Basic Latin range to a character within, for example, *"ſ"* (U+017F) to *"s"*. Such characters are not mapped if _Unicode_ is *false*. This prevents Unicode code points such as U+017F and U+212A from matching regular expressions such as `/[a-z]/i`, but they will match `/[a-z]/ui`.

                  @@ -31793,7 +31793,7 @@

                  CharacterClassEscape

                  The production UnicodePropertyValueExpression :: LoneUnicodePropertyNameOrValue evaluates as follows:

                  1. Let _s_ be SourceText of |LoneUnicodePropertyNameOrValue|. - 1. If ! UnicodeMatchPropertyValue(`"General_Category"`, _s_) is identical to a List of Unicode code points that is the name of a Unicode general category or general category alias listed in the “Property value and aliases” column of , then + 1. If ! UnicodeMatchPropertyValue(*"General_Category"*, _s_) is identical to a List of Unicode code points that is the name of a Unicode general category or general category alias listed in the “Property value and aliases” column of , then 1. Return the CharSet containing all Unicode code points whose character database definition includes the property “General_Category” with value _s_. 1. Let _p_ be ! UnicodeMatchProperty(_s_). 1. Assert: _p_ is a binary Unicode property or binary property alias listed in the “Property name and aliases” column of . @@ -31950,7 +31950,7 @@

                  The RegExp Constructor

                  The RegExp constructor:

                  • is the intrinsic object %RegExp%.
                  • -
                  • is the initial value of the `"RegExp"` property of the global object.
                  • +
                  • is the initial value of the *"RegExp"* property of the global object.
                  • creates and initializes a new RegExp object when called as a function rather than as a constructor. Thus the function call `RegExp(…)` is equivalent to the object creation expression `new RegExp(…)` with the same arguments.
                  • is designed to be subclassable. It may be used as the value of an `extends` clause of a class definition. Subclass constructors that intend to inherit the specified `RegExp` behaviour must include a `super` call to the `RegExp` constructor to create and initialize subclass instances with the necessary internal slots.
                  @@ -31963,7 +31963,7 @@

                  RegExp ( _pattern_, _flags_ )

                  1. If NewTarget is *undefined*, then 1. Let _newTarget_ be the active function object. 1. If _patternIsRegExp_ is *true* and _flags_ is *undefined*, then - 1. Let _patternConstructor_ be ? Get(_pattern_, `"constructor"`). + 1. Let _patternConstructor_ be ? Get(_pattern_, *"constructor"*). 1. If SameValue(_newTarget_, _patternConstructor_) is *true*, return _pattern_. 1. Else, let _newTarget_ be NewTarget. 1. If Type(_pattern_) is Object and _pattern_ has a [[RegExpMatcher]] internal slot, then @@ -31971,9 +31971,9 @@

                  RegExp ( _pattern_, _flags_ )

                  1. If _flags_ is *undefined*, let _F_ be _pattern_.[[OriginalFlags]]. 1. Else, let _F_ be _flags_. 1. Else if _patternIsRegExp_ is *true*, then - 1. Let _P_ be ? Get(_pattern_, `"source"`). + 1. Let _P_ be ? Get(_pattern_, *"source"*). 1. If _flags_ is *undefined*, then - 1. Let _F_ be ? Get(_pattern_, `"flags"`). + 1. Let _F_ be ? Get(_pattern_, *"flags"*). 1. Else, let _F_ be _flags_. 1. Else, 1. Let _P_ be _pattern_. @@ -31993,8 +31993,8 @@

                  Abstract Operations for the RegExp Constructor

                  Runtime Semantics: RegExpAlloc ( _newTarget_ )

                  When the abstract operation RegExpAlloc with argument _newTarget_ is called, the following steps are taken:

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

                  Runtime Semantics: RegExpInitialize ( _obj_, _pattern_, _flags_ )

                  1. Else, let _P_ be ? ToString(_pattern_). 1. If _flags_ is *undefined*, let _F_ be the empty String. 1. Else, let _F_ be ? ToString(_flags_). - 1. If _F_ contains any code unit other than `"g"`, `"i"`, `"m"`, `"s"`, `"u"`, or `"y"` or if it contains the same code unit more than once, throw a *SyntaxError* exception. - 1. If _F_ contains `"u"`, let _BMP_ be *false*; else let _BMP_ be *true*. + 1. If _F_ contains any code unit other than *"g"*, *"i"*, *"m"*, *"s"*, *"u"*, or *"y"* or if it contains the same code unit more than once, throw a *SyntaxError* exception. + 1. If _F_ contains *"u"*, let _BMP_ be *false*; else let _BMP_ be *true*. 1. If _BMP_ is *true*, then 1. Parse _P_ using the grammars in and interpreting each of its 16-bit elements as a Unicode BMP code point. UTF-16 decoding is not applied to the elements. The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of parsing contains a |GroupName|, reparse with the goal symbol |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError* exception if _P_ did not conform to the grammar, if any elements of _P_ were not matched by the parse, or if any Early Error conditions exist. 1. Let _patternCharacters_ be a List whose elements are the code unit elements of _P_. @@ -32018,7 +32018,7 @@

                  Runtime Semantics: RegExpInitialize ( _obj_, _pattern_, _flags_ )

                  1. Set _obj_.[[OriginalSource]] to _P_. 1. Set _obj_.[[OriginalFlags]] to _F_. 1. Set _obj_.[[RegExpMatcher]] to the internal procedure that evaluates the above parse of _P_ by applying the semantics provided in using _patternCharacters_ as the pattern's List of |SourceCharacter| values and _F_ as the flag parameters. - 1. Perform ? Set(_obj_, `"lastIndex"`, 0, *true*). + 1. Perform ? Set(_obj_, *"lastIndex"*, 0, *true*). 1. Return _obj_.
                  @@ -32036,8 +32036,8 @@

                  Runtime Semantics: RegExpCreate ( _P_, _F_ )

                  Runtime Semantics: EscapeRegExpPattern ( _P_, _F_ )

                  When the abstract operation EscapeRegExpPattern with arguments _P_ and _F_ is called, the following occurs:

                  - 1. Let _S_ be a String in the form of a |Pattern[~U]| (|Pattern[+U]| if _F_ contains `"u"`) equivalent to _P_ interpreted as UTF-16 encoded Unicode code points (), in which certain code points are escaped as described below. _S_ may or may not be identical to _P_; however, the internal procedure that would result from evaluating _S_ as a |Pattern[~U]| (|Pattern[+U]| if _F_ contains `"u"`) must behave identically to the internal procedure given by the constructed object's [[RegExpMatcher]] internal slot. Multiple calls to this abstract operation using the same values for _P_ and _F_ must produce identical results. - 1. The code points `/` or any |LineTerminator| occurring in the pattern shall be escaped in _S_ as necessary to ensure that the string-concatenation of `"/"`, _S_, `"/"`, and _F_ can be parsed (in an appropriate lexical context) as a |RegularExpressionLiteral| that behaves identically to the constructed regular expression. For example, if _P_ is `"/"`, then _S_ could be `"\\/"` or `"\\u002F"`, among other possibilities, but not `"/"`, because `///` followed by _F_ would be parsed as a |SingleLineComment| rather than a |RegularExpressionLiteral|. If _P_ is the empty String, this specification can be met by letting _S_ be `"(?:)"`. + 1. Let _S_ be a String in the form of a |Pattern[~U]| (|Pattern[+U]| if _F_ contains *"u"*) equivalent to _P_ interpreted as UTF-16 encoded Unicode code points (), in which certain code points are escaped as described below. _S_ may or may not be identical to _P_; however, the internal procedure that would result from evaluating _S_ as a |Pattern[~U]| (|Pattern[+U]| if _F_ contains *"u"*) must behave identically to the internal procedure given by the constructed object's [[RegExpMatcher]] internal slot. Multiple calls to this abstract operation using the same values for _P_ and _F_ must produce identical results. + 1. The code points `/` or any |LineTerminator| occurring in the pattern shall be escaped in _S_ as necessary to ensure that the string-concatenation of *"/"*, _S_, *"/"*, and _F_ can be parsed (in an appropriate lexical context) as a |RegularExpressionLiteral| that behaves identically to the constructed regular expression. For example, if _P_ is *"/"*, then _S_ could be *"\\/"* or *"\\u002F"*, among other possibilities, but not *"/"*, because `///` followed by _F_ would be parsed as a |SingleLineComment| rather than a |RegularExpressionLiteral|. If _P_ is the empty String, this specification can be met by letting _S_ be *"(?:)"*. 1. Return _S_. @@ -32064,7 +32064,7 @@

                  get RegExp [ @@species ]

                  1. Return the *this* value. -

                  The value of the `"name"` property of this function is *"get [Symbol.species]"*.

                  +

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

                  RegExp prototype methods normally use their `this` object's constructor to create a derived object. However, a subclass constructor may over-ride that default behaviour by redefining its @@species property.

                  @@ -32081,7 +32081,7 @@

                  Properties of the RegExp Prototype Object

                • has a [[Prototype]] internal slot whose value is %Object.prototype%.
                -

                The RegExp prototype object does not have a `"valueOf"` property of its own; however, it inherits the `"valueOf"` property from the Object prototype object.

                +

                The RegExp prototype object does not have a *"valueOf"* property of its own; however, it inherits the *"valueOf"* property from the Object prototype object.

                @@ -32106,7 +32106,7 @@

                Runtime Semantics: RegExpExec ( _R_, _S_ )

                1. Assert: Type(_R_) is Object. 1. Assert: Type(_S_) is String. - 1. Let _exec_ be ? Get(_R_, `"exec"`). + 1. Let _exec_ be ? Get(_R_, *"exec"*). 1. If IsCallable(_exec_) is *true*, then 1. Let _result_ be ? Call(_exec_, _R_, « _S_ »). 1. If Type(_result_) is neither Object nor Null, throw a *TypeError* exception. @@ -32115,7 +32115,7 @@

                Runtime Semantics: RegExpExec ( _R_, _S_ )

                1. Return ? RegExpBuiltinExec(_R_, _S_).
                -

                If a callable `"exec"` property is not found this algorithm falls back to attempting to use the built-in RegExp matching algorithm. This provides compatible behaviour for code written for prior editions where most built-in algorithms that use regular expressions did not perform a dynamic property lookup of `"exec"`.

                +

                If a callable *"exec"* property is not found this algorithm falls back to attempting to use the built-in RegExp matching algorithm. This provides compatible behaviour for code written for prior editions where most built-in algorithms that use regular expressions did not perform a dynamic property lookup of *"exec"*.

                @@ -32126,23 +32126,23 @@

                Runtime Semantics: RegExpBuiltinExec ( _R_, _S_ )

                1. Assert: _R_ is an initialized RegExp instance. 1. Assert: Type(_S_) is String. 1. Let _length_ be the number of code units in _S_. - 1. Let _lastIndex_ be ? ToLength(? Get(_R_, `"lastIndex"`)). + 1. Let _lastIndex_ be ? ToLength(? Get(_R_, *"lastIndex"*)). 1. Let _flags_ be _R_.[[OriginalFlags]]. - 1. If _flags_ contains `"g"`, let _global_ be *true*; else let _global_ be *false*. - 1. If _flags_ contains `"y"`, let _sticky_ be *true*; else let _sticky_ be *false*. + 1. If _flags_ contains *"g"*, let _global_ be *true*; else let _global_ be *false*. + 1. If _flags_ contains *"y"*, let _sticky_ be *true*; else let _sticky_ be *false*. 1. If _global_ is *false* and _sticky_ is *false*, set _lastIndex_ to 0. 1. Let _matcher_ be _R_.[[RegExpMatcher]]. - 1. If _flags_ contains `"u"`, let _fullUnicode_ be *true*; else let _fullUnicode_ be *false*. + 1. If _flags_ contains *"u"*, let _fullUnicode_ be *true*; else let _fullUnicode_ be *false*. 1. Let _matchSucceeded_ be *false*. 1. Repeat, while _matchSucceeded_ is *false* 1. If _lastIndex_ > _length_, then 1. If _global_ is *true* or _sticky_ is *true*, then - 1. Perform ? Set(_R_, `"lastIndex"`, 0, *true*). + 1. Perform ? Set(_R_, *"lastIndex"*, 0, *true*). 1. Return *null*. 1. Let _r_ be _matcher_(_S_, _lastIndex_). 1. If _r_ is ~failure~, then 1. If _sticky_ is *true*, then - 1. Perform ? Set(_R_, `"lastIndex"`, 0, *true*). + 1. Perform ? Set(_R_, *"lastIndex"*, 0, *true*). 1. Return *null*. 1. Set _lastIndex_ to AdvanceStringIndex(_S_, _lastIndex_, _fullUnicode_). 1. Else, @@ -32153,20 +32153,20 @@

                Runtime Semantics: RegExpBuiltinExec ( _R_, _S_ )

                1. _e_ is an index into the _Input_ character list, derived from _S_, matched by _matcher_. Let _eUTF_ be the smallest index into _S_ that corresponds to the character at element _e_ of _Input_. If _e_ is greater than or equal to the number of elements in _Input_, then _eUTF_ is the number of code units in _S_. 1. Set _e_ to _eUTF_. 1. If _global_ is *true* or _sticky_ is *true*, then - 1. Perform ? Set(_R_, `"lastIndex"`, _e_, *true*). + 1. Perform ? Set(_R_, *"lastIndex"*, _e_, *true*). 1. Let _n_ be the number of elements in _r_'s _captures_ List. (This is the same value as 's _NcapturingParens_.) 1. Assert: _n_ < 232 - 1. 1. Let _A_ be ! ArrayCreate(_n_ + 1). - 1. Assert: The value of _A_'s `"length"` property is _n_ + 1. - 1. Perform ! CreateDataPropertyOrThrow(_A_, `"index"`, _lastIndex_). - 1. Perform ! CreateDataPropertyOrThrow(_A_, `"input"`, _S_). + 1. Assert: The value of _A_'s *"length"* property is _n_ + 1. + 1. Perform ! CreateDataPropertyOrThrow(_A_, *"index"*, _lastIndex_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, *"input"*, _S_). 1. Let _matchedSubstr_ be the matched substring (i.e. the portion of _S_ between offset _lastIndex_ inclusive and offset _e_ exclusive). - 1. Perform ! CreateDataPropertyOrThrow(_A_, `"0"`, _matchedSubstr_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, *"0"*, _matchedSubstr_). 1. If _R_ contains any |GroupName|, then 1. Let _groups_ be ObjectCreate(*null*). 1. Else, 1. Let _groups_ be *undefined*. - 1. Perform ! CreateDataPropertyOrThrow(_A_, `"groups"`, _groups_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, *"groups"*, _groups_). 1. For each integer _i_ such that _i_ > 0 and _i_ ≤ _n_, do 1. Let _captureI_ be _i_th element of _r_'s _captures_ List. 1. If _captureI_ is *undefined*, let _capturedValue_ be *undefined*. @@ -32223,17 +32223,17 @@

                get RegExp.prototype.flags

                1. Let _R_ be the *this* value. 1. If Type(_R_) is not Object, throw a *TypeError* exception. 1. Let _result_ be the empty String. - 1. Let _global_ be ! ToBoolean(? Get(_R_, `"global"`)). + 1. Let _global_ be ! ToBoolean(? Get(_R_, *"global"*)). 1. If _global_ is *true*, append the code unit 0x0067 (LATIN SMALL LETTER G) as the last code unit of _result_. - 1. Let _ignoreCase_ be ! ToBoolean(? Get(_R_, `"ignoreCase"`)). + 1. Let _ignoreCase_ be ! ToBoolean(? Get(_R_, *"ignoreCase"*)). 1. If _ignoreCase_ is *true*, append the code unit 0x0069 (LATIN SMALL LETTER I) as the last code unit of _result_. - 1. Let _multiline_ be ! ToBoolean(? Get(_R_, `"multiline"`)). + 1. Let _multiline_ be ! ToBoolean(? Get(_R_, *"multiline"*)). 1. If _multiline_ is *true*, append the code unit 0x006D (LATIN SMALL LETTER M) as the last code unit of _result_. - 1. Let _dotAll_ be ! ToBoolean(? Get(_R_, `"dotAll"`)). + 1. Let _dotAll_ be ! ToBoolean(? Get(_R_, *"dotAll"*)). 1. If _dotAll_ is *true*, append the code unit 0x0073 (LATIN SMALL LETTER S) as the last code unit of _result_. - 1. Let _unicode_ be ! ToBoolean(? Get(_R_, `"unicode"`)). + 1. Let _unicode_ be ! ToBoolean(? Get(_R_, *"unicode"*)). 1. If _unicode_ is *true*, append the code unit 0x0075 (LATIN SMALL LETTER U) as the last code unit of _result_. - 1. Let _sticky_ be ! ToBoolean(? Get(_R_, `"sticky"`)). + 1. Let _sticky_ be ! ToBoolean(? Get(_R_, *"sticky"*)). 1. If _sticky_ is *true*, append the code unit 0x0079 (LATIN SMALL LETTER Y) as the last code unit of _result_. 1. Return _result_. @@ -32276,13 +32276,13 @@

                RegExp.prototype [ @@match ] ( _string_ )

                1. Let _rx_ be the *this* value. 1. If Type(_rx_) is not Object, throw a *TypeError* exception. 1. Let _S_ be ? ToString(_string_). - 1. Let _global_ be ! ToBoolean(? Get(_rx_, `"global"`)). + 1. Let _global_ be ! ToBoolean(? Get(_rx_, *"global"*)). 1. If _global_ is *false*, then 1. Return ? RegExpExec(_rx_, _S_). 1. Else, 1. Assert: _global_ is *true*. - 1. Let _fullUnicode_ be ! ToBoolean(? Get(_rx_, `"unicode"`)). - 1. Perform ? Set(_rx_, `"lastIndex"`, 0, *true*). + 1. Let _fullUnicode_ be ! ToBoolean(? Get(_rx_, *"unicode"*)). + 1. Perform ? Set(_rx_, *"lastIndex"*, 0, *true*). 1. Let _A_ be ! ArrayCreate(0). 1. Let _n_ be 0. 1. Repeat, @@ -32291,15 +32291,15 @@

                RegExp.prototype [ @@match ] ( _string_ )

                1. If _n_ = 0, return *null*. 1. Return _A_. 1. Else, - 1. Let _matchStr_ be ? ToString(? Get(_result_, `"0"`)). + 1. Let _matchStr_ be ? ToString(? Get(_result_, *"0"*)). 1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(_n_), _matchStr_). 1. If _matchStr_ is the empty String, then - 1. Let _thisIndex_ be ? ToLength(? Get(_rx_, `"lastIndex"`)). + 1. Let _thisIndex_ be ? ToLength(? Get(_rx_, *"lastIndex"*)). 1. Let _nextIndex_ be AdvanceStringIndex(_S_, _thisIndex_, _fullUnicode_). - 1. Perform ? Set(_rx_, `"lastIndex"`, _nextIndex_, *true*). + 1. Perform ? Set(_rx_, *"lastIndex"*, _nextIndex_, *true*). 1. Set _n_ to _n_ + 1. -

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

                +

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

                The @@match property is used by the IsRegExp abstract operation to identify objects that have the basic behaviour of regular expressions. The absence of a @@match property or the existence of such a property whose value does not Boolean coerce to *true* indicates that the object is not intended to be used as a regular expression object.

                @@ -32314,17 +32314,17 @@

                RegExp.prototype [ @@matchAll ] ( _string_ )

                1. If Type(_R_) is not Object, throw a *TypeError* exception. 1. Let _S_ be ? ToString(_string_). 1. Let _C_ be ? SpeciesConstructor(_R_, %RegExp%). - 1. Let _flags_ be ? ToString(? Get(_R_, `"flags"`)). + 1. Let _flags_ be ? ToString(? Get(_R_, *"flags"*)). 1. Let _matcher_ be ? Construct(_C_, « _R_, _flags_ »). - 1. Let _lastIndex_ be ? ToLength(? Get(_R_, `"lastIndex"`)). - 1. Perform ? Set(_matcher_, `"lastIndex"`, _lastIndex_, *true*). - 1. If _flags_ contains `"g"`, let _global_ be *true*. + 1. Let _lastIndex_ be ? ToLength(? Get(_R_, *"lastIndex"*)). + 1. Perform ? Set(_matcher_, *"lastIndex"*, _lastIndex_, *true*). + 1. If _flags_ contains *"g"*, let _global_ be *true*. 1. Else, let _global_ be *false*. - 1. If _flags_ contains `"u"`, let _fullUnicode_ be *true*. + 1. If _flags_ contains *"u"*, let _fullUnicode_ be *true*. 1. Else, let _fullUnicode_ be *false*. 1. Return ! CreateRegExpStringIterator(_matcher_, _S_, _global_, _fullUnicode_). -

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

                +

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

                CreateRegExpStringIterator ( _R_, _S_, _global_, _fullUnicode_ )

                @@ -32371,10 +32371,10 @@

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

                1. Let _functionalReplace_ be IsCallable(_replaceValue_). 1. If _functionalReplace_ is *false*, then 1. Set _replaceValue_ to ? ToString(_replaceValue_). - 1. Let _global_ be ! ToBoolean(? Get(_rx_, `"global"`)). + 1. Let _global_ be ! ToBoolean(? Get(_rx_, *"global"*)). 1. If _global_ is *true*, then - 1. Let _fullUnicode_ be ! ToBoolean(? Get(_rx_, `"unicode"`)). - 1. Perform ? Set(_rx_, `"lastIndex"`, 0, *true*). + 1. Let _fullUnicode_ be ! ToBoolean(? Get(_rx_, *"unicode"*)). + 1. Perform ? Set(_rx_, *"lastIndex"*, 0, *true*). 1. Let _results_ be a new empty List. 1. Let _done_ be *false*. 1. Repeat, while _done_ is *false* @@ -32384,19 +32384,19 @@

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

                1. Append _result_ to the end of _results_. 1. If _global_ is *false*, set _done_ to *true*. 1. Else, - 1. Let _matchStr_ be ? ToString(? Get(_result_, `"0"`)). + 1. Let _matchStr_ be ? ToString(? Get(_result_, *"0"*)). 1. If _matchStr_ is the empty String, then - 1. Let _thisIndex_ be ? ToLength(? Get(_rx_, `"lastIndex"`)). + 1. Let _thisIndex_ be ? ToLength(? Get(_rx_, *"lastIndex"*)). 1. Let _nextIndex_ be AdvanceStringIndex(_S_, _thisIndex_, _fullUnicode_). - 1. Perform ? Set(_rx_, `"lastIndex"`, _nextIndex_, *true*). + 1. Perform ? Set(_rx_, *"lastIndex"*, _nextIndex_, *true*). 1. Let _accumulatedResult_ be the empty String value. 1. Let _nextSourcePosition_ be 0. 1. For each _result_ in _results_, do 1. Let _nCaptures_ be ? LengthOfArrayLike(_result_). 1. Set _nCaptures_ to max(_nCaptures_ - 1, 0). - 1. Let _matched_ be ? ToString(? Get(_result_, `"0"`)). + 1. Let _matched_ be ? ToString(? Get(_result_, *"0"*)). 1. Let _matchLength_ be the number of code units in _matched_. - 1. Let _position_ be ? ToInteger(? Get(_result_, `"index"`)). + 1. Let _position_ be ? ToInteger(? Get(_result_, *"index"*)). 1. Set _position_ to max(min(_position_, _lengthS_), 0). 1. Let _n_ be 1. 1. Let _captures_ be a new empty List. @@ -32406,7 +32406,7 @@

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

                1. Set _capN_ to ? ToString(_capN_). 1. Append _capN_ as the last element of _captures_. 1. Set _n_ to _n_ + 1. - 1. Let _namedCaptures_ be ? Get(_result_, `"groups"`). + 1. Let _namedCaptures_ be ? Get(_result_, *"groups"*). 1. If _functionalReplace_ is *true*, then 1. Let _replacerArgs_ be « _matched_ ». 1. Append in list order the elements of _captures_ to the end of the List _replacerArgs_. @@ -32424,7 +32424,7 @@

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

                1. If _nextSourcePosition_ ≥ _lengthS_, return _accumulatedResult_. 1. Return the string-concatenation of _accumulatedResult_ and the substring of _S_ consisting of the code units from _nextSourcePosition_ (inclusive) up through the final code unit of _S_ (inclusive). -

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

                +

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

                @@ -32434,19 +32434,19 @@

                RegExp.prototype [ @@search ] ( _string_ )

                1. Let _rx_ be the *this* value. 1. If Type(_rx_) is not Object, throw a *TypeError* exception. 1. Let _S_ be ? ToString(_string_). - 1. Let _previousLastIndex_ be ? Get(_rx_, `"lastIndex"`). + 1. Let _previousLastIndex_ be ? Get(_rx_, *"lastIndex"*). 1. If SameValue(_previousLastIndex_, 0) is *false*, then - 1. Perform ? Set(_rx_, `"lastIndex"`, 0, *true*). + 1. Perform ? Set(_rx_, *"lastIndex"*, 0, *true*). 1. Let _result_ be ? RegExpExec(_rx_, _S_). - 1. Let _currentLastIndex_ be ? Get(_rx_, `"lastIndex"`). + 1. Let _currentLastIndex_ be ? Get(_rx_, *"lastIndex"*). 1. If SameValue(_currentLastIndex_, _previousLastIndex_) is *false*, then - 1. Perform ? Set(_rx_, `"lastIndex"`, _previousLastIndex_, *true*). + 1. Perform ? Set(_rx_, *"lastIndex"*, _previousLastIndex_, *true*). 1. If _result_ is *null*, return -1. - 1. Return ? Get(_result_, `"index"`). + 1. Return ? Get(_result_, *"index"*). -

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

                +

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

                -

                The `"lastIndex"` and `"global"` properties of this RegExp object are ignored when performing the search. The `"lastIndex"` property is left unchanged.

                +

                The *"lastIndex"* and *"global"* properties of this RegExp object are ignored when performing the search. The *"lastIndex"* property is left unchanged.

                @@ -32457,7 +32457,7 @@

                get RegExp.prototype.source

                1. Let _R_ be the *this* value. 1. If Type(_R_) is not Object, throw a *TypeError* exception. 1. If _R_ does not have an [[OriginalSource]] internal slot, then - 1. If SameValue(_R_, %RegExp.prototype%) is *true*, return `"(?:)"`. + 1. If SameValue(_R_, %RegExp.prototype%) is *true*, return *"(?:)"*. 1. Otherwise, throw a *TypeError* exception. 1. Assert: _R_ has an [[OriginalFlags]] internal slot. 1. Let _src_ be _R_.[[OriginalSource]]. @@ -32484,11 +32484,11 @@

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

                1. If Type(_rx_) is not Object, throw a *TypeError* exception. 1. Let _S_ be ? ToString(_string_). 1. Let _C_ be ? SpeciesConstructor(_rx_, %RegExp%). - 1. Let _flags_ be ? ToString(? Get(_rx_, `"flags"`)). - 1. If _flags_ contains `"u"`, let _unicodeMatching_ be *true*. + 1. Let _flags_ be ? ToString(? Get(_rx_, *"flags"*)). + 1. If _flags_ contains *"u"*, let _unicodeMatching_ be *true*. 1. Else, let _unicodeMatching_ be *false*. - 1. If _flags_ contains `"y"`, let _newFlags_ be _flags_. - 1. Else, let _newFlags_ be the string-concatenation of _flags_ and `"y"`. + 1. If _flags_ contains *"y"*, let _newFlags_ be _flags_. + 1. Else, let _newFlags_ be the string-concatenation of _flags_ and *"y"*. 1. Let _splitter_ be ? Construct(_C_, « _rx_, _newFlags_ »). 1. Let _A_ be ! ArrayCreate(0). 1. Let _lengthA_ be 0. @@ -32499,15 +32499,15 @@

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

                1. If _size_ = 0, then 1. Let _z_ be ? RegExpExec(_splitter_, _S_). 1. If _z_ is not *null*, return _A_. - 1. Perform ! CreateDataPropertyOrThrow(_A_, `"0"`, _S_). + 1. Perform ! CreateDataPropertyOrThrow(_A_, *"0"*, _S_). 1. Return _A_. 1. Let _q_ be _p_. 1. Repeat, while _q_ < _size_ - 1. Perform ? Set(_splitter_, `"lastIndex"`, _q_, *true*). + 1. Perform ? Set(_splitter_, *"lastIndex"*, _q_, *true*). 1. Let _z_ be ? RegExpExec(_splitter_, _S_). 1. If _z_ is *null*, set _q_ to AdvanceStringIndex(_S_, _q_, _unicodeMatching_). 1. Else, - 1. Let _e_ be ? ToLength(? Get(_splitter_, `"lastIndex"`)). + 1. Let _e_ be ? ToLength(? Get(_splitter_, *"lastIndex"*)). 1. Set _e_ to min(_e_, _size_). 1. If _e_ = _p_, set _q_ to AdvanceStringIndex(_S_, _q_, _unicodeMatching_). 1. Else, @@ -32530,9 +32530,9 @@

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

                1. Perform ! CreateDataPropertyOrThrow(_A_, ! ToString(_lengthA_), _T_). 1. Return _A_. -

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

                +

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

                -

                The `@@split` method ignores the value of the `"global"` and `"sticky"` properties of this RegExp object.

                +

                The `@@split` method ignores the value of the *"global"* and *"sticky"* properties of this RegExp object.

                @@ -32568,9 +32568,9 @@

                RegExp.prototype.toString ( )

                1. Let _R_ be the *this* value. 1. If Type(_R_) is not Object, throw a *TypeError* exception. - 1. Let _pattern_ be ? ToString(? Get(_R_, `"source"`)). - 1. Let _flags_ be ? ToString(? Get(_R_, `"flags"`)). - 1. Let _result_ be the string-concatenation of `"/"`, _pattern_, `"/"`, and _flags_. + 1. Let _pattern_ be ? ToString(? Get(_R_, *"source"*)). + 1. Let _flags_ be ? ToString(? Get(_R_, *"flags"*)). + 1. Let _result_ be the string-concatenation of *"/"*, _pattern_, *"/"*, and _flags_. 1. Return _result_. @@ -32598,13 +32598,13 @@

                get RegExp.prototype.unicode

                Properties of RegExp Instances

                RegExp instances are ordinary objects that inherit properties from the RegExp prototype object. RegExp instances have internal slots [[RegExpMatcher]], [[OriginalSource]], and [[OriginalFlags]]. The value of the [[RegExpMatcher]] internal slot is an implementation-dependent representation of the |Pattern| of the RegExp object.

                -

                Prior to ECMAScript 2015, `RegExp` instances were specified as having the own data properties `"source"`, `"global"`, `"ignoreCase"`, and `"multiline"`. Those properties are now specified as accessor properties of `RegExp.prototype`.

                +

                Prior to ECMAScript 2015, `RegExp` instances were specified as having the own data properties *"source"*, *"global"*, *"ignoreCase"*, and *"multiline"*. Those properties are now specified as accessor properties of `RegExp.prototype`.

                RegExp instances also have the following property:

                lastIndex

                -

                The value of the `"lastIndex"` property specifies the String index at which to start the next match. It is coerced to an integer when used (see ). This property shall have the attributes { [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }.

                +

                The value of the *"lastIndex"* property specifies the String index at which to start the next match. It is coerced to an integer when used (see ). This property shall have the attributes { [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }.

                @@ -32640,11 +32640,11 @@

                %RegExpStringIteratorPrototype%.next ( )

                1. Return ! CreateIterResultObject(*undefined*, *true*). 1. Else, 1. If _global_ is *true*, then - 1. Let _matchStr_ be ? ToString(? Get(_match_, `"0"`)). + 1. Let _matchStr_ be ? ToString(? Get(_match_, *"0"*)). 1. If _matchStr_ is the empty string, then - 1. Let _thisIndex_ be ? ToLength(? Get(_R_, `"lastIndex"`)). + 1. Let _thisIndex_ be ? ToLength(? Get(_R_, *"lastIndex"*)). 1. Let _nextIndex_ be ! AdvanceStringIndex(_S_, _thisIndex_, _fullUnicode_). - 1. Perform ? Set(_R_, `"lastIndex"`, _nextIndex_, *true*). + 1. Perform ? Set(_R_, *"lastIndex"*, _nextIndex_, *true*). 1. Return ! CreateIterResultObject(_match_, *false*). 1. Else, 1. Set _O_.[[Done]] to *true*. @@ -32709,12 +32709,12 @@

                The Array Constructor

                The Array constructor:

                • is the intrinsic object %Array%.
                • -
                • is the initial value of the `"Array"` property of the global object.
                • +
                • is the initial value of the *"Array"* property of the global object.
                • creates and initializes a new Array exotic object when called as a constructor.
                • also creates and initializes a new Array object when called as a function rather than as a constructor. Thus the function call `Array(…)` is equivalent to the object creation expression `new Array(…)` with the same arguments.
                • is a single function whose behaviour is overloaded based upon the number and types of its arguments.
                • is designed to be subclassable. It may be used as the value of an `extends` clause of a class definition. Subclass constructors that intend to inherit the exotic `Array` behaviour must include a `super` call to the `Array` constructor to initialize subclass instances that are Array exotic objects. However, most of the `Array.prototype` methods are generic methods that are not dependent upon their *this* value being an Array exotic object.
                • -
                • has a `"length"` property whose value is 1.
                • +
                • has a *"length"* property whose value is 1.
                @@ -32724,7 +32724,7 @@

                Array ( )

                1. Let _numberOfArgs_ be the number of arguments passed to this function call. 1. Assert: _numberOfArgs_ = 0. 1. If NewTarget is *undefined*, let _newTarget_ be the active function object; else let _newTarget_ be NewTarget. - 1. Let _proto_ be ? GetPrototypeFromConstructor(_newTarget_, `"%Array.prototype%"`). + 1. Let _proto_ be ? GetPrototypeFromConstructor(_newTarget_, *"%Array.prototype%"*). 1. Return ! ArrayCreate(0, _proto_).
                @@ -32736,15 +32736,15 @@

                Array ( _len_ )

                1. Let _numberOfArgs_ be the number of arguments passed to this function call. 1. Assert: _numberOfArgs_ = 1. 1. If NewTarget is *undefined*, let _newTarget_ be the active function object; else let _newTarget_ be NewTarget. - 1. Let _proto_ be ? GetPrototypeFromConstructor(_newTarget_, `"%Array.prototype%"`). + 1. Let _proto_ be ? GetPrototypeFromConstructor(_newTarget_, *"%Array.prototype%"*). 1. Let _array_ be ! ArrayCreate(0, _proto_). 1. If Type(_len_) is not Number, then - 1. Perform ! CreateDataPropertyOrThrow(_array_, `"0"`, _len_). + 1. Perform ! CreateDataPropertyOrThrow(_array_, *"0"*, _len_). 1. Let _intLen_ be 1. 1. Else, 1. Let _intLen_ be ToUint32(_len_). 1. If _intLen_ ≠ _len_, throw a *RangeError* exception. - 1. Perform ! Set(_array_, `"length"`, _intLen_, *true*). + 1. Perform ! Set(_array_, *"length"*, _intLen_, *true*). 1. Return _array_. @@ -32757,7 +32757,7 @@

                Array ( ..._items_ )

                1. Let _numberOfArgs_ be the number of arguments passed to this function call. 1. Assert: _numberOfArgs_ ≥ 2. 1. If NewTarget is *undefined*, let _newTarget_ be the active function object; else let _newTarget_ be NewTarget. - 1. Let _proto_ be ? GetPrototypeFromConstructor(_newTarget_, `"%Array.prototype%"`). + 1. Let _proto_ be ? GetPrototypeFromConstructor(_newTarget_, *"%Array.prototype%"*). 1. Let _array_ be ? ArrayCreate(_numberOfArgs_, _proto_). 1. Let _k_ be 0. 1. Let _items_ be a zero-origined List containing the argument items in order. @@ -32766,7 +32766,7 @@

                Array ( ..._items_ )

                1. Let _itemK_ be _items_[_k_]. 1. Perform ! CreateDataPropertyOrThrow(_array_, _Pk_, _itemK_). 1. Set _k_ to _k_ + 1. - 1. Assert: The value of _array_'s `"length"` property is _numberOfArgs_. + 1. Assert: The value of _array_'s *"length"* property is _numberOfArgs_. 1. Return _array_. @@ -32805,7 +32805,7 @@

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

                1. Let _Pk_ be ! ToString(_k_). 1. Let _next_ be ? IteratorStep(_iteratorRecord_). 1. If _next_ is *false*, then - 1. Perform ? Set(_A_, `"length"`, _k_, *true*). + 1. Perform ? Set(_A_, *"length"*, _k_, *true*). 1. Return _A_. 1. Let _nextValue_ be ? IteratorValue(_next_). 1. If _mapping_ is *true*, then @@ -32832,7 +32832,7 @@

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

                1. Else, let _mappedValue_ be _kValue_. 1. Perform ? CreateDataPropertyOrThrow(_A_, _Pk_, _mappedValue_). 1. Set _k_ to _k_ + 1. - 1. Perform ? Set(_A_, `"length"`, _len_, *true*). + 1. Perform ? Set(_A_, *"length"*, _len_, *true*). 1. Return _A_. @@ -32865,7 +32865,7 @@

                Array.of ( ..._items_ )

                1. Let _Pk_ be ! ToString(_k_). 1. Perform ? CreateDataPropertyOrThrow(_A_, _Pk_, _kValue_). 1. Set _k_ to _k_ + 1. - 1. Perform ? Set(_A_, `"length"`, _len_, *true*). + 1. Perform ? Set(_A_, *"length"*, _len_, *true*). 1. Return _A_. @@ -32888,7 +32888,7 @@

                get Array [ @@species ]

                1. Return the *this* value. -

                The value of the `"name"` property of this function is *"get [Symbol.species]"*.

                +

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

                Array prototype methods normally use their `this` object's constructor to create a derived object. However, a subclass constructor may over-ride that default behaviour by redefining its @@species property.

                @@ -32901,7 +32901,7 @@

                Properties of the Array Prototype Object

                • is the intrinsic object %ArrayPrototype%.
                • is an Array exotic object and has the internal methods specified for such objects.
                • -
                • has a `"length"` property whose initial value is 0 and whose attributes are { [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }.
                • +
                • has a *"length"* property whose initial value is 0 and whose attributes are { [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }.
                • has a [[Prototype]] internal slot whose value is %Object.prototype%.
                @@ -32937,12 +32937,12 @@

                Array.prototype.concat ( ..._arguments_ )

                1. If _n_ ≥ 253 - 1, throw a *TypeError* exception. 1. Perform ? CreateDataPropertyOrThrow(_A_, ! ToString(_n_), _E_). 1. Set _n_ to _n_ + 1. - 1. Perform ? Set(_A_, `"length"`, _n_, *true*). + 1. Perform ? Set(_A_, *"length"*, _n_, *true*). 1. Return _A_. -

                The `"length"` property of the `concat` method is 1.

                +

                The *"length"* property of the `concat` method is 1.

                -

                The explicit setting of the `"length"` property in step 6 is necessary to ensure that its value is correct in situations where the trailing elements of the result Array are not present.

                +

                The explicit setting of the *"length"* property in step 6 is necessary to ensure that its value is correct in situations where the trailing elements of the result Array are not present.

                The `concat` function is intentionally generic; it does not require that its *this* value be an Array object. Therefore it can be transferred to other kinds of objects for use as a method.

                @@ -33340,7 +33340,7 @@

                Array.prototype.join ( _separator_ )

                1. Let _O_ be ? ToObject(*this* value). 1. Let _len_ be ? LengthOfArrayLike(_O_). - 1. If _separator_ is *undefined*, let _sep_ be the single-element String `","`. + 1. If _separator_ is *undefined*, let _sep_ be the single-element String *","*. 1. Else, let _sep_ be ? ToString(_separator_). 1. Let _R_ be the empty String. 1. Let _k_ be 0. @@ -33439,7 +33439,7 @@

                Array.prototype.pop ( )

                1. Let _O_ be ? ToObject(*this* value). 1. Let _len_ be ? LengthOfArrayLike(_O_). 1. If _len_ is zero, then - 1. Perform ? Set(_O_, `"length"`, 0, *true*). + 1. Perform ? Set(_O_, *"length"*, 0, *true*). 1. Return *undefined*. 1. Else, 1. Assert: _len_ > 0. @@ -33447,7 +33447,7 @@

                Array.prototype.pop ( )

                1. Let _index_ be ! ToString(_newLen_). 1. Let _element_ be ? Get(_O_, _index_). 1. Perform ? DeletePropertyOrThrow(_O_, _index_). - 1. Perform ? Set(_O_, `"length"`, _newLen_, *true*). + 1. Perform ? Set(_O_, *"length"*, _newLen_, *true*). 1. Return _element_.
                @@ -33471,10 +33471,10 @@

                Array.prototype.push ( ..._items_ )

                1. Remove the first element from _items_ and let _E_ be the value of the element. 1. Perform ? Set(_O_, ! ToString(_len_), _E_, *true*). 1. Set _len_ to _len_ + 1. - 1. Perform ? Set(_O_, `"length"`, _len_, *true*). + 1. Perform ? Set(_O_, *"length"*, _len_, *true*). 1. Return _len_. -

                The `"length"` property of the `push` method is 1.

                +

                The *"length"* property of the `push` method is 1.

                The `push` function is intentionally generic; it does not require that its *this* value be an Array object. Therefore it can be transferred to other kinds of objects for use as a method.

                @@ -33613,9 +33613,9 @@

                Array.prototype.shift ( )

                1. Let _O_ be ? ToObject(*this* value). 1. Let _len_ be ? LengthOfArrayLike(_O_). 1. If _len_ is zero, then - 1. Perform ? Set(_O_, `"length"`, 0, *true*). + 1. Perform ? Set(_O_, *"length"*, 0, *true*). 1. Return *undefined*. - 1. Let _first_ be ? Get(_O_, `"0"`). + 1. Let _first_ be ? Get(_O_, *"0"*). 1. Let _k_ be 1. 1. Repeat, while _k_ < _len_ 1. Let _from_ be ! ToString(_k_). @@ -33629,7 +33629,7 @@

                Array.prototype.shift ( )

                1. Perform ? DeletePropertyOrThrow(_O_, _to_). 1. Set _k_ to _k_ + 1. 1. Perform ? DeletePropertyOrThrow(_O_, ! ToString(_len_ - 1)). - 1. Perform ? Set(_O_, `"length"`, _len_ - 1, *true*). + 1. Perform ? Set(_O_, *"length"*, _len_ - 1, *true*). 1. Return _first_. @@ -33661,11 +33661,11 @@

                Array.prototype.slice ( _start_, _end_ )

                1. Perform ? CreateDataPropertyOrThrow(_A_, ! ToString(_n_), _kValue_). 1. Set _k_ to _k_ + 1. 1. Set _n_ to _n_ + 1. - 1. Perform ? Set(_A_, `"length"`, _n_, *true*). + 1. Perform ? Set(_A_, *"length"*, _n_, *true*). 1. Return _A_. -

                The explicit setting of the `"length"` property of the result Array in step 11 was necessary in previous editions of ECMAScript to ensure that its length was correct in situations where the trailing elements of the result Array were not present. Setting `"length"` became unnecessary starting in ES2015 when the result Array was initialized to its proper length rather than an empty Array but is carried forward to preserve backward compatibility.

                +

                The explicit setting of the *"length"* property of the result Array in step 11 was necessary in previous editions of ECMAScript to ensure that its length was correct in situations where the trailing elements of the result Array were not present. Setting *"length"* became unnecessary starting in ES2015 when the result Array was initialized to its proper length rather than an empty Array but is carried forward to preserve backward compatibility.

                The `slice` function is intentionally generic; it does not require that its *this* value be an Array object. Therefore it can be transferred to other kinds of objects for use as a method.

                @@ -33867,7 +33867,7 @@

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

                1. Let _fromValue_ be ? Get(_O_, _from_). 1. Perform ? CreateDataPropertyOrThrow(_A_, ! ToString(_k_), _fromValue_). 1. Set _k_ to _k_ + 1. - 1. Perform ? Set(_A_, `"length"`, _actualDeleteCount_, *true*). + 1. Perform ? Set(_A_, *"length"*, _actualDeleteCount_, *true*). 1. Let _items_ be a List whose elements are, in left to right order, the portion of the actual argument list starting with the third argument. The list is empty if fewer than three arguments were passed. 1. Let _itemCount_ be the number of elements in _items_. 1. If _itemCount_ < _actualDeleteCount_, then @@ -33905,11 +33905,11 @@

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

                1. Remove the first element from _items_ and let _E_ be the value of that element. 1. Perform ? Set(_O_, ! ToString(_k_), _E_, *true*). 1. Set _k_ to _k_ + 1. - 1. Perform ? Set(_O_, `"length"`, _len_ - _actualDeleteCount_ + _itemCount_, *true*). + 1. Perform ? Set(_O_, *"length"*, _len_ - _actualDeleteCount_ + _itemCount_, *true*). 1. Return _A_. -

                The explicit setting of the `"length"` property of the result Array in step 19 was necessary in previous editions of ECMAScript to ensure that its length was correct in situations where the trailing elements of the result Array were not present. Setting `"length"` became unnecessary starting in ES2015 when the result Array was initialized to its proper length rather than an empty Array but is carried forward to preserve backward compatibility.

                +

                The explicit setting of the *"length"* property of the result Array in step 19 was necessary in previous editions of ECMAScript to ensure that its length was correct in situations where the trailing elements of the result Array were not present. Setting *"length"* became unnecessary starting in ES2015 when the result Array was initialized to its proper length rather than an empty Array but is carried forward to preserve backward compatibility.

                The `splice` function is intentionally generic; it does not require that its *this* value be an Array object. Therefore it can be transferred to other kinds of objects for use as a method.

                @@ -33935,7 +33935,7 @@

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

                1. Set _R_ to the string-concatenation of _R_ and _separator_. 1. Let _nextElement_ be ? Get(_array_, ! ToString(_k_)). 1. If _nextElement_ is not *undefined* or *null*, then - 1. Let _S_ be ? ToString(? Invoke(_nextElement_, `"toLocaleString"`)). + 1. Let _S_ be ? ToString(? Invoke(_nextElement_, *"toLocaleString"*)). 1. Set _R_ to the string-concatenation of _R_ and _S_. 1. Set _k_ to _k_ + 1. 1. Return _R_. @@ -33953,7 +33953,7 @@

                Array.prototype.toString ( )

                When the `toString` method is called, the following steps are taken:

                1. Let _array_ be ? ToObject(*this* value). - 1. Let _func_ be ? Get(_array_, `"join"`). + 1. Let _func_ be ? Get(_array_, *"join"*). 1. If IsCallable(_func_) is *false*, set _func_ to the intrinsic function %Object.prototype.toString%. 1. Return ? Call(_func_, _array_). @@ -33992,10 +33992,10 @@

                Array.prototype.unshift ( ..._items_ )

                1. Remove the first element from _items_ and let _E_ be the value of that element. 1. Perform ? Set(_O_, ! ToString(_j_), _E_, *true*). 1. Set _j_ to _j_ + 1. - 1. Perform ? Set(_O_, `"length"`, _len_ + _argCount_, *true*). + 1. Perform ? Set(_O_, *"length"*, _len_ + _argCount_, *true*). 1. Return _len_ + _argCount_. -

                The `"length"` property of the `unshift` method is 1.

                +

                The *"length"* property of the `unshift` method is 1.

                The `unshift` function is intentionally generic; it does not require that its *this* value be an Array object. Therefore it can be transferred to other kinds of objects for use as a method.

                @@ -34021,16 +34021,16 @@

                Array.prototype [ @@unscopables ]

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

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

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

                @@ -34043,14 +34043,14 @@

                Array.prototype [ @@unscopables ]

                Properties of Array Instances

                Array instances are Array exotic objects and have the internal methods specified for such objects. Array instances inherit properties from the Array prototype object.

                -

                Array instances have a `"length"` property, and a set of enumerable properties with array index names.

                +

                Array instances have a *"length"* property, and a set of enumerable properties with array index names.

                length

                -

                The `"length"` property of an Array instance is a data property whose value is always numerically greater than the name of every configurable own property whose name is an array index.

                -

                The `"length"` property initially has the attributes { [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }.

                +

                The *"length"* property of an Array instance is a data property whose value is always numerically greater than the name of every configurable own property whose name is an array index.

                +

                The *"length"* property initially has the attributes { [[Writable]]: *true*, [[Enumerable]]: *false*, [[Configurable]]: *false* }.

                -

                Reducing the value of the `"length"` property has the side-effect of deleting own array elements whose array index is between the old and new length values. However, non-configurable properties can not be deleted. Attempting to set the `"length"` property of an Array object to a value that is numerically less than or equal to the largest numeric own property name of an existing non-configurable array-indexed property of the array will result in the length being set to a numeric value that is one greater than that non-configurable numeric own property name. See .

                +

                Reducing the value of the *"length"* property has the side-effect of deleting own array elements whose array index is between the old and new length values. However, non-configurable properties can not be deleted. Attempting to set the *"length"* property of an Array object to a value that is numerically less than or equal to the largest numeric own property name of an existing non-configurable array-indexed property of the array will result in the length being set to a numeric value that is one greater than that non-configurable numeric own property name. See .

                @@ -34416,7 +34416,7 @@

                %TypedArray% ( )

                1. Throw a *TypeError* exception. -

                The `"length"` property of the %TypedArray% constructor function is 0.

                +

                The *"length"* property of the %TypedArray% constructor function is 0.

                @@ -34426,7 +34426,7 @@

                Properties of the %TypedArray% Intrinsic Object

                The %TypedArray% intrinsic object:

                • has a [[Prototype]] internal slot whose value is %Function.prototype%.
                • -
                • has a `"name"` property whose value is *"TypedArray"*.
                • +
                • has a *"name"* property whose value is *"TypedArray"*.
                • has the following properties:
                @@ -34524,7 +34524,7 @@

                get %TypedArray% [ @@species ]

                1. Return the *this* value. -

                The value of the `"name"` property of this function is *"get [Symbol.species]"*.

                +

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

                %TypedArray.prototype% methods normally use their `this` object's constructor to create a derived object. However, a subclass constructor may over-ride that default behaviour by redefining its @@species property.

                @@ -34650,7 +34650,7 @@

                %TypedArray%.prototype.entries ( )

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

                -

                %TypedArray%`.prototype.every` is a distinct function that implements the same algorithm as `Array.prototype.every` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of `"length"`. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm and must take into account the possibility that calls to _callbackfn_ may cause the *this* value to become detached.

                +

                %TypedArray%`.prototype.every` is a distinct function that implements the same algorithm as `Array.prototype.every` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of *"length"*. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm and must take into account the possibility that calls to _callbackfn_ may cause the *this* value to become detached.

                This function is not generic. ValidateTypedArray is applied to the *this* value prior to evaluating the algorithm. If its result is an abrupt completion that exception is thrown instead of evaluating the algorithm.

                @@ -34710,37 +34710,37 @@

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

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

                -

                %TypedArray%`.prototype.find` is a distinct function that implements the same algorithm as `Array.prototype.find` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of `"length"`. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm and must take into account the possibility that calls to _predicate_ may cause the *this* value to become detached.

                +

                %TypedArray%`.prototype.find` is a distinct function that implements the same algorithm as `Array.prototype.find` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of *"length"*. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm and must take into account the possibility that calls to _predicate_ may cause the *this* value to become detached.

                This function is not generic. ValidateTypedArray is applied to the *this* value prior to evaluating the algorithm. If its result is an abrupt completion that exception is thrown instead of evaluating the algorithm.

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

                -

                %TypedArray%`.prototype.findIndex` is a distinct function that implements the same algorithm as `Array.prototype.findIndex` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of `"length"`. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm and must take into account the possibility that calls to _predicate_ may cause the *this* value to become detached.

                +

                %TypedArray%`.prototype.findIndex` is a distinct function that implements the same algorithm as `Array.prototype.findIndex` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of *"length"*. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm and must take into account the possibility that calls to _predicate_ may cause the *this* value to become detached.

                This function is not generic. ValidateTypedArray is applied to the *this* value prior to evaluating the algorithm. If its result is an abrupt completion that exception is thrown instead of evaluating the algorithm.

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

                -

                %TypedArray%`.prototype.forEach` is a distinct function that implements the same algorithm as `Array.prototype.forEach` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of `"length"`. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm and must take into account the possibility that calls to _callbackfn_ may cause the *this* value to become detached.

                +

                %TypedArray%`.prototype.forEach` is a distinct function that implements the same algorithm as `Array.prototype.forEach` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of *"length"*. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm and must take into account the possibility that calls to _callbackfn_ may cause the *this* value to become detached.

                This function is not generic. ValidateTypedArray is applied to the *this* value prior to evaluating the algorithm. If its result is an abrupt completion that exception is thrown instead of evaluating the algorithm.

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

                -

                %TypedArray%`.prototype.includes` is a distinct function that implements the same algorithm as `Array.prototype.includes` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of `"length"`. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm.

                +

                %TypedArray%`.prototype.includes` is a distinct function that implements the same algorithm as `Array.prototype.includes` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of *"length"*. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm.

                This function is not generic. ValidateTypedArray is applied to the *this* value prior to evaluating the algorithm. If its result is an abrupt completion that exception is thrown instead of evaluating the algorithm.

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

                -

                %TypedArray%`.prototype.indexOf` is a distinct function that implements the same algorithm as `Array.prototype.indexOf` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of `"length"`. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm.

                +

                %TypedArray%`.prototype.indexOf` is a distinct function that implements the same algorithm as `Array.prototype.indexOf` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of *"length"*. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm.

                This function is not generic. ValidateTypedArray is applied to the *this* value prior to evaluating the algorithm. If its result is an abrupt completion that exception is thrown instead of evaluating the algorithm.

                %TypedArray%.prototype.join ( _separator_ )

                -

                %TypedArray%`.prototype.join` is a distinct function that implements the same algorithm as `Array.prototype.join` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of `"length"`. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm.

                +

                %TypedArray%`.prototype.join` is a distinct function that implements the same algorithm as `Array.prototype.join` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of *"length"*. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm.

                This function is not generic. ValidateTypedArray is applied to the *this* value prior to evaluating the algorithm. If its result is an abrupt completion that exception is thrown instead of evaluating the algorithm.

                @@ -34756,7 +34756,7 @@

                %TypedArray%.prototype.keys ( )

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

                -

                %TypedArray%`.prototype.lastIndexOf` is a distinct function that implements the same algorithm as `Array.prototype.lastIndexOf` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of `"length"`. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm.

                +

                %TypedArray%`.prototype.lastIndexOf` is a distinct function that implements the same algorithm as `Array.prototype.lastIndexOf` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of *"length"*. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm.

                This function is not generic. ValidateTypedArray is applied to the *this* value prior to evaluating the algorithm. If its result is an abrupt completion that exception is thrown instead of evaluating the algorithm.

                @@ -34800,19 +34800,19 @@

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

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

                -

                %TypedArray%`.prototype.reduce` is a distinct function that implements the same algorithm as `Array.prototype.reduce` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of `"length"`. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm and must take into account the possibility that calls to _callbackfn_ may cause the *this* value to become detached.

                +

                %TypedArray%`.prototype.reduce` is a distinct function that implements the same algorithm as `Array.prototype.reduce` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of *"length"*. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm and must take into account the possibility that calls to _callbackfn_ may cause the *this* value to become detached.

                This function is not generic. ValidateTypedArray is applied to the *this* value prior to evaluating the algorithm. If its result is an abrupt completion that exception is thrown instead of evaluating the algorithm.

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

                -

                %TypedArray%`.prototype.reduceRight` is a distinct function that implements the same algorithm as `Array.prototype.reduceRight` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of `"length"`. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm and must take into account the possibility that calls to _callbackfn_ may cause the *this* value to become detached.

                +

                %TypedArray%`.prototype.reduceRight` is a distinct function that implements the same algorithm as `Array.prototype.reduceRight` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of *"length"*. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm and must take into account the possibility that calls to _callbackfn_ may cause the *this* value to become detached.

                This function is not generic. ValidateTypedArray is applied to the *this* value prior to evaluating the algorithm. If its result is an abrupt completion that exception is thrown instead of evaluating the algorithm.

                %TypedArray%.prototype.reverse ( )

                -

                %TypedArray%`.prototype.reverse` is a distinct function that implements the same algorithm as `Array.prototype.reverse` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of `"length"`. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm.

                +

                %TypedArray%`.prototype.reverse` is a distinct function that implements the same algorithm as `Array.prototype.reverse` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of *"length"*. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm.

                This function is not generic. ValidateTypedArray is applied to the *this* value prior to evaluating the algorithm. If its result is an abrupt completion that exception is thrown instead of evaluating the algorithm.

                @@ -34959,7 +34959,7 @@

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

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

                -

                %TypedArray%`.prototype.some` is a distinct function that implements the same algorithm as `Array.prototype.some` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of `"length"`. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm and must take into account the possibility that calls to _callbackfn_ may cause the *this* value to become detached.

                +

                %TypedArray%`.prototype.some` is a distinct function that implements the same algorithm as `Array.prototype.some` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of *"length"*. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm and must take into account the possibility that calls to _callbackfn_ may cause the *this* value to become detached.

                This function is not generic. ValidateTypedArray is applied to the *this* value prior to evaluating the algorithm. If its result is an abrupt completion that exception is thrown instead of evaluating the algorithm.

                @@ -35024,7 +35024,7 @@

                %TypedArray%.prototype.subarray ( _begin_, _end_ )

                %TypedArray%.prototype.toLocaleString ( [ _reserved1_ [ , _reserved2_ ] ] )

                -

                %TypedArray%`.prototype.toLocaleString` is a distinct function that implements the same algorithm as `Array.prototype.toLocaleString` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of `"length"`. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm.

                +

                %TypedArray%`.prototype.toLocaleString` is a distinct function that implements the same algorithm as `Array.prototype.toLocaleString` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of *"length"*. The implementation of the algorithm may be optimized with the knowledge that the *this* value is an object that has a fixed length and whose integer-indexed properties are not sparse. However, such optimization must not introduce any observable changes in the specified behaviour of the algorithm.

                This function is not generic. ValidateTypedArray is applied to the *this* value prior to evaluating the algorithm. If its result is an abrupt completion that exception is thrown instead of evaluating the algorithm.

                If the ECMAScript implementation includes the ECMA-402 Internationalization API this function is based upon the algorithm for `Array.prototype.toLocaleString` that is in the ECMA-402 specification.

                @@ -35063,7 +35063,7 @@

                get %TypedArray%.prototype [ @@toStringTag ]

                1. Return _name_.

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

                -

                The initial value of the `"name"` property of this function is *"get [Symbol.toStringTag]"*.

                +

                The initial value of the *"name"* property of this function is *"get [Symbol.toStringTag]"*.

                @@ -35075,7 +35075,7 @@

                The _TypedArray_ Constructors

              • is a single function whose behaviour is overloaded based upon the number and types of its arguments. The actual behaviour of a call of _TypedArray_ depends upon the number and kind of arguments that are passed to it.
              • is not intended to be called as a function and will throw an exception when called in that manner.
              • is designed to be subclassable. It may be used as the value of an `extends` clause of a class definition. Subclass constructors that intend to inherit the specified _TypedArray_ behaviour must include a `super` call to the _TypedArray_ constructor to create and initialize the subclass instance with the internal state necessary to support the %TypedArray%`.prototype` built-in methods.
              • -
              • has a `"length"` property whose value is 3.
              • +
              • has a *"length"* property whose value is 3.
              @@ -35108,7 +35108,7 @@

              Runtime Semantics: AllocateTypedArray ( _constructorName_, _newTarget_, _def 1. Let _obj_ be IntegerIndexedObjectCreate(_proto_, « [[ViewedArrayBuffer]], [[TypedArrayName]], [[ContentType]], [[ByteLength]], [[ByteOffset]], [[ArrayLength]] »). 1. Assert: _obj_.[[ViewedArrayBuffer]] is *undefined*. 1. Set _obj_.[[TypedArrayName]] to _constructorName_. - 1. If _constructorName_ is `"BigInt64Array"` or `"BigUint64Array"`, set _obj_.[[ContentType]] to ~BigInt~. + 1. If _constructorName_ is *"BigInt64Array"* or *"BigUint64Array"*, set _obj_.[[ContentType]] to ~BigInt~. 1. Otherwise, set _obj_.[[ContentType]] to ~Number~. 1. If _length_ is not present, then 1. Set _obj_.[[ByteLength]] to 0. @@ -35286,7 +35286,7 @@

              Properties of the _TypedArray_ Constructors

              Each _TypedArray_ constructor:

              • has a [[Prototype]] internal slot whose value is %TypedArray%.
              • -
              • has a `"name"` property whose value is the String value of the constructor name specified for it in .
              • +
              • has a *"name"* property whose value is the String value of the constructor name specified for it in .
              • has the following properties:
              @@ -35344,7 +35344,7 @@

              The Map Constructor

              The Map constructor:

              • is the intrinsic object %Map%.
              • -
              • is the initial value of the `"Map"` property of the global object.
              • +
              • is the initial value of the *"Map"* property of the global object.
              • creates and initializes a new Map object when called as a constructor.
              • is not intended to be called as a function and will throw an exception when called in that manner.
              • is designed to be subclassable. It may be used as the value in an `extends` clause of a class definition. Subclass constructors that intend to inherit the specified `Map` behaviour must include a `super` call to the `Map` constructor to create and initialize the subclass instance with the internal state necessary to support the `Map.prototype` built-in methods.
              • @@ -35355,10 +35355,10 @@

                Map ( [ _iterable_ ] )

                When the `Map` function is called with optional argument _iterable_, the following steps are taken:

                1. If NewTarget is *undefined*, throw a *TypeError* exception. - 1. Let _map_ be ? OrdinaryCreateFromConstructor(NewTarget, `"%Map.prototype%"`, « [[MapData]] »). + 1. Let _map_ be ? OrdinaryCreateFromConstructor(NewTarget, *"%Map.prototype%"*, « [[MapData]] »). 1. Set _map_.[[MapData]] to a new empty List. 1. If _iterable_ is not present, or is either *undefined* or *null*, return _map_. - 1. Let _adder_ be ? Get(_map_, `"set"`). + 1. Let _adder_ be ? Get(_map_, *"set"*). 1. Return ? AddEntriesFromIterable(_map_, _iterable_, _adder_). @@ -35380,9 +35380,9 @@

                AddEntriesFromIterable ( _target_, _iterable_, _adder_ )

                1. If Type(_nextItem_) is not Object, then 1. Let _error_ be ThrowCompletion(a newly created *TypeError* object). 1. Return ? IteratorClose(_iteratorRecord_, _error_). - 1. Let _k_ be Get(_nextItem_, `"0"`). + 1. Let _k_ be Get(_nextItem_, *"0"*). 1. If _k_ is an abrupt completion, return ? IteratorClose(_iteratorRecord_, _k_). - 1. Let _v_ be Get(_nextItem_, `"1"`). + 1. Let _v_ be Get(_nextItem_, *"1"*). 1. If _v_ is an abrupt completion, return ? IteratorClose(_iteratorRecord_, _v_). 1. Let _status_ be Call(_adder_, _target_, « _k_.[[Value]], _v_.[[Value]] »). 1. If _status_ is an abrupt completion, return ? IteratorClose(_iteratorRecord_, _status_). @@ -35413,7 +35413,7 @@

                get Map [ @@species ]

                1. Return the *this* value. -

                The value of the `"name"` property of this function is *"get [Symbol.species]"*.

                +

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

                Methods that create derived collection objects should call @@species to determine the constructor to use to create the derived objects. Subclass constructor may over-ride @@species to change the default constructor assignment.

                @@ -35580,7 +35580,7 @@

                Map.prototype.values ( )

                Map.prototype [ @@iterator ] ( )

                -

                The initial value of the @@iterator property is the same function object as the initial value of the `"entries"` property.

                +

                The initial value of the @@iterator property is the same function object as the initial value of the *"entries"* property.

                @@ -35714,7 +35714,7 @@

                The Set Constructor

                The Set constructor:

                • is the intrinsic object %Set%.
                • -
                • is the initial value of the `"Set"` property of the global object.
                • +
                • is the initial value of the *"Set"* property of the global object.
                • creates and initializes a new Set object when called as a constructor.
                • is not intended to be called as a function and will throw an exception when called in that manner.
                • is designed to be subclassable. It may be used as the value in an `extends` clause of a class definition. Subclass constructors that intend to inherit the specified `Set` behaviour must include a `super` call to the `Set` constructor to create and initialize the subclass instance with the internal state necessary to support the `Set.prototype` built-in methods.
                • @@ -35725,11 +35725,11 @@

                  Set ( [ _iterable_ ] )

                  When the `Set` function is called with optional argument _iterable_, the following steps are taken:

                  1. If NewTarget is *undefined*, throw a *TypeError* exception. - 1. Let _set_ be ? OrdinaryCreateFromConstructor(NewTarget, `"%Set.prototype%"`, « [[SetData]] »). + 1. Let _set_ be ? OrdinaryCreateFromConstructor(NewTarget, *"%Set.prototype%"*, « [[SetData]] »). 1. Set _set_.[[SetData]] to a new empty List. 1. If _iterable_ is not present, set _iterable_ to *undefined*. 1. If _iterable_ is either *undefined* or *null*, return _set_. - 1. Let _adder_ be ? Get(_set_, `"add"`). + 1. Let _adder_ be ? Get(_set_, *"add"*). 1. If IsCallable(_adder_) is *false*, throw a *TypeError* exception. 1. Let _iteratorRecord_ be ? GetIterator(_iterable_). 1. Repeat, @@ -35762,7 +35762,7 @@

                  get Set [ @@species ]

                  1. Return the *this* value. -

                  The value of the `"name"` property of this function is *"get [Symbol.species]"*.

                  +

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

                  Methods that create derived collection objects should call @@species to determine the constructor to use to create the derived objects. Subclass constructor may over-ride @@species to change the default constructor assignment.

                  @@ -35885,7 +35885,7 @@

                  Set.prototype.has ( _value_ )

                  Set.prototype.keys ( )

                  -

                  The initial value of the `"keys"` property is the same function object as the initial value of the `"values"` property.

                  +

                  The initial value of the *"keys"* property is the same function object as the initial value of the *"values"* property.

                  For iteration purposes, a Set appears similar to a Map where each entry has the same value for its key and value.

                  @@ -35916,7 +35916,7 @@

                  Set.prototype.values ( )

                  Set.prototype [ @@iterator ] ( )

                  -

                  The initial value of the @@iterator property is the same function object as the initial value of the `"values"` property.

                  +

                  The initial value of the @@iterator property is the same function object as the initial value of the *"values"* property.

                  @@ -36053,7 +36053,7 @@

                  The WeakMap Constructor

                  The WeakMap constructor:

                  • is the intrinsic object %WeakMap%.
                  • -
                  • is the initial value of the `"WeakMap"` property of the global object.
                  • +
                  • is the initial value of the *"WeakMap"* property of the global object.
                  • creates and initializes a new WeakMap object when called as a constructor.
                  • is not intended to be called as a function and will throw an exception when called in that manner.
                  • is designed to be subclassable. It may be used as the value in an `extends` clause of a class definition. Subclass constructors that intend to inherit the specified `WeakMap` behaviour must include a `super` call to the `WeakMap` constructor to create and initialize the subclass instance with the internal state necessary to support the `WeakMap.prototype` built-in methods.
                  • @@ -36064,10 +36064,10 @@

                    WeakMap ( [ _iterable_ ] )

                    When the `WeakMap` function is called with optional argument _iterable_, the following steps are taken:

                    1. If NewTarget is *undefined*, throw a *TypeError* exception. - 1. Let _map_ be ? OrdinaryCreateFromConstructor(NewTarget, `"%WeakMap.prototype%"`, « [[WeakMapData]] »). + 1. Let _map_ be ? OrdinaryCreateFromConstructor(NewTarget, *"%WeakMap.prototype%"*, « [[WeakMapData]] »). 1. Set _map_.[[WeakMapData]] to a new empty List. 1. If _iterable_ is not present, or is either *undefined* or *null*, return _map_. - 1. Let _adder_ be ? Get(_map_, `"set"`). + 1. Let _adder_ be ? Get(_map_, *"set"*). 1. Return ? AddEntriesFromIterable(_map_, _iterable_, _adder_). @@ -36199,7 +36199,7 @@

                    The WeakSet Constructor

                    The WeakSet constructor:

                    • is the intrinsic object %WeakSet%.
                    • -
                    • is the initial value of the `"WeakSet"` property of the global object.
                    • +
                    • is the initial value of the *"WeakSet"* property of the global object.
                    • creates and initializes a new WeakSet object when called as a constructor.
                    • is not intended to be called as a function and will throw an exception when called in that manner.
                    • is designed to be subclassable. It may be used as the value in an `extends` clause of a class definition. Subclass constructors that intend to inherit the specified `WeakSet` behaviour must include a `super` call to the `WeakSet` constructor to create and initialize the subclass instance with the internal state necessary to support the `WeakSet.prototype` built-in methods.
                    • @@ -36210,11 +36210,11 @@

                      WeakSet ( [ _iterable_ ] )

                      When the `WeakSet` function is called with optional argument _iterable_, the following steps are taken:

                      1. If NewTarget is *undefined*, throw a *TypeError* exception. - 1. Let _set_ be ? OrdinaryCreateFromConstructor(NewTarget, `"%WeakSet.prototype%"`, « [[WeakSetData]] »). + 1. Let _set_ be ? OrdinaryCreateFromConstructor(NewTarget, *"%WeakSet.prototype%"*, « [[WeakSetData]] »). 1. Set _set_.[[WeakSetData]] to a new empty List. 1. If _iterable_ is not present, set _iterable_ to *undefined*. 1. If _iterable_ is either *undefined* or *null*, return _set_. - 1. Let _adder_ be ? Get(_set_, `"add"`). + 1. Let _adder_ be ? Get(_set_, *"add"*). 1. If IsCallable(_adder_) is *false*, throw a *TypeError* exception. 1. Let _iteratorRecord_ be ? GetIterator(_iterable_). 1. Repeat, @@ -36333,7 +36333,7 @@

                      Abstract Operations For ArrayBuffer Objects

                      AllocateArrayBuffer ( _constructor_, _byteLength_ )

                      The abstract operation AllocateArrayBuffer with arguments _constructor_ and _byteLength_ is used to create an ArrayBuffer object. It performs the following steps:

                      - 1. Let _obj_ be ? OrdinaryCreateFromConstructor(_constructor_, `"%ArrayBuffer.prototype%"`, « [[ArrayBufferData]], [[ArrayBufferByteLength]], [[ArrayBufferDetachKey]] »). + 1. Let _obj_ be ? OrdinaryCreateFromConstructor(_constructor_, *"%ArrayBuffer.prototype%"*, « [[ArrayBufferData]], [[ArrayBufferByteLength]], [[ArrayBufferDetachKey]] »). 1. Assert: _byteLength_ is an integer value ≥ 0. 1. Let _block_ be ? CreateByteDataBlock(_byteLength_). 1. Set _obj_.[[ArrayBufferData]] to _block_. @@ -36539,7 +36539,7 @@

                      The ArrayBuffer Constructor

                      The ArrayBuffer constructor:

                      • is the intrinsic object %ArrayBuffer%.
                      • -
                      • is the initial value of the `"ArrayBuffer"` property of the global object.
                      • +
                      • is the initial value of the *"ArrayBuffer"* property of the global object.
                      • creates and initializes a new ArrayBuffer object when called as a constructor.
                      • is not intended to be called as a function and will throw an exception when called in that manner.
                      • is designed to be subclassable. It may be used as the value of an `extends` clause of a class definition. Subclass constructors that intend to inherit the specified `ArrayBuffer` behaviour must include a `super` call to the `ArrayBuffer` constructor to create and initialize subclass instances with the internal state necessary to support the `ArrayBuffer.prototype` built-in methods.
                      • @@ -36586,7 +36586,7 @@

                        get ArrayBuffer [ @@species ]

                        1. Return the *this* value. -

                        The value of the `"name"` property of this function is *"get [Symbol.species]"*.

                        +

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

                        ArrayBuffer prototype methods normally use their `this` object's constructor to create a derived object. However, a subclass constructor may over-ride that default behaviour by redefining its @@species property.

                        @@ -36676,7 +36676,7 @@

                        Abstract Operations for SharedArrayBuffer Objects

                        AllocateSharedArrayBuffer ( _constructor_, _byteLength_ )

                        The abstract operation AllocateSharedArrayBuffer with arguments _constructor_ and _byteLength_ is used to create a SharedArrayBuffer object. It performs the following steps:

                        - 1. Let _obj_ be ? OrdinaryCreateFromConstructor(_constructor_, `"%SharedArrayBuffer.prototype%"`, « [[ArrayBufferData]], [[ArrayBufferByteLength]] »). + 1. Let _obj_ be ? OrdinaryCreateFromConstructor(_constructor_, *"%SharedArrayBuffer.prototype%"*, « [[ArrayBufferData]], [[ArrayBufferByteLength]] »). 1. Assert: _byteLength_ is a nonnegative integer. 1. Let _block_ be ? CreateSharedByteDataBlock(_byteLength_). 1. Set _obj_.[[ArrayBufferData]] to _block_. @@ -36704,7 +36704,7 @@

                        The SharedArrayBuffer Constructor

                        The SharedArrayBuffer constructor:

                        • is the intrinsic object %SharedArrayBuffer%.
                        • -
                        • is the initial value of the `"SharedArrayBuffer"` property of the global object.
                        • +
                        • is the initial value of the *"SharedArrayBuffer"* property of the global object.
                        • creates and initializes a new SharedArrayBuffer object when called as a constructor.
                        • is not intended to be called as a function and will throw an exception when called in that manner.
                        • is designed to be subclassable. It may be used as the value of an `extends` clause of a class definition. Subclass constructors that intend to inherit the specified `SharedArrayBuffer` behaviour must include a `super` call to the `SharedArrayBuffer` constructor to create and initialize subclass instances with the internal state necessary to support the `SharedArrayBuffer.prototype` built-in methods.
                        • @@ -36745,7 +36745,7 @@

                          get SharedArrayBuffer [ @@species ]

                          1. Return the *this* value. -

                          The value of the `"name"` property of this function is *"get [Symbol.species]"*.

                          +

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

                          @@ -36871,7 +36871,7 @@

                          The DataView Constructor

                          The DataView constructor:

                          • is the intrinsic object %DataView%.
                          • -
                          • is the initial value of the `"DataView"` property of the global object.
                          • +
                          • is the initial value of the *"DataView"* property of the global object.
                          • creates and initializes a new DataView object when called as a constructor.
                          • is not intended to be called as a function and will throw an exception when called in that manner.
                          • is designed to be subclassable. It may be used as the value of an `extends` clause of a class definition. Subclass constructors that intend to inherit the specified `DataView` behaviour must include a `super` call to the `DataView` constructor to create and initialize subclass instances with the internal state necessary to support the `DataView.prototype` built-in methods.
                          • @@ -36892,7 +36892,7 @@

                            DataView ( _buffer_ [ , _byteOffset_ [ , _byteLength_ ] ] )

                            1. Else, 1. Let _viewByteLength_ be ? ToIndex(_byteLength_). 1. If _offset_ + _viewByteLength_ > _bufferByteLength_, throw a *RangeError* exception. - 1. Let _O_ be ? OrdinaryCreateFromConstructor(NewTarget, `"%DataView.prototype%"`, « [[DataView]], [[ViewedArrayBuffer]], [[ByteLength]], [[ByteOffset]] »). + 1. Let _O_ be ? OrdinaryCreateFromConstructor(NewTarget, *"%DataView.prototype%"*, « [[DataView]], [[ViewedArrayBuffer]], [[ByteLength]], [[ByteOffset]] »). 1. If IsDetachedBuffer(_buffer_) is *true*, throw a *TypeError* exception. 1. Set _O_.[[ViewedArrayBuffer]] to _buffer_. 1. Set _O_.[[ByteLength]] to _viewByteLength_. @@ -37189,7 +37189,7 @@

                            The Atomics Object

                            The Atomics object:

                            • is the intrinsic object %Atomics%.
                            • -
                            • is the initial value of the `"Atomics"` property of the global object.
                            • +
                            • is the initial value of the *"Atomics"* property of the global object.
                            • is an ordinary object.
                            • has a [[Prototype]] internal slot whose value is %Object.prototype%.
                            • does not have a [[Construct]] internal method; it cannot be used as a constructor with the `new` operator.
                            • @@ -37212,7 +37212,7 @@

                              ValidateSharedIntegerTypedArray ( _typedArray_ [ , _waitable_ ] )

                              1. Let _typeName_ be _typedArray_.[[TypedArrayName]]. 1. Let _type_ be the Element Type value in for _typeName_. 1. If _waitable_ is *true*, then - 1. If _typeName_ is not `"Int32Array"` or `"BigInt64Array"`, throw a *TypeError* exception. + 1. If _typeName_ is not *"Int32Array"* or *"BigInt64Array"*, throw a *TypeError* exception. 1. Else, 1. If ! IsUnclampedIntegerElementType(_type_) is *false* and ! IsBigIntElementType(_type_) is *false*, throw a *TypeError* exception. 1. Assert: _typedArray_ has a [[ViewedArrayBuffer]] internal slot. @@ -37473,7 +37473,7 @@

                              Atomics.store ( _typedArray_, _index_, _value_ )

                              1. Let _buffer_ be ? ValidateSharedIntegerTypedArray(_typedArray_). 1. Let _i_ be ? ValidateAtomicAccess(_typedArray_, _index_). 1. Let _arrayTypeName_ be _typedArray_.[[TypedArrayName]]. - 1. If _arrayTypeName_ is `"BigUint64Array"` or `"BigInt64Array"`, let _v_ be ? ToBigInt(_value_). + 1. If _arrayTypeName_ is *"BigUint64Array"* or *"BigInt64Array"*, let _v_ be ? ToBigInt(_value_). 1. Otherwise, let _v_ be ? ToInteger(_value_). 1. Let _elementSize_ be the Element Size value specified in for _arrayTypeName_. 1. Let _elementType_ be the Element Type value in for _arrayTypeName_. @@ -37500,7 +37500,7 @@

                              Atomics.wait ( _typedArray_, _index_, _value_, _timeout_ )

                              1. Let _buffer_ be ? ValidateSharedIntegerTypedArray(_typedArray_, *true*). 1. Let _i_ be ? ValidateAtomicAccess(_typedArray_, _index_). 1. Let _arrayTypeName_ be _typedArray_.[[TypedArrayName]]. - 1. If _arrayTypeName_ is `"BigInt64Array"`, let _v_ be ? ToBigInt64(_value_). + 1. If _arrayTypeName_ is *"BigInt64Array"*, let _v_ be ? ToBigInt64(_value_). 1. Otherwise, let _v_ be ? ToInt32(_value_). 1. Let _q_ be ? ToNumber(_timeout_). 1. If _q_ is *NaN*, let _t_ be *+∞*; else let _t_ be max(_q_, 0). @@ -37515,7 +37515,7 @@

                              Atomics.wait ( _typedArray_, _index_, _value_, _timeout_ )

                              1. Let _w_ be ! AtomicLoad(_typedArray_, _i_). 1. If _v_ is not equal to _w_, then 1. Perform LeaveCriticalSection(_WL_). - 1. Return the String `"not-equal"`. + 1. Return the String *"not-equal"*. 1. Let _W_ be AgentSignifier(). 1. Perform AddWaiter(_WL_, _W_). 1. Let _notified_ be Suspend(_WL_, _W_, _t_). @@ -37524,8 +37524,8 @@

                              Atomics.wait ( _typedArray_, _index_, _value_, _timeout_ )

                              1. Else, 1. Perform RemoveWaiter(_WL_, _W_). 1. Perform LeaveCriticalSection(_WL_). - 1. If _notified_ is *true*, return the String `"ok"`. - 1. Return the String `"timed-out"`. + 1. If _notified_ is *true*, return the String *"ok"*. + 1. Return the String *"timed-out"*. @@ -37579,7 +37579,7 @@

                              The JSON Object

                              The JSON object:

                              • is the intrinsic object %JSON%.
                              • -
                              • is the initial value of the `"JSON"` property of the global object.
                              • +
                              • is the initial value of the *"JSON"* property of the global object.
                              • is an ordinary object.
                              • contains two functions, `parse` and `stringify`, that are used to parse and construct JSON texts.
                              • has a [[Prototype]] internal slot whose value is %Object.prototype%.
                              • @@ -37595,7 +37595,7 @@

                                JSON.parse ( _text_ [ , _reviver_ ] )

                                1. Let _JText_ be ? ToString(_text_). 1. Parse _JText_ interpreted as UTF-16 encoded Unicode points () as a JSON text as specified in ECMA-404. Throw a *SyntaxError* exception if _JText_ is not a valid JSON text as defined in that specification. - 1. Let _scriptText_ be the string-concatenation of `"("`, _JText_, and `");"`. + 1. Let _scriptText_ be the string-concatenation of *"("*, _JText_, and *");"*. 1. Let _completion_ be the result of parsing and evaluating _scriptText_ as if it was the source text of an ECMAScript |Script|. The extended PropertyDefinitionEvaluation semantics defined in must not be used during the evaluation. 1. Let _unfiltered_ be _completion_.[[Value]]. 1. Assert: _unfiltered_ is either a String, Number, Boolean, Null, or an Object that is defined by either an |ArrayLiteral| or an |ObjectLiteral|. @@ -37608,7 +37608,7 @@

                                JSON.parse ( _text_ [ , _reviver_ ] )

                                1. Return _unfiltered_.

                                This function is the %JSONParse% intrinsic object.

                                -

                                The `"length"` property of the `parse` function is 2.

                                +

                                The *"length"* property of the `parse` function is 2.

                                Valid JSON text is a subset of the ECMAScript |PrimaryExpression| syntax as modified by Step 4 above. Step 2 verifies that _JText_ conforms to that subset, and step 6 verifies that that parsing and evaluation returns a value of an appropriate type.

                                @@ -37695,7 +37695,7 @@

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

                                1. Return ? SerializeJSONProperty(the empty String, _wrapper_).

                                This function is the %JSONStringify% intrinsic object.

                                -

                                The `"length"` property of the `stringify` function is 3.

                                +

                                The *"length"* property of the `stringify` function is 3.

                                JSON structures are allowed to be nested to any depth, but they must be acyclic. If _value_ is or contains a cyclic structure, then the stringify function must throw a *TypeError* exception. This is an example of a value that cannot be stringified:

                                
                                @@ -37708,16 +37708,16 @@ 

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

                                Symbolic primitive values are rendered as follows:

                                • - The *null* value is rendered in JSON text as the String `"null"`. + The *null* value is rendered in JSON text as the String *"null"*.
                                • The *undefined* value is not rendered.
                                • - The *true* value is rendered in JSON text as the String `"true"`. + The *true* value is rendered in JSON text as the String *"true"*.
                                • - The *false* value is rendered in JSON text as the String `"false"`. + The *false* value is rendered in JSON text as the String *"false"*.
                                @@ -37725,10 +37725,10 @@

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

                                String values are wrapped in QUOTATION MARK (`"`) code units. The code units `"` and `\\` are escaped with `\\` prefixes. Control characters code units are replaced with escape sequences `\\u`HHHH, or with the shorter forms, `\\b` (BACKSPACE), `\\f` (FORM FEED), `\\n` (LINE FEED), `\\r` (CARRIAGE RETURN), `\\t` (CHARACTER TABULATION).

                                -

                                Finite numbers are stringified as if by calling ToString(_number_). *NaN* and *Infinity* regardless of sign are represented as the String `"null"`.

                                +

                                Finite numbers are stringified as if by calling ToString(_number_). *NaN* and *Infinity* regardless of sign are represented as the String *"null"*.

                                -

                                Values that do not have a JSON representation (such as *undefined* and functions) do not produce a String. Instead they produce the *undefined* value. In arrays these values are represented as the String `"null"`. In objects an unrepresentable value causes the property to be excluded from stringification.

                                +

                                Values that do not have a JSON representation (such as *undefined* and functions) do not produce a String. Instead they produce the *undefined* value. In arrays these values are represented as the String *"null"*. In objects an unrepresentable value causes the property to be excluded from stringification.

                                An object is rendered as U+007B (LEFT CURLY BRACKET) followed by zero or more properties, separated with a U+002C (COMMA), closed with a U+007D (RIGHT CURLY BRACKET). A property is a quoted String representing the key or property name, a U+003A (COLON), and then the stringified property value. An array is rendered as an opening U+005B (LEFT SQUARE BRACKET followed by zero or more values, separated with a U+002C (COMMA), closed with a U+005D (RIGHT SQUARE BRACKET).

                                @@ -37740,7 +37740,7 @@

                                Runtime Semantics: SerializeJSONProperty ( _key_, _holder_ )

                                1. Let _value_ be ? Get(_holder_, _key_). 1. If Type(_value_) is Object, then - 1. Let _toJSON_ be ? Get(_value_, `"toJSON"`). + 1. Let _toJSON_ be ? Get(_value_, *"toJSON"*). 1. If IsCallable(_toJSON_) is *true*, then 1. Set _value_ to ? Call(_toJSON_, _value_, « _key_ »). 1. If _ReplacerFunction_ is not *undefined*, then @@ -37754,13 +37754,13 @@

                                Runtime Semantics: SerializeJSONProperty ( _key_, _holder_ )

                                1. Set _value_ to _value_.[[BooleanData]]. 1. Else if _value_ has a [[BigIntData]] internal slot, then 1. Set _value_ to _value_.[[BigIntData]]. - 1. If _value_ is *null*, return `"null"`. - 1. If _value_ is *true*, return `"true"`. - 1. If _value_ is *false*, return `"false"`. + 1. If _value_ is *null*, return *"null"*. + 1. If _value_ is *true*, return *"true"*. + 1. If _value_ is *false*, return *"false"*. 1. If Type(_value_) is String, return QuoteJSONString(_value_). 1. If Type(_value_) is Number, then 1. If _value_ is finite, return ! ToString(_value_). - 1. Return `"null"`. + 1. Return *"null"*. 1. If Type(_value_) is BigInt, throw a *TypeError* exception. 1. If Type(_value_) is Object and IsCallable(_value_) is *false*, then 1. Let _isArray_ be ? IsArray(_value_). @@ -37892,7 +37892,7 @@

                                Runtime Semantics: UnicodeEscape ( _C_ )

                                1. Assert: _n_ ≤ 0xFFFF. 1. Return the string-concatenation of: * the code unit 0x005C (REVERSE SOLIDUS) - * `"u"` + * *"u"* * the String representation of _n_, formatted as a four-digit lowercase hexadecimal number, padded to the left with zeroes if necessary
                                @@ -37914,21 +37914,21 @@

                                Runtime Semantics: SerializeJSONObject ( _value_ )

                                1. Let _strP_ be ? SerializeJSONProperty(_P_, _value_). 1. If _strP_ is not *undefined*, then 1. Let _member_ be QuoteJSONString(_P_). - 1. Set _member_ to the string-concatenation of _member_ and `":"`. + 1. Set _member_ to the string-concatenation of _member_ and *":"*. 1. If _gap_ is not the empty String, then 1. Set _member_ to the string-concatenation of _member_ and the code unit 0x0020 (SPACE). 1. Set _member_ to the string-concatenation of _member_ and _strP_. 1. Append _member_ to _partial_. 1. If _partial_ is empty, then - 1. Let _final_ be `"{}"`. + 1. Let _final_ be *"{}"*. 1. Else, 1. If _gap_ is the empty String, then 1. Let _properties_ be the String value formed by concatenating all the element Strings of _partial_ with each adjacent pair of Strings separated with the code unit 0x002C (COMMA). A comma is not inserted either before the first String or after the last String. - 1. Let _final_ be the string-concatenation of `"{"`, _properties_, and `"}"`. + 1. Let _final_ be the string-concatenation of *"{"*, _properties_, and *"}"*. 1. Else, 1. Let _separator_ be the string-concatenation of the code unit 0x002C (COMMA), the code unit 0x000A (LINE FEED), and _indent_. 1. Let _properties_ be the String value formed by concatenating all the element Strings of _partial_ with each adjacent pair of Strings separated with _separator_. The _separator_ String is not inserted either before the first String or after the last String. - 1. Let _final_ be the string-concatenation of `"{"`, the code unit 0x000A (LINE FEED), _indent_, _properties_, the code unit 0x000A (LINE FEED), _stepback_, and `"}"`. + 1. Let _final_ be the string-concatenation of *"{"*, the code unit 0x000A (LINE FEED), _indent_, _properties_, the code unit 0x000A (LINE FEED), _stepback_, and *"}"*. 1. Remove the last element of _stack_. 1. Set _indent_ to _stepback_. 1. Return _final_. @@ -37949,20 +37949,20 @@

                                Runtime Semantics: SerializeJSONArray ( _value_ )

                                1. Repeat, while _index_ < _len_ 1. Let _strP_ be ? SerializeJSONProperty(! ToString(_index_), _value_). 1. If _strP_ is *undefined*, then - 1. Append `"null"` to _partial_. + 1. Append *"null"* to _partial_. 1. Else, 1. Append _strP_ to _partial_. 1. Set _index_ to _index_ + 1. 1. If _partial_ is empty, then - 1. Let _final_ be `"[]"`. + 1. Let _final_ be *"[]"*. 1. Else, 1. If _gap_ is the empty String, then 1. Let _properties_ be the String value formed by concatenating all the element Strings of _partial_ with each adjacent pair of Strings separated with the code unit 0x002C (COMMA). A comma is not inserted either before the first String or after the last String. - 1. Let _final_ be the string-concatenation of `"["`, _properties_, and `"]"`. + 1. Let _final_ be the string-concatenation of *"["*, _properties_, and *"]"*. 1. Else, 1. Let _separator_ be the string-concatenation of the code unit 0x002C (COMMA), the code unit 0x000A (LINE FEED), and _indent_. 1. Let _properties_ be the String value formed by concatenating all the element Strings of _partial_ with each adjacent pair of Strings separated with _separator_. The _separator_ String is not inserted either before the first String or after the last String. - 1. Let _final_ be the string-concatenation of `"["`, the code unit 0x000A (LINE FEED), _indent_, _properties_, the code unit 0x000A (LINE FEED), _stepback_, and `"]"`. + 1. Let _final_ be the string-concatenation of *"["*, the code unit 0x000A (LINE FEED), _indent_, _properties_, the code unit 0x000A (LINE FEED), _stepback_, and *"]"*. 1. Remove the last element of _stack_. 1. Set _indent_ to _stepback_. 1. Return _final_. @@ -38043,13 +38043,13 @@

                                The Iterator Interface

                                - `"next"` + *"next"* A function that returns an IteratorResult object. - The returned object must conform to the IteratorResult interface. If a previous call to the `next` method of an Iterator has returned an IteratorResult object whose `"done"` property is *true*, then all subsequent calls to the `next` method of that object should also return an IteratorResult object whose `"done"` property is *true*. However, this requirement is not enforced. + The returned object must conform to the IteratorResult interface. If a previous call to the `next` method of an Iterator has returned an IteratorResult object whose *"done"* property is *true*, then all subsequent calls to the `next` method of that object should also return an IteratorResult object whose *"done"* property is *true*. However, this requirement is not enforced. @@ -38074,24 +38074,24 @@

                                The Iterator Interface

                                - `"return"` + *"return"* A function that returns an IteratorResult object. - The returned object must conform to the IteratorResult interface. Invoking this method notifies the Iterator object that the caller does not intend to make any more `next` method calls to the Iterator. The returned IteratorResult object will typically have a `"done"` property whose value is *true*, and a `"value"` property with the value passed as the argument of the `return` method. However, this requirement is not enforced. + The returned object must conform to the IteratorResult interface. Invoking this method notifies the Iterator object that the caller does not intend to make any more `next` method calls to the Iterator. The returned IteratorResult object will typically have a *"done"* property whose value is *true*, and a *"value"* property with the value passed as the argument of the `return` method. However, this requirement is not enforced. - `"throw"` + *"throw"* A function that returns an IteratorResult object. - The returned object must conform to the IteratorResult interface. Invoking this method notifies the Iterator object that the caller has detected an error condition. The argument may be used to identify the error condition and typically will be an exception object. A typical response is to `throw` the value passed as the argument. If the method does not `throw`, the returned IteratorResult object will typically have a `"done"` property whose value is *true*. + The returned object must conform to the IteratorResult interface. Invoking this method notifies the Iterator object that the caller has detected an error condition. The argument may be used to identify the error condition and typically will be an exception object. A typical response is to `throw` the value passed as the argument. If the method does not `throw`, the returned IteratorResult object will typically have a *"done"* property whose value is *true*. @@ -38135,12 +38135,12 @@

                                The AsyncIterator Interface

                                Requirements - `"next"` + *"next"* A function that returns a promise for an IteratorResult object. -

                                The returned promise, when fulfilled, must fulfill with an object which conforms to the IteratorResult interface. If a previous call to the `next` method of an AsyncIterator has returned a promise for an IteratorResult object whose `"done"` property is *true*, then all subsequent calls to the `next` method of that object should also return a promise for an IteratorResult object whose `"done"` property is *true*. However, this requirement is not enforced.

                                +

                                The returned promise, when fulfilled, must fulfill with an object which conforms to the IteratorResult interface. If a previous call to the `next` method of an AsyncIterator has returned a promise for an IteratorResult object whose *"done"* property is *true*, then all subsequent calls to the `next` method of that object should also return a promise for an IteratorResult object whose *"done"* property is *true*. However, this requirement is not enforced.

                                -

                                Additionally, the IteratorResult object that serves as a fulfillment value should have a `"value"` property whose value is not a promise (or "thenable"). However, this requirement is also not enforced.

                                +

                                Additionally, the IteratorResult object that serves as a fulfillment value should have a *"value"* property whose value is not a promise (or "thenable"). However, this requirement is also not enforced.

                                @@ -38158,21 +38158,21 @@

                                The AsyncIterator Interface

                                Requirements - `"return"` + *"return"* A function that returns a promise for an IteratorResult object. -

                                The returned promise, when fulfilled, must fulfill with an object which conforms to the IteratorResult interface. Invoking this method notifies the AsyncIterator object that the caller does not intend to make any more `next` method calls to the AsyncIterator. The returned promise will fulfill with an IteratorResult object which will typically have a `"done"` property whose value is *true*, and a `"value"` property with the value passed as the argument of the `return` method. However, this requirement is not enforced.

                                +

                                The returned promise, when fulfilled, must fulfill with an object which conforms to the IteratorResult interface. Invoking this method notifies the AsyncIterator object that the caller does not intend to make any more `next` method calls to the AsyncIterator. The returned promise will fulfill with an IteratorResult object which will typically have a *"done"* property whose value is *true*, and a *"value"* property with the value passed as the argument of the `return` method. However, this requirement is not enforced.

                                -

                                Additionally, the IteratorResult object that serves as a fulfillment value should have a `"value"` property whose value is not a promise (or "thenable"). If the argument value is used in the typical manner, then if it is a rejected promise, a promise rejected with the same reason should be returned; if it is a fulfilled promise, then its fulfillment value should be used as the `"value"` property of the returned promise's IteratorResult object fulfillment value. However, these requirements are also not enforced.

                                +

                                Additionally, the IteratorResult object that serves as a fulfillment value should have a *"value"* property whose value is not a promise (or "thenable"). If the argument value is used in the typical manner, then if it is a rejected promise, a promise rejected with the same reason should be returned; if it is a fulfilled promise, then its fulfillment value should be used as the *"value"* property of the returned promise's IteratorResult object fulfillment value. However, these requirements are also not enforced.

                                - `"throw"` + *"throw"* A function that returns a promise for an IteratorResult object.

                                The returned promise, when fulfilled, must fulfill with an object which conforms to the IteratorResult interface. Invoking this method notifies the AsyncIterator object that the caller has detected an error condition. The argument may be used to identify the error condition and typically will be an exception object. A typical response is to return a rejected promise which rejects with the value passed as the argument.

                                -

                                If the returned promise is fulfilled, the IteratorResult fulfillment value will typically have a `"done"` property whose value is *true*. Additionally, it should have a `"value"` property whose value is not a promise (or "thenable"), but this requirement is not enforced.

                                +

                                If the returned promise is fulfilled, the IteratorResult fulfillment value will typically have a *"done"* property whose value is *true*. Additionally, it should have a *"value"* property whose value is not a promise (or "thenable"), but this requirement is not enforced.

                                @@ -38202,24 +38202,24 @@

                                The IteratorResult Interface

                                - `"done"` + *"done"* Either *true* or *false*. - This is the result status of an iterator `next` method call. If the end of the iterator was reached `"done"` is *true*. If the end was not reached `"done"` is *false* and a value is available. If a `"done"` property (either own or inherited) does not exist, it is consider to have the value *false*. + This is the result status of an iterator `next` method call. If the end of the iterator was reached *"done"* is *true*. If the end was not reached *"done"* is *false* and a value is available. If a *"done"* property (either own or inherited) does not exist, it is consider to have the value *false*. - `"value"` + *"value"* Any ECMAScript language value. - If done is *false*, this is the current iteration element value. If done is *true*, this is the return value of the iterator, if it supplied one. If the iterator does not have a return value, `"value"` is *undefined*. In that case, the `"value"` property may be absent from the conforming object if it does not inherit an explicit `"value"` property. + If done is *false*, this is the current iteration element value. If done is *true*, this is the return value of the iterator, if it supplied one. If the iterator does not have a return value, *"value"* is *undefined*. In that case, the *"value"* property may be absent from the conforming object if it does not inherit an explicit *"value"* property. @@ -38247,7 +38247,7 @@

                                %IteratorPrototype% [ @@iterator ] ( )

                                1. Return the *this* value. -

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

                                +

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

                                @@ -38268,7 +38268,7 @@

                                %AsyncIteratorPrototype% [ @@asyncIterator ] ( )

                                1. Return the *this* value. -

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

                                +

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

                                @@ -38282,7 +38282,7 @@

                                CreateAsyncFromSyncIterator ( _syncIteratorRecord_ )

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

                                %AsyncFromSyncIteratorPrototype%.return ( _value_ )

                                1. Assert: Type(_O_) is Object and _O_ has a [[SyncIteratorRecord]] internal slot. 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). 1. Let _syncIterator_ be _O_.[[SyncIteratorRecord]].[[Iterator]]. - 1. Let _return_ be GetMethod(_syncIterator_, `"return"`). + 1. Let _return_ be GetMethod(_syncIterator_, *"return"*). 1. IfAbruptRejectPromise(_return_, _promiseCapability_). 1. If _return_ is *undefined*, then 1. Let _iterResult_ be ! CreateIterResultObject(_value_, *true*). @@ -38342,7 +38342,7 @@

                                %AsyncFromSyncIteratorPrototype%.throw ( _value_ )

                                1. Assert: Type(_O_) is Object and _O_ has a [[SyncIteratorRecord]] internal slot. 1. Let _promiseCapability_ be ! NewPromiseCapability(%Promise%). 1. Let _syncIterator_ be _O_.[[SyncIteratorRecord]].[[Iterator]]. - 1. Let _throw_ be GetMethod(_syncIterator_, `"throw"`). + 1. Let _throw_ be GetMethod(_syncIterator_, *"throw"*). 1. IfAbruptRejectPromise(_throw_, _promiseCapability_). 1. If _throw_ is *undefined*, then 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « _value_ »). @@ -38359,7 +38359,7 @@

                                %AsyncFromSyncIteratorPrototype%.throw ( _value_ )

                                Async-from-Sync Iterator Value Unwrap Functions

                                -

                                An async-from-sync iterator value unwrap function is an anonymous built-in function that is used by AsyncFromSyncIteratorContinuation when processing the `"value"` property of an IteratorResult object, in order to wait for its value if it is a promise and re-package the result in a new "unwrapped" IteratorResult object. Each async-from-sync iterator value unwrap function has a [[Done]] internal slot.

                                +

                                An async-from-sync iterator value unwrap function is an anonymous built-in function that is used by AsyncFromSyncIteratorContinuation when processing the *"value"* property of an IteratorResult object, in order to wait for its value if it is a promise and re-package the result in a new "unwrapped" IteratorResult object. Each async-from-sync iterator value unwrap function has a [[Done]] internal slot.

                                When an async-from-sync iterator value unwrap function is called with argument _value_, the following steps are taken:

                                @@ -38456,7 +38456,7 @@

                                Properties of the GeneratorFunction Constructor

                                • is a standard built-in function object that inherits from the `Function` constructor.
                                • has a [[Prototype]] internal slot whose value is %Function%.
                                • -
                                • has a `"name"` property whose value is *"GeneratorFunction"*.
                                • +
                                • has a *"name"* property whose value is *"GeneratorFunction"*.
                                • has the following properties:
                                @@ -38478,7 +38478,7 @@

                                Properties of the GeneratorFunction Prototype Object

                                • is an ordinary object.
                                • is not a function object and does not have an [[ECMAScriptCode]] internal slot or any other of the internal slots listed in or .
                                • -
                                • is the value of the `"prototype"` property of %GeneratorFunction%.
                                • +
                                • is the value of the *"prototype"* property of %GeneratorFunction%.
                                • is the intrinsic object %Generator% (see Figure 2).
                                • has a [[Prototype]] internal slot whose value is %Function.prototype%.
                                @@ -38509,20 +38509,20 @@

                                GeneratorFunction Instances

                                length

                                -

                                The specification for the `"length"` property of Function instances given in also applies to GeneratorFunction instances.

                                +

                                The specification for the *"length"* property of Function instances given in also applies to GeneratorFunction instances.

                                name

                                -

                                The specification for the `"name"` property of Function instances given in also applies to GeneratorFunction instances.

                                +

                                The specification for the *"name"* property of Function instances given in also applies to GeneratorFunction instances.

                                prototype

                                -

                                Whenever a GeneratorFunction instance is created another ordinary object is also created and is the initial value of the generator function's `"prototype"` property. The value of the prototype property is used to initialize the [[Prototype]] internal slot of a newly created Generator object when the generator function object is invoked using [[Call]].

                                +

                                Whenever a GeneratorFunction instance is created another ordinary object is also created and is the initial value of the generator function's *"prototype"* property. The value of the prototype property is used to initialize the [[Prototype]] internal slot of a newly created Generator object when the generator function object is invoked using [[Call]].

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

                                -

                                Unlike Function instances, the object that is the value of the a GeneratorFunction's `"prototype"` property does not have a `"constructor"` property whose value is the GeneratorFunction instance.

                                +

                                Unlike Function instances, the object that is the value of the a GeneratorFunction's *"prototype"* property does not have a *"constructor"* property whose value is the GeneratorFunction instance.

                                @@ -38562,7 +38562,7 @@

                                Properties of the AsyncGeneratorFunction Constructor

                                • is a standard built-in function object that inherits from the `Function` constructor.
                                • has a [[Prototype]] internal slot whose value is %Function%.
                                • -
                                • has a `"name"` property whose value is *"AsyncGeneratorFunction"*.
                                • +
                                • has a *"name"* property whose value is *"AsyncGeneratorFunction"*.
                                • has the following properties:
                                @@ -38584,7 +38584,7 @@

                                Properties of the AsyncGeneratorFunction Prototype Object

                                • is an ordinary object.
                                • is not a function object and does not have an [[ECMAScriptCode]] internal slot or any other of the internal slots listed in or .
                                • -
                                • is the value of the `"prototype"` property of %AsyncGeneratorFunction%.
                                • +
                                • is the value of the *"prototype"* property of %AsyncGeneratorFunction%.
                                • is %AsyncGenerator%.
                                • has a [[Prototype]] internal slot whose value is %Function.prototype%.
                                @@ -38615,21 +38615,21 @@

                                AsyncGeneratorFunction Instances

                                length

                                -

                                The value of the `"length"` property is an integer that indicates the typical number of arguments expected by the AsyncGeneratorFunction. However, the language permits the function to be invoked with some other number of arguments. The behaviour of an AsyncGeneratorFunction when invoked on a number of arguments other than the number specified by its `"length"` property depends on the function.

                                +

                                The value of the *"length"* property is an integer that indicates the typical number of arguments expected by the AsyncGeneratorFunction. However, the language permits the function to be invoked with some other number of arguments. The behaviour of an AsyncGeneratorFunction when invoked on a number of arguments other than the number specified by its *"length"* property depends on the function.

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

                                name

                                -

                                The specification for the `"name"` property of Function instances given in also applies to AsyncGeneratorFunction instances.

                                +

                                The specification for the *"name"* property of Function instances given in also applies to AsyncGeneratorFunction instances.

                                prototype

                                -

                                Whenever an AsyncGeneratorFunction instance is created another ordinary object is also created and is the initial value of the async generator function's `"prototype"` property. The value of the prototype property is used to initialize the [[Prototype]] internal slot of a newly created AsyncGenerator object when the generator function object is invoked using [[Call]].

                                +

                                Whenever an AsyncGeneratorFunction instance is created another ordinary object is also created and is the initial value of the async generator function's *"prototype"* property. The value of the prototype property is used to initialize the [[Prototype]] internal slot of a newly created AsyncGenerator object when the generator function object is invoked using [[Call]].

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

                                -

                                Unlike function instances, the object that is the value of the an AsyncGeneratorFunction's `"prototype"` property does not have a `"constructor"` property whose value is the AsyncGeneratorFunction instance.

                                +

                                Unlike function instances, the object that is the value of the an AsyncGeneratorFunction's *"prototype"* property does not have a *"constructor"* property whose value is the AsyncGeneratorFunction instance.

                                @@ -38638,14 +38638,14 @@

                                prototype

                                Generator Objects

                                A Generator object is an instance of a generator function and conforms to both the Iterator and Iterable interfaces.

                                -

                                Generator instances directly inherit properties from the object that is the value of the `"prototype"` property of the Generator function that created the instance. Generator instances indirectly inherit properties from the Generator Prototype intrinsic, %Generator.prototype%.

                                +

                                Generator instances directly inherit properties from the object that is the value of the *"prototype"* property of the Generator function that created the instance. Generator instances indirectly inherit properties from the Generator Prototype intrinsic, %Generator.prototype%.

                                Properties of the Generator Prototype Object

                                The Generator prototype object:

                                • is the intrinsic object %GeneratorPrototype%.
                                • -
                                • is the initial value of the `"prototype"` property of %Generator% (the `GeneratorFunction.prototype`).
                                • +
                                • is the initial value of the *"prototype"* property of %Generator% (the `GeneratorFunction.prototype`).
                                • is an ordinary object.
                                • is not a Generator instance and does not have a [[GeneratorState]] internal slot.
                                • has a [[Prototype]] internal slot whose value is %IteratorPrototype%.
                                • @@ -38848,14 +38848,14 @@

                                  GeneratorYield ( _iterNextObj_ )

                                  AsyncGenerator Objects

                                  An AsyncGenerator object is an instance of an async generator function and conforms to both the AsyncIterator and AsyncIterable interfaces.

                                  -

                                  AsyncGenerator instances directly inherit properties from the object that is the value of the `"prototype"` property of the AsyncGenerator function that created the instance. AsyncGenerator instances indirectly inherit properties from the AsyncGenerator Prototype intrinsic, %AsyncGenerator.prototype%.

                                  +

                                  AsyncGenerator instances directly inherit properties from the object that is the value of the *"prototype"* property of the AsyncGenerator function that created the instance. AsyncGenerator instances indirectly inherit properties from the AsyncGenerator Prototype intrinsic, %AsyncGenerator.prototype%.

                                  Properties of the AsyncGenerator Prototype Object

                                  The AsyncGenerator prototype object:

                                  • is the intrinsic object %AsyncGeneratorPrototype%.
                                  • -
                                  • is the initial value of the `"prototype"` property of %AsyncGenerator% (the `AsyncGeneratorFunction.prototype`).
                                  • +
                                  • is the initial value of the *"prototype"* property of %AsyncGenerator% (the `AsyncGeneratorFunction.prototype`).
                                  • is an ordinary object.
                                  • is not an AsyncGenerator instance and does not have an [[AsyncGeneratorState]] internal slot.
                                  • has a [[Prototype]] internal slot whose value is %AsyncIteratorPrototype%.
                                  • @@ -39071,7 +39071,7 @@

                                    AsyncGeneratorResumeNext Return Processor Fulfilled Functions

                                    1. Return ! AsyncGeneratorResolve(_F_.[[Generator]], _value_, *true*). -

                                    The `"length"` property of an AsyncGeneratorResumeNext return processor fulfilled function is 1.

                                    +

                                    The *"length"* property of an AsyncGeneratorResumeNext return processor fulfilled function is 1.

                                    @@ -39087,7 +39087,7 @@

                                    AsyncGeneratorResumeNext Return Processor Rejected Functions

                                    1. Return ! AsyncGeneratorReject(_F_.[[Generator]], _reason_). -

                                    The `"length"` property of an AsyncGeneratorResumeNext return processor rejected function is 1.

                                    +

                                    The *"length"* property of an AsyncGeneratorResumeNext return processor rejected function is 1.

                                    @@ -39312,7 +39312,7 @@

                                    Promise Reject Functions

                                    1. Set _alreadyResolved_.[[Value]] to *true*. 1. Return RejectPromise(_promise_, _reason_). -

                                    The `"length"` property of a promise reject function is 1.

                                    +

                                    The *"length"* property of a promise reject function is 1.

                                    @@ -39331,16 +39331,16 @@

                                    Promise Resolve Functions

                                    1. Return RejectPromise(_promise_, _selfResolutionError_). 1. If Type(_resolution_) is not Object, then 1. Return FulfillPromise(_promise_, _resolution_). - 1. Let _then_ be Get(_resolution_, `"then"`). + 1. Let _then_ be Get(_resolution_, *"then"*). 1. If _then_ is an abrupt completion, then 1. Return RejectPromise(_promise_, _then_.[[Value]]). 1. Let _thenAction_ be _then_.[[Value]]. 1. If IsCallable(_thenAction_) is *false*, then 1. Return FulfillPromise(_promise_, _resolution_). - 1. Perform EnqueueJob(`"PromiseJobs"`, PromiseResolveThenableJob, « _promise_, _resolution_, _thenAction_ »). + 1. Perform EnqueueJob(*"PromiseJobs"*, PromiseResolveThenableJob, « _promise_, _resolution_, _thenAction_ »). 1. Return *undefined*. -

                                    The `"length"` property of a promise resolve function is 1.

                                    +

                                    The *"length"* property of a promise resolve function is 1.

                                    @@ -39392,7 +39392,7 @@

                                    GetCapabilitiesExecutor Functions

                                    1. Set _promiseCapability_.[[Reject]] to _reject_. 1. Return *undefined*. -

                                    The `"length"` property of a GetCapabilitiesExecutor function is 2.

                                    +

                                    The *"length"* property of a GetCapabilitiesExecutor function is 2.

                                    @@ -39416,7 +39416,7 @@

                                    RejectPromise ( _promise_, _reason_ )

                                    1. Set _promise_.[[PromiseFulfillReactions]] to *undefined*. 1. Set _promise_.[[PromiseRejectReactions]] to *undefined*. 1. Set _promise_.[[PromiseState]] to ~rejected~. - 1. If _promise_.[[PromiseIsHandled]] is *false*, perform HostPromiseRejectionTracker(_promise_, `"reject"`). + 1. If _promise_.[[PromiseIsHandled]] is *false*, perform HostPromiseRejectionTracker(_promise_, *"reject"*). 1. Return TriggerPromiseReactions(_reactions_, _reason_). @@ -39426,7 +39426,7 @@

                                    TriggerPromiseReactions ( _reactions_, _argument_ )

                                    The abstract operation TriggerPromiseReactions takes a collection of PromiseReactionRecords and enqueues a new Job for each record. Each such Job processes the [[Type]] and [[Handler]] of the PromiseReactionRecord, and if the [[Handler]] is a function, calls it passing the given argument. If the [[Handler]] is *undefined*, the behaviour is determined by the [[Type]].

                                    1. For each _reaction_ in _reactions_, in original insertion order, do - 1. Perform EnqueueJob(`"PromiseJobs"`, PromiseReactionJob, « _reaction_, _argument_ »). + 1. Perform EnqueueJob(*"PromiseJobs"*, PromiseReactionJob, « _reaction_, _argument_ »). 1. Return *undefined*. @@ -39442,15 +39442,15 @@

                                    HostPromiseRejectionTracker ( _promise_, _operation_ )

                                    HostPromiseRejectionTracker is called in two scenarios:

                                      -
                                    • When a promise is rejected without any handlers, it is called with its _operation_ argument set to `"reject"`.
                                    • -
                                    • When a handler is added to a rejected promise for the first time, it is called with its _operation_ argument set to `"handle"`.
                                    • +
                                    • When a promise is rejected without any handlers, it is called with its _operation_ argument set to *"reject"*.
                                    • +
                                    • When a handler is added to a rejected promise for the first time, it is called with its _operation_ argument set to *"handle"*.

                                    A typical implementation of HostPromiseRejectionTracker might try to notify developers of unhandled rejections, while also being careful to notify them if such previous notifications are later invalidated by new handlers being attached.

                                    -

                                    If _operation_ is `"handle"`, an implementation should not hold a reference to _promise_ in a way that would interfere with garbage collection. An implementation may hold a reference to _promise_ if _operation_ is `"reject"`, since it is expected that rejections will be rare and not on hot code paths.

                                    +

                                    If _operation_ is *"handle"*, an implementation should not hold a reference to _promise_ in a way that would interfere with garbage collection. An implementation may hold a reference to _promise_ if _operation_ is *"reject"*, since it is expected that rejections will be rare and not on hot code paths.

                                    @@ -39505,7 +39505,7 @@

                                    The Promise Constructor

                                    The Promise constructor:

                                    • is the intrinsic object %Promise%.
                                    • -
                                    • is the initial value of the `"Promise"` property of the global object.
                                    • +
                                    • is the initial value of the *"Promise"* property of the global object.
                                    • creates and initializes a new Promise object when called as a constructor.
                                    • is not intended to be called as a function and will throw an exception when called in that manner.
                                    • is designed to be subclassable. It may be used as the value in an `extends` clause of a class definition. Subclass constructors that intend to inherit the specified `Promise` behaviour must include a `super` call to the `Promise` constructor to create and initialize the subclass instance with the internal state necessary to support the `Promise` and `Promise.prototype` built-in methods.
                                    • @@ -39517,7 +39517,7 @@

                                      Promise ( _executor_ )

                                      1. If NewTarget is *undefined*, throw a *TypeError* exception. 1. If IsCallable(_executor_) is *false*, throw a *TypeError* exception. - 1. Let _promise_ be ? OrdinaryCreateFromConstructor(NewTarget, `"%Promise.prototype%"`, « [[PromiseState]], [[PromiseResult]], [[PromiseFulfillReactions]], [[PromiseRejectReactions]], [[PromiseIsHandled]] »). + 1. Let _promise_ be ? OrdinaryCreateFromConstructor(NewTarget, *"%Promise.prototype%"*, « [[PromiseState]], [[PromiseResult]], [[PromiseFulfillReactions]], [[PromiseRejectReactions]], [[PromiseIsHandled]] »). 1. Set _promise_.[[PromiseState]] to ~pending~. 1. Set _promise_.[[PromiseFulfillReactions]] to a new empty List. 1. Set _promise_.[[PromiseRejectReactions]] to a new empty List. @@ -39572,7 +39572,7 @@

                                      Runtime Semantics: PerformPromiseAll ( _iteratorRecord_, _constructor_, _res 1. Assert: _resultCapability_ is a PromiseCapability Record. 1. Let _values_ be a new empty List. 1. Let _remainingElementsCount_ be the Record { [[Value]]: 1 }. - 1. Let _promiseResolve_ be ? Get(_constructor_, `"resolve"`). + 1. Let _promiseResolve_ be ? Get(_constructor_, *"resolve"*). 1. If ! IsCallable(_promiseResolve_) is *false*, throw a *TypeError* exception. 1. Let _index_ be 0. 1. Repeat, @@ -39599,7 +39599,7 @@

                                      Runtime Semantics: PerformPromiseAll ( _iteratorRecord_, _constructor_, _res 1. Set _resolveElement_.[[Capability]] to _resultCapability_. 1. Set _resolveElement_.[[RemainingElements]] to _remainingElementsCount_. 1. Set _remainingElementsCount_.[[Value]] to _remainingElementsCount_.[[Value]] + 1. - 1. Perform ? Invoke(_nextPromise_, `"then"`, « _resolveElement_, _resultCapability_.[[Reject]] »). + 1. Perform ? Invoke(_nextPromise_, *"then"*, « _resolveElement_, _resultCapability_.[[Reject]] »). 1. Set _index_ to _index_ + 1. @@ -39624,7 +39624,7 @@

                                      `Promise.all` Resolve Element Functions

                                      1. Return ? Call(_promiseCapability_.[[Resolve]], *undefined*, « _valuesArray_ »). 1. Return *undefined*.
                                      -

                                      The `"length"` property of a `Promise.all` resolve element function is 1.

                                      +

                                      The *"length"* property of a `Promise.all` resolve element function is 1.

                                      @@ -39655,7 +39655,7 @@

                                      Runtime Semantics: PerformPromiseAllSettled ( _iteratorRecord_, _constructor 1. Let _values_ be a new empty List. 1. Let _remainingElementsCount_ be the Record { [[Value]]: 1 }. 1. Let _index_ be 0. - 1. Let _promiseResolve_ be ? Get(_constructor_, `"resolve"`). + 1. Let _promiseResolve_ be ? Get(_constructor_, *"resolve"*). 1. If IsCallable(_promiseResolve_) is *false*, throw a *TypeError* exception. 1. Repeat, 1. Let _next_ be IteratorStep(_iteratorRecord_). @@ -39689,7 +39689,7 @@

                                      Runtime Semantics: PerformPromiseAllSettled ( _iteratorRecord_, _constructor 1. Set _rejectElement_.[[Capability]] to _resultCapability_. 1. Set _rejectElement_.[[RemainingElements]] to _remainingElementsCount_. 1. Set _remainingElementsCount_.[[Value]] to _remainingElementsCount_.[[Value]] + 1. - 1. Perform ? Invoke(_nextPromise_, `"then"`, « _resolveElement_, _rejectElement_ »). + 1. Perform ? Invoke(_nextPromise_, *"then"*, « _resolveElement_, _rejectElement_ »). 1. Set _index_ to _index_ + 1. @@ -39708,8 +39708,8 @@

                                      `Promise.allSettled` Resolve Element Functions

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

                                      `Promise.allSettled` Resolve Element Functions

                                      1. Return ? Call(_promiseCapability_.[[Resolve]], *undefined*, « _valuesArray_ »). 1. Return *undefined*. -

                                      The `"length"` property of a `Promise.allSettled` resolve element function is 1.

                                      +

                                      The *"length"* property of a `Promise.allSettled` resolve element function is 1.

                                      @@ -39734,8 +39734,8 @@

                                      `Promise.allSettled` Reject Element Functions

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

                                      `Promise.allSettled` Reject Element Functions

                                      1. Return ? Call(_promiseCapability_.[[Resolve]], *undefined*, « _valuesArray_ »). 1. Return *undefined*. -

                                      The `"length"` property of a `Promise.allSettled` reject element function is 1.

                                      +

                                      The *"length"* property of a `Promise.allSettled` reject element function is 1.

                                      @@ -39780,7 +39780,7 @@

                                      Runtime Semantics: PerformPromiseRace ( _iteratorRecord_, _constructor_, _re 1. Assert: IsConstructor(_constructor_) is *true*. 1. Assert: _resultCapability_ is a PromiseCapability Record. - 1. Let _promiseResolve_ be ? Get(_constructor_, `"resolve"`). + 1. Let _promiseResolve_ be ? Get(_constructor_, *"resolve"*). 1. If ! IsCallable(_promiseResolve_) is *false*, throw a *TypeError* exception. 1. Repeat, 1. Let _next_ be IteratorStep(_iteratorRecord_). @@ -39793,7 +39793,7 @@

                                      Runtime Semantics: PerformPromiseRace ( _iteratorRecord_, _constructor_, _re 1. If _nextValue_ is an abrupt completion, set _iteratorRecord_.[[Done]] to *true*. 1. ReturnIfAbrupt(_nextValue_). 1. Let _nextPromise_ be ? Call(_promiseResolve_, _constructor_, « _nextValue_ »). - 1. Perform ? Invoke(_nextPromise_, `"then"`, « _resultCapability_.[[Resolve]], _resultCapability_.[[Reject]] »). + 1. Perform ? Invoke(_nextPromise_, *"then"*, « _resultCapability_.[[Resolve]], _resultCapability_.[[Reject]] »). @@ -39832,7 +39832,7 @@

                                      PromiseResolve ( _C_, _x_ )

                                      1. Assert: Type(_C_) is Object. 1. If IsPromise(_x_) is *true*, then - 1. Let _xConstructor_ be ? Get(_x_, `"constructor"`). + 1. Let _xConstructor_ be ? Get(_x_, *"constructor"*). 1. If SameValue(_xConstructor_, _C_) is *true*, return _x_. 1. Let _promiseCapability_ be ? NewPromiseCapability(_C_). 1. Perform ? Call(_promiseCapability_.[[Resolve]], *undefined*, « _x_ »). @@ -39847,7 +39847,7 @@

                                      get Promise [ @@species ]

                                      1. Return the *this* value. -

                                      The value of the `"name"` property of this function is *"get [Symbol.species]"*.

                                      +

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

                                      Promise prototype methods normally use their `this` object's constructor to create a derived object. However, a subclass constructor may over-ride that default behaviour by redefining its @@species property.

                                      @@ -39869,7 +39869,7 @@

                                      Promise.prototype.catch ( _onRejected_ )

                                      When the `catch` method is called with argument _onRejected_, the following steps are taken:

                                      1. Let _promise_ be the *this* value. - 1. Return ? Invoke(_promise_, `"then"`, « *undefined*, _onRejected_ »). + 1. Return ? Invoke(_promise_, *"then"*, « *undefined*, _onRejected_ »). @@ -39898,7 +39898,7 @@

                                      Promise.prototype.finally ( _onFinally_ )

                                      1. Let _catchFinally_ be ! CreateBuiltinFunction(_stepsCatchFinally_, « [[Constructor]], [[OnFinally]] »). 1. Set _catchFinally_.[[Constructor]] to _C_. 1. Set _catchFinally_.[[OnFinally]] to _onFinally_. - 1. Return ? Invoke(_promise_, `"then"`, « _thenFinally_, _catchFinally_ »). + 1. Return ? Invoke(_promise_, *"then"*, « _thenFinally_, _catchFinally_ »).
                                      @@ -39914,9 +39914,9 @@

                                      Then Finally Functions

                                      1. Assert: IsConstructor(_C_) is *true*. 1. Let _promise_ be ? PromiseResolve(_C_, _result_). 1. Let _valueThunk_ be equivalent to a function that returns _value_. - 1. Return ? Invoke(_promise_, `"then"`, « _valueThunk_ »). + 1. Return ? Invoke(_promise_, *"then"*, « _valueThunk_ »).
                                      -

                                      The `"length"` property of a Then Finally function is *1*.

                                      +

                                      The *"length"* property of a Then Finally function is *1*.

                                      @@ -39932,9 +39932,9 @@

                                      Catch Finally Functions

                                      1. Assert: IsConstructor(_C_) is *true*. 1. Let _promise_ be ? PromiseResolve(_C_, _result_). 1. Let _thrower_ be equivalent to a function that throws _reason_. - 1. Return ? Invoke(_promise_, `"then"`, « _thrower_ »). + 1. Return ? Invoke(_promise_, *"then"*, « _thrower_ »). -

                                      The `"length"` property of a Catch Finally function is *1*.

                                      +

                                      The *"length"* property of a Catch Finally function is *1*.

                                      @@ -39970,12 +39970,12 @@

                                      PerformPromiseThen ( _promise_, _onFulfilled_, _onRejected_ [ , _resultCapab 1. Append _rejectReaction_ as the last element of the List that is _promise_.[[PromiseRejectReactions]]. 1. Else if _promise_.[[PromiseState]] is ~fulfilled~, then 1. Let _value_ be _promise_.[[PromiseResult]]. - 1. Perform EnqueueJob(`"PromiseJobs"`, PromiseReactionJob, « _fulfillReaction_, _value_ »). + 1. Perform EnqueueJob(*"PromiseJobs"*, PromiseReactionJob, « _fulfillReaction_, _value_ »). 1. Else, 1. Assert: The value of _promise_.[[PromiseState]] is ~rejected~. 1. Let _reason_ be _promise_.[[PromiseResult]]. - 1. If _promise_.[[PromiseIsHandled]] is *false*, perform HostPromiseRejectionTracker(_promise_, `"handle"`). - 1. Perform EnqueueJob(`"PromiseJobs"`, PromiseReactionJob, « _rejectReaction_, _reason_ »). + 1. If _promise_.[[PromiseIsHandled]] is *false*, perform HostPromiseRejectionTracker(_promise_, *"handle"*). + 1. Perform EnqueueJob(*"PromiseJobs"*, PromiseReactionJob, « _rejectReaction_, _reason_ »). 1. Set _promise_.[[PromiseIsHandled]] to *true*. 1. If _resultCapability_ is *undefined*, then 1. Return *undefined*. @@ -40090,7 +40090,7 @@

                                      Properties of the AsyncFunction Constructor

                                      • is a standard built-in function object that inherits from the `Function` constructor.
                                      • has a [[Prototype]] internal slot whose value is %Function%.
                                      • -
                                      • has a `"name"` property whose value is *"AsyncFunction"*.
                                      • +
                                      • has a *"name"* property whose value is *"AsyncFunction"*.
                                      • has the following properties:
                                      @@ -40112,7 +40112,7 @@

                                      Properties of the AsyncFunction Prototype Object

                                      • is an ordinary object.
                                      • is not a function object and does not have an [[ECMAScriptCode]] internal slot or any other of the internal slots listed in .
                                      • -
                                      • is the value of the `"prototype"` property of %AsyncFunction%.
                                      • +
                                      • is the value of the *"prototype"* property of %AsyncFunction%.
                                      • is the intrinsic object %AsyncFunctionPrototype%.
                                      • has a [[Prototype]] internal slot whose value is %Function.prototype%.
                                      @@ -40141,12 +40141,12 @@

                                      AsyncFunction Instances

                                      Each AsyncFunction instance has the following own properties:

                                      length

                                      -

                                      The specification for the `"length"` property of Function instances given in also applies to AsyncFunction instances.

                                      +

                                      The specification for the *"length"* property of Function instances given in also applies to AsyncFunction instances.

                                      name

                                      -

                                      The specification for the `"name"` property of Function instances given in also applies to AsyncFunction instances.

                                      +

                                      The specification for the *"name"* property of Function instances given in also applies to AsyncFunction instances.

                                      @@ -40189,7 +40189,7 @@

                                      The Reflect Object

                                      The Reflect object:

                                      • is the intrinsic object %Reflect%.
                                      • -
                                      • is the initial value of the `"Reflect"` property of the global object.
                                      • +
                                      • is the initial value of the *"Reflect"* property of the global object.
                                      • is an ordinary object.
                                      • has a [[Prototype]] internal slot whose value is %Object.prototype%.
                                      • is not a function object.
                                      • @@ -40342,7 +40342,7 @@

                                        The Proxy Constructor

                                        The Proxy constructor:

                                        • is the intrinsic object %Proxy%.
                                        • -
                                        • is the initial value of the `"Proxy"` property of the global object.
                                        • +
                                        • is the initial value of the *"Proxy"* property of the global object.
                                        • creates and initializes a new proxy exotic object when called as a constructor.
                                        • is not intended to be called as a function and will throw an exception when called in that manner.
                                        @@ -40362,7 +40362,7 @@

                                        Properties of the Proxy Constructor

                                        The Proxy constructor:

                                        • has a [[Prototype]] internal slot whose value is %Function.prototype%.
                                        • -
                                        • does not have a `"prototype"` property because proxy exotic objects do not have a [[Prototype]] internal slot that requires initialization.
                                        • +
                                        • does not have a *"prototype"* property because proxy exotic objects do not have a [[Prototype]] internal slot that requires initialization.
                                        • has the following properties:
                                        @@ -40375,8 +40375,8 @@

                                        Proxy.revocable ( _target_, _handler_ )

                                        1. Let _revoker_ be ! CreateBuiltinFunction(_steps_, « [[RevocableProxy]] »). 1. Set _revoker_.[[RevocableProxy]] to _p_. 1. Let _result_ be ObjectCreate(%Object.prototype%). - 1. Perform ! CreateDataPropertyOrThrow(_result_, `"proxy"`, _p_). - 1. Perform ! CreateDataPropertyOrThrow(_result_, `"revoke"`, _revoker_). + 1. Perform ! CreateDataPropertyOrThrow(_result_, *"proxy"*, _p_). + 1. Perform ! CreateDataPropertyOrThrow(_result_, *"revoke"*, _revoker_). 1. Return _result_. @@ -40395,7 +40395,7 @@

                                        Proxy Revocation Functions

                                        1. Set _p_.[[ProxyHandler]] to *null*. 1. Return *undefined*. -

                                        The `"length"` property of a Proxy revocation function is 0.

                                        +

                                        The *"length"* property of a Proxy revocation function is 0.

                                        @@ -41943,18 +41943,18 @@

                                        escape ( _string_ )

                                        1. Let _k_ be 0. 1. Repeat, while _k_ < _length_, 1. Let _char_ be the code unit (represented as a 16-bit unsigned integer) at index _k_ within _string_. - 1. If _char_ is one of the code units in `"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@*_+-./"`, then + 1. If _char_ is one of the code units in *"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@*_+-./"*, then 1. Let _S_ be the String value containing the single code unit _char_. 1. Else if _char_ ≥ 256, then 1. Let _n_ be the numeric value of _char_. 1. Let _S_ be the string-concatenation of: - * `"%u"` + * *"%u"* * the String representation of _n_, formatted as a four-digit uppercase hexadecimal number, padded to the left with zeroes if necessary 1. Else, 1. Assert: _char_ < 256. 1. Let _n_ be the numeric value of _char_. 1. Let _S_ be the string-concatenation of: - * `"%"` + * *"%"* * the String representation of _n_, formatted as a two-digit uppercase hexadecimal number, padded to the left with a zero if necessary 1. Set _R_ to the string-concatenation of the previous value of _R_ and _S_. 1. Set _k_ to _k_ + 1. @@ -42093,7 +42093,7 @@

                                        String.prototype.substr ( _start_, _length_ )

                                        1. Let _size_ be the number of code units in _S_. 1. If _intStart_ < 0, set _intStart_ to max(_size_ + _intStart_, 0). 1. Let _resultLength_ be min(max(_end_, 0), _size_ - _intStart_). - 1. If _resultLength_ ≤ 0, return the empty String `""`. + 1. If _resultLength_ ≤ 0, return the empty String *""*. 1. Return the String value containing _resultLength_ consecutive code units from _S_ beginning with the code unit at index _intStart_. @@ -42106,7 +42106,7 @@

                                        String.prototype.anchor ( _name_ )

                                        When the `anchor` method is called with argument _name_, the following steps are taken:

                                        1. Let _S_ be the *this* value. - 1. Return ? CreateHTML(_S_, `"a"`, `"name"`, _name_). + 1. Return ? CreateHTML(_S_, *"a"*, *"name"*, _name_). @@ -42115,10 +42115,10 @@

                                        Runtime Semantics: CreateHTML ( _string_, _tag_, _attribute_, _value_ )

                                        1. Let _str_ be ? RequireObjectCoercible(_string_). 1. Let _S_ be ? ToString(_str_). - 1. Let _p1_ be the string-concatenation of `"<"` and _tag_. + 1. Let _p1_ be the string-concatenation of *"<"* and _tag_. 1. If _attribute_ is not the empty String, then 1. Let _V_ be ? ToString(_value_). - 1. Let _escapedV_ be the String value that is the same as _V_ except that each occurrence of the code unit 0x0022 (QUOTATION MARK) in _V_ has been replaced with the six code unit sequence `"&quot;"`. + 1. Let _escapedV_ be the String value that is the same as _V_ except that each occurrence of the code unit 0x0022 (QUOTATION MARK) in _V_ has been replaced with the six code unit sequence *"&quot;"*. 1. Set _p1_ to the string-concatenation of: * _p1_ * the code unit 0x0020 (SPACE) @@ -42127,9 +42127,9 @@

                                        Runtime Semantics: CreateHTML ( _string_, _tag_, _attribute_, _value_ )

                                        * the code unit 0x0022 (QUOTATION MARK) * _escapedV_ * the code unit 0x0022 (QUOTATION MARK) - 1. Let _p2_ be the string-concatenation of _p1_ and `">"`. + 1. Let _p2_ be the string-concatenation of _p1_ and *">"*. 1. Let _p3_ be the string-concatenation of _p2_ and _S_. - 1. Let _p4_ be the string-concatenation of _p3_, `"</"`, _tag_, and `">"`. + 1. Let _p4_ be the string-concatenation of _p3_, *"</"*, _tag_, and *">"*. 1. Return _p4_.
                                        @@ -42140,7 +42140,7 @@

                                        String.prototype.big ( )

                                        When the `big` method is called with no arguments, the following steps are taken:

                                        1. Let _S_ be the *this* value. - 1. Return ? CreateHTML(_S_, `"big"`, `""`, `""`). + 1. Return ? CreateHTML(_S_, *"big"*, *""*, *""*). @@ -42149,7 +42149,7 @@

                                        String.prototype.blink ( )

                                        When the `blink` method is called with no arguments, the following steps are taken:

                                        1. Let _S_ be the *this* value. - 1. Return ? CreateHTML(_S_, `"blink"`, `""`, `""`). + 1. Return ? CreateHTML(_S_, *"blink"*, *""*, *""*). @@ -42158,7 +42158,7 @@

                                        String.prototype.bold ( )

                                        When the `bold` method is called with no arguments, the following steps are taken:

                                        1. Let _S_ be the *this* value. - 1. Return ? CreateHTML(_S_, `"b"`, `""`, `""`). + 1. Return ? CreateHTML(_S_, *"b"*, *""*, *""*). @@ -42167,7 +42167,7 @@

                                        String.prototype.fixed ( )

                                        When the `fixed` method is called with no arguments, the following steps are taken:

                                        1. Let _S_ be the *this* value. - 1. Return ? CreateHTML(_S_, `"tt"`, `""`, `""`). + 1. Return ? CreateHTML(_S_, *"tt"*, *""*, *""*). @@ -42176,7 +42176,7 @@

                                        String.prototype.fontcolor ( _color_ )

                                        When the `fontcolor` method is called with argument _color_, the following steps are taken:

                                        1. Let _S_ be the *this* value. - 1. Return ? CreateHTML(_S_, `"font"`, `"color"`, _color_). + 1. Return ? CreateHTML(_S_, *"font"*, *"color"*, _color_). @@ -42185,7 +42185,7 @@

                                        String.prototype.fontsize ( _size_ )

                                        When the `fontsize` method is called with argument _size_, the following steps are taken:

                                        1. Let _S_ be the *this* value. - 1. Return ? CreateHTML(_S_, `"font"`, `"size"`, _size_). + 1. Return ? CreateHTML(_S_, *"font"*, *"size"*, _size_). @@ -42194,7 +42194,7 @@

                                        String.prototype.italics ( )

                                        When the `italics` method is called with no arguments, the following steps are taken:

                                        1. Let _S_ be the *this* value. - 1. Return ? CreateHTML(_S_, `"i"`, `""`, `""`). + 1. Return ? CreateHTML(_S_, *"i"*, *""*, *""*). @@ -42203,7 +42203,7 @@

                                        String.prototype.link ( _url_ )

                                        When the `link` method is called with argument _url_, the following steps are taken:

                                        1. Let _S_ be the *this* value. - 1. Return ? CreateHTML(_S_, `"a"`, `"href"`, _url_). + 1. Return ? CreateHTML(_S_, *"a"*, *"href"*, _url_). @@ -42212,7 +42212,7 @@

                                        String.prototype.small ( )

                                        When the `small` method is called with no arguments, the following steps are taken:

                                        1. Let _S_ be the *this* value. - 1. Return ? CreateHTML(_S_, `"small"`, `""`, `""`). + 1. Return ? CreateHTML(_S_, *"small"*, *""*, *""*). @@ -42221,7 +42221,7 @@

                                        String.prototype.strike ( )

                                        When the `strike` method is called with no arguments, the following steps are taken:

                                        1. Let _S_ be the *this* value. - 1. Return ? CreateHTML(_S_, `"strike"`, `""`, `""`). + 1. Return ? CreateHTML(_S_, *"strike"*, *""*, *""*). @@ -42230,7 +42230,7 @@

                                        String.prototype.sub ( )

                                        When the `sub` method is called with no arguments, the following steps are taken:

                                        1. Let _S_ be the *this* value. - 1. Return ? CreateHTML(_S_, `"sub"`, `""`, `""`). + 1. Return ? CreateHTML(_S_, *"sub"*, *""*, *""*). @@ -42239,24 +42239,24 @@

                                        String.prototype.sup ( )

                                        When the `sup` method is called with no arguments, the following steps are taken:

                                        1. Let _S_ be the *this* value. - 1. Return ? CreateHTML(_S_, `"sup"`, `""`, `""`). + 1. Return ? CreateHTML(_S_, *"sup"*, *""*, *""*).

                                        String.prototype.trimLeft ( )

                                        -

                                        The property `"trimStart"` is preferred. The `"trimLeft"` property is provided principally for compatibility with old code. It is recommended that the `"trimStart"` property be used in new ECMAScript code.

                                        +

                                        The property *"trimStart"* is preferred. The *"trimLeft"* property is provided principally for compatibility with old code. It is recommended that the *"trimStart"* property be used in new ECMAScript code.

                                        -

                                        The initial value of the `"trimLeft"` property is the same function object as the initial value of the `String.prototype.trimStart` property.

                                        +

                                        The initial value of the *"trimLeft"* property is the same function object as the initial value of the `String.prototype.trimStart` property.

                                        String.prototype.trimRight ( )

                                        -

                                        The property `"trimEnd"` is preferred. The `"trimRight"` property is provided principally for compatibility with old code. It is recommended that the `"trimEnd"` property be used in new ECMAScript code.

                                        +

                                        The property *"trimEnd"* is preferred. The *"trimRight"* property is provided principally for compatibility with old code. It is recommended that the *"trimEnd"* property be used in new ECMAScript code.

                                        -

                                        The initial value of the `"trimRight"` property is the same function object as the initial value of the `String.prototype.trimEnd` property.

                                        +

                                        The initial value of the *"trimRight"* property is the same function object as the initial value of the `String.prototype.trimEnd` property.

                                        @@ -42302,7 +42302,7 @@

                                        Date.prototype.setYear ( _year_ )

                                        Date.prototype.toGMTString ( )

                                        -

                                        The property `"toUTCString"` is preferred. The `"toGMTString"` property is provided principally for compatibility with old code. It is recommended that the `"toUTCString"` property be used in new ECMAScript code.

                                        +

                                        The property *"toUTCString"* is preferred. The *"toGMTString"* property is provided principally for compatibility with old code. It is recommended that the *"toUTCString"* property be used in new ECMAScript code.

                                        The function object that is the initial value of `Date.prototype.toGMTString` is the same function object that is the initial value of `Date.prototype.toUTCString`.

                                        @@ -42347,7 +42347,7 @@

                                        __proto__ Property Names in Object Initializers

                                        • - It is a Syntax Error if PropertyNameList of |PropertyDefinitionList| contains any duplicate entries for `"__proto__"` and at least two of those entries were obtained from productions of the form PropertyDefinition : PropertyName `:` AssignmentExpression. + It is a Syntax Error if PropertyNameList of |PropertyDefinitionList| contains any duplicate entries for *"__proto__"* and at least two of those entries were obtained from productions of the form PropertyDefinition : PropertyName `:` AssignmentExpression.
                                        @@ -42463,7 +42463,7 @@

                                        Changes to FunctionDeclarationInstantiation

                                        1. Let _F_ be StringValue of the |BindingIdentifier| of _f_. 1. If replacing the |FunctionDeclaration| _f_ with a |VariableStatement| that has _F_ as a |BindingIdentifier| would not produce any Early Errors for _func_ and _F_ is not an element of _parameterNames_, then 1. NOTE: A var binding for _F_ is only instantiated here if it is neither a VarDeclaredName, the name of a formal parameter, or another |FunctionDeclaration|. - 1. If _initializedBindings_ does not contain _F_ and _F_ is not `"arguments"`, then + 1. If _initializedBindings_ does not contain _F_ and _F_ is not *"arguments"*, then 1. Perform ! _varEnvRec_.CreateMutableBinding(_F_, *false*). 1. Perform _varEnvRec_.InitializeBinding(_F_, *undefined*). 1. Append _F_ to _instantiatedVarNames_. @@ -42743,7 +42743,7 @@

                                        Changes to the `typeof` Operator

                                        Object (has an [[IsHTMLDDA]] internal slot) - `"undefined"` + *"undefined"* @@ -42771,10 +42771,10 @@

                                        The Strict Mode of ECMAScript

                                        Assignment to an undeclared identifier or otherwise unresolvable reference does not create a property in the global object. When a simple assignment occurs within strict mode code, its |LeftHandSideExpression| must not evaluate to an unresolvable Reference. If it does a *ReferenceError* exception is thrown (). The |LeftHandSideExpression| also may not be a reference to a data property with the attribute value { [[Writable]]: *false* }, to an accessor property with the attribute value { [[Set]]: *undefined* }, nor to a non-existent property of an object whose [[Extensible]] internal slot has the value *false*. In these cases a `TypeError` exception is thrown ().
                                      • - An |IdentifierReference| with the StringValue `"eval"` or `"arguments"` may not appear as the |LeftHandSideExpression| of an Assignment operator () or of an |UpdateExpression| () or as the |UnaryExpression| operated upon by a Prefix Increment () or a Prefix Decrement () operator. + An |IdentifierReference| with the StringValue *"eval"* or *"arguments"* may not appear as the |LeftHandSideExpression| of an Assignment operator () or of an |UpdateExpression| () or as the |UnaryExpression| operated upon by a Prefix Increment () or a Prefix Decrement () operator.
                                      • - Arguments objects for strict functions define a non-configurable accessor property `"callee"` which throws a *TypeError* exception on access (). + Arguments objects for strict functions define a non-configurable accessor property *"callee"* which throws a *TypeError* exception on access ().
                                      • Arguments objects for strict functions do not dynamically share their array-indexed property values with the corresponding formal parameter bindings of their functions. (). @@ -42783,7 +42783,7 @@

                                        The Strict Mode of ECMAScript

                                        For strict functions, if an arguments object is created the binding of the local identifier `arguments` to the arguments object is immutable and hence may not be the target of an assignment expression. ().
                                      • - It is a *SyntaxError* if the StringValue of a |BindingIdentifier| is `"eval"` or `"arguments"` within strict mode code (). + It is a *SyntaxError* if the StringValue of a |BindingIdentifier| is *"eval"* or *"arguments"* within strict mode code ().
                                      • Strict mode eval code cannot instantiate variables or functions in the variable environment of the caller to eval. Instead, a new variable environment is created and that environment is used for declaration binding instantiation for the eval code (). @@ -42807,7 +42807,7 @@

                                        The Strict Mode of ECMAScript

                                        It is a *SyntaxError* if the same |BindingIdentifier| appears more than once in the |FormalParameters| of a strict function. An attempt to create such a function using a `Function`, `Generator`, or `AsyncFunction` constructor is a *SyntaxError* (, ).
                                      • - An implementation may not extend, beyond that defined in this specification, the meanings within strict functions of properties named `"caller"` or `"arguments"` of function instances. + An implementation may not extend, beyond that defined in this specification, the meanings within strict functions of properties named *"caller"* or *"arguments"* of function instances.
                                      @@ -42817,10 +42817,10 @@

                                      Corrections and Clarifications in ECMAScript 2015 with Possible Compatibilit

                                      - Edition 5 and 5.1 used a property existence test to determine whether a global object property corresponding to a new global declaration already existed. ECMAScript 2015 uses an own property existence test. This corresponds to what has been most commonly implemented by web browsers.

                                      : The 5th Edition moved the capture of the current array length prior to the integer conversion of the array index or new length value. However, the captured length value could become invalid if the conversion process has the side-effect of changing the array length. ECMAScript 2015 specifies that the current array length must be captured after the possible occurrence of such side-effects.

                                      : Previous editions permitted the TimeClip abstract operation to return either *+0* or *-0* as the representation of a 0 time value. ECMAScript 2015 specifies that *+0* always returned. This means that for ECMAScript 2015 the time value of a Date object is never observably *-0* and methods that return time values never return *-0*.

                                      -

                                      : If a UTC offset representation is not present, the local time zone is used. Edition 5.1 incorrectly stated that a missing time zone should be interpreted as `"z"`.

                                      +

                                      : If a UTC offset representation is not present, the local time zone is used. Edition 5.1 incorrectly stated that a missing time zone should be interpreted as *"z"*.

                                      : If the year cannot be represented using the Date Time String Format specified in a RangeError exception is thrown. Previous editions did not specify the behaviour for that case.

                                      : Previous editions did not specify the value returned by `Date.prototype.toString` when this time value is *NaN*. ECMAScript 2015 specifies the result to be the String value *"Invalid Date"*.

                                      -

                                      , : Any LineTerminator code points in the value of the `"source"` property of a RegExp instance must be expressed using an escape sequence. Edition 5.1 only required the escaping of `"/"`.

                                      +

                                      , : Any LineTerminator code points in the value of the *"source"* property of a RegExp instance must be expressed using an escape sequence. Edition 5.1 only required the escaping of `/`.

                                      , : In previous editions, the specifications for `String.prototype.match` and `String.prototype.replace` was incorrect for cases where the pattern argument was a RegExp value whose `global` flag is set. The previous specifications stated that for each attempt to match the pattern, if `lastIndex` did not change it should be incremented by 1. The correct behaviour is that `lastIndex` should be incremented by one only if the pattern matched the empty string.

                                      , : Previous editions did not specify how a *NaN* value returned by a _comparefn_ was interpreted by `Array.prototype.sort`. ECMAScript 2015 specifies that such as value is treated as if *+0* was returned from the _comparefn_. ECMAScript 2015 also specifies that ToNumber is applied to the result returned by a _comparefn_. In previous editions, the effect of a _comparefn_ result that is not a Number value was implementation-dependent. In practice, implementations call ToNumber.

                                      @@ -42845,7 +42845,7 @@

                                      Additions and Changes That Introduce Incompatibilities with Prior Editions: In ECMAScript 2015, it is an early error for a |Catch| clause to contain a `var` declaration for the same |Identifier| that appears as the |Catch| clause parameter. In previous editions, such a variable declaration would be instantiated in the enclosing variable environment but the declaration's |Initializer| value would be assigned to the |Catch| parameter.

                                      , : In ECMAScript 2015, a runtime *SyntaxError* is thrown if a |Catch| clause evaluates a non-strict direct `eval` whose eval code includes a `var` or `FunctionDeclaration` declaration that binds the same |Identifier| that appears as the |Catch| clause parameter.

                                      : In ECMAScript 2015, the completion value of a |TryStatement| is never the value ~empty~. If the |Block| part of a |TryStatement| evaluates to a normal completion whose value is ~empty~, the completion value of the |TryStatement| is *undefined*. If the |Block| part of a |TryStatement| evaluates to a throw completion and it has a |Catch| part that evaluates to a normal completion whose value is ~empty~, the completion value of the |TryStatement| is *undefined* if there is no |Finally| clause or if its |Finally| clause evaluates to an ~empty~ normal completion.

                                      -

                                      In ECMAScript 2015, the function objects that are created as the values of the [[Get]] or [[Set]] attribute of accessor properties in an |ObjectLiteral| are not constructor functions and they do not have a `"prototype"` own property. In the previous edition, they were constructors and had a `"prototype"` property.

                                      +

                                      In ECMAScript 2015, the function objects that are created as the values of the [[Get]] or [[Set]] attribute of accessor properties in an |ObjectLiteral| are not constructor functions and they do not have a *"prototype"* own property. In the previous edition, they were constructors and had a *"prototype"* property.

                                      : In ECMAScript 2015, if the argument to `Object.freeze` is not an object it is treated as if it was a non-extensible ordinary object with no own properties. In the previous edition, a non-object argument always causes a *TypeError* to be thrown.

                                      : In ECMAScript 2015, if the argument to `Object.getOwnPropertyDescriptor` is not an object an attempt is made to coerce the argument using ToObject. If the coercion is successful the result is used in place of the original argument value. In the previous edition, a non-object argument always causes a *TypeError* to be thrown.

                                      : In ECMAScript 2015, if the argument to `Object.getOwnPropertyNames` is not an object an attempt is made to coerce the argument using ToObject. If the coercion is successful the result is used in place of the original argument value. In the previous edition, a non-object argument always causes a *TypeError* to be thrown.

                                      @@ -42857,7 +42857,7 @@

                                      Additions and Changes That Introduce Incompatibilities with Prior Editions: In ECMAScript 2015, if the argument to `Object.preventExtensions` is not an object it is treated as if it was a non-extensible ordinary object with no own properties. In the previous edition, a non-object argument always causes a *TypeError* to be thrown.

                                      : In ECMAScript 2015, if the argument to `Object.seal` is not an object it is treated as if it was a non-extensible ordinary object with no own properties. In the previous edition, a non-object argument always causes a *TypeError* to be thrown.

                                      : In ECMAScript 2015, the [[Prototype]] internal slot of a bound function is set to the [[GetPrototypeOf]] value of its target function. In the previous edition, [[Prototype]] was always set to %Function.prototype%.

                                      -

                                      : In ECMAScript 2015, the `"length"` property of function instances is configurable. In previous editions it was non-configurable.

                                      +

                                      : In ECMAScript 2015, the *"length"* property of function instances is configurable. In previous editions it was non-configurable.

                                      : In ECMAScript 2015, the [[Prototype]] internal slot of a _NativeError_ constructor is the Error constructor. In previous editions it was the Function prototype object.

                                      In ECMAScript 2015, the Date prototype object is not a Date instance. In previous editions it was a Date instance whose TimeValue was *NaN*.

                                      In ECMAScript 2015, the `String.prototype.localeCompare` function must treat Strings that are canonically equivalent according to the Unicode standard as being identical. In previous editions implementations were permitted to ignore canonical equivalence and could instead use a bit-wise comparison.

                                      @@ -42865,7 +42865,7 @@

                                      Additions and Changes That Introduce Incompatibilities with Prior Editions In ECMAScript 2015, the `String.prototype.trim` method is defined to recognize white space code points that may exists outside of the Unicode BMP. However, as of Unicode 7 no such code points are defined. In previous editions such code points would not have been recognized as white space.

                                      In ECMAScript 2015, If the _pattern_ argument is a RegExp instance and the _flags_ argument is not *undefined*, a new RegExp instance is created just like _pattern_ except that _pattern_'s flags are replaced by the argument _flags_. In previous editions a *TypeError* exception was thrown when _pattern_ was a RegExp instance and _flags_ was not *undefined*.

                                      In ECMAScript 2015, the RegExp prototype object is not a RegExp instance. In previous editions it was a RegExp instance whose pattern is the empty string.

                                      -

                                      In ECMAScript 2015, `"source"`, `"global"`, `"ignoreCase"`, and `"multiline"` are accessor properties defined on the RegExp prototype object. In previous editions they were data properties defined on RegExp instances.

                                      +

                                      In ECMAScript 2015, *"source"*, *"global"*, *"ignoreCase"*, and *"multiline"* are accessor properties defined on the RegExp prototype object. In previous editions they were data properties defined on RegExp instances.

                                      Colophon