From 5512445d776b006c484c25c27d795f0f5033b58c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 18 Dec 2015 09:03:51 -0800 Subject: [PATCH] Normative: Change default function length value to not include optional arguments. Fixes #264. - A few legacy methods that have deviating lengths are documented explicitly. - Any unneeded explicit lengths are removed. - Needed legacy explicit lengths are added. - Spacing inside optional argument brackets is made consistent - Fixed a bug with a `DataView` note having the wrong argument name The DataView prototype get/set methods have inconsistent lengths across all browsers, so rather than select one of them as legacy, I decided to let them fall into the default category, which hopefully implementations will align with. Here are the changes: - DataView.prototype.getFloat32 (sometimes 0 or 2, now 1) - DataView.prototype.getFloat64 (sometimes 0 or 2, now 1) - DataView.prototype.getInt16 (sometimes 0 or 2, now 1) - DataView.prototype.getInt32 (sometimes 0 or 2, now 1) - DataView.prototype.getUint16 (sometimes 0 or 2, now 1) - DataView.prototype.getUint32 (sometimes 0 or 2, now 1) - DataView.prototype.setFloat32 (sometimes 0 or 3, now 2) - DataView.prototype.setFloat64 (sometimes 0 or 3, now 2) - DataView.prototype.setInt16 (sometimes 0 or 3, now 2) - DataView.prototype.setInt32 (sometimes 0 or 3, now 2) - DataView.prototype.setUint16 (sometimes 0 or 3, now 2) - DataView.prototype.setUint32 (sometimes 0 or 3, now 2) Note that the "int 8" methods had no optional arguments, and thus were always 1 or 2 - this brings all the DataView get and set methods into alignment with 1 for get, and 2 for set - since they all have the same number of required arguments respectively. --- spec.html | 119 +++++++++++++++++------------------------------------- 1 file changed, 37 insertions(+), 82 deletions(-) diff --git a/spec.html b/spec.html index 1873bc595c..74af4da156 100644 --- a/spec.html +++ b/spec.html @@ -2987,7 +2987,7 @@

Type Conversion

-

ToPrimitive ( _input_ [, _PreferredType_] )

+

ToPrimitive ( _input_ [ , _PreferredType_ ] )

The abstract operation ToPrimitive takes an _input_ argument and an optional argument _PreferredType_. The abstract operation ToPrimitive converts its _input_ argument to a non-Object type. If an object is capable of converting to more than one primitive type, it may use the optional hint _PreferredType_ to favour that type. Conversion occurs according to :

@@ -4306,7 +4306,7 @@

HasOwnProperty (_O_, _P_)

-

Call(_F_, _V_, [_argumentsList_])

+

Call(_F_, _V_, [ _argumentsList_ ])

The abstract operation Call is used to call the [[Call]] internal method of a function object. The operation is called with arguments _F_, _V_ , and optionally _argumentsList_ where _F_ is the function object, _V_ is an ECMAScript language value that is the *this* value of the [[Call]], and _argumentsList_ is the value passed to the corresponding argument of the internal method. If _argumentsList_ is not present, an empty List is used as its value. This abstract operation performs the following steps:

1. ReturnIfAbrupt(_F_). @@ -4318,7 +4318,7 @@

Call(_F_, _V_, [_argumentsList_])

-

Construct (_F_, [_argumentsList_], [_newTarget_])

+

Construct (_F_, [ _argumentsList_, [ _newTarget_ ]])

The abstract operation Construct is used to call the [[Construct]] internal method of a function object. The operation is called with arguments _F_, and optionally _argumentsList_, and _newTarget_ where _F_ is the function object. _argumentsList_ and _newTarget_ are the values to be passed as the corresponding arguments of the internal method. If _argumentsList_ is not present, an empty List is used as its value. If _newTarget_ is not present, _F_ is used as its value. This abstract operation performs the following steps:

1. If _newTarget_ was not passed, let _newTarget_ be _F_. @@ -4397,7 +4397,7 @@

CreateArrayFromList (_elements_)

-

CreateListFromArrayLike (_obj_ [, _elementTypes_] )

+

CreateListFromArrayLike (_obj_ [ , _elementTypes_ ] )

The abstract operation CreateListFromArrayLike is used to create a List value whose elements are provided by the indexed properties of an array-like object, _obj_. The optional argument _elementTypes_ is a List containing the names of ECMAScript Language Types that are allowed for element values of the List that is created. This abstract operation performs the following steps:

1. ReturnIfAbrupt(_obj_). @@ -4418,7 +4418,7 @@

CreateListFromArrayLike (_obj_ [, _elementTypes_] )

-

Invoke(_O_,_P_, [_argumentsList_])

+

Invoke(_O_, _P_ [ , _argumentsList_ ])

The abstract operation Invoke is used to call a method property of an object. The operation is called with arguments _O_, _P_ , and optionally _argumentsList_ where _O_ serves as both the lookup point for the property and the *this* value of the call, _P_ is the property key, and _argumentsList_ is the list of arguments values passed to the method. If _argumentsList_ is not present, an empty List is used as its value. This abstract operation performs the following steps:

1. Assert: IsPropertyKey(_P_) is *true*. @@ -6064,7 +6064,7 @@

GetActiveScriptOrModule ()

-

ResolveBinding ( _name_, [_env_] )

+

ResolveBinding ( _name_ [ , _env_ ] )

The ResolveBinding abstract operation is used to determine the binding of _name_ passed as a String value. The optional argument _env_ can be used to explicitly provide the Lexical Environment that is to be searched for the binding. During execution of ECMAScript code, ResolveBinding is performed using the following algorithm:

1. If _env_ was not passed or if _env_ is *undefined*, then @@ -21676,9 +21676,9 @@

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.

Unless otherwise specified, each built-in function defined in this specification is created as if 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, including optional parameters. However, rest parameters 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, not including 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 `slice` property of the String prototype object is described under the subclause heading “String.prototype.slice (start, end)” which shows the two named arguments start and end; therefore the value of the `length` property of that Function object is `2`.

+

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.

@@ -22603,7 +22603,6 @@

Object.assign ( _target_, ..._sources_ )

1. Let _status_ be ? Set(_to_, _nextKey_, _propValue_, *true*). 1. Return _to_.
-

The `length` property of the `assign` method is 2.

@@ -22617,6 +22616,7 @@

Object.create ( _O_ [ , _Properties_ ] )

1. Return ? ObjectDefineProperties(_obj_, _Properties_). 1. Return _obj_.
+

The `length` property of the `create` method is 2.

@@ -22899,7 +22899,6 @@

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

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 `toLocalString` functions. Implementations that do not include ECMA-402 support must not use those parameter positions for other purposes.

-

The `length` property of the `toLocaleString` method is 0.

This function provides a generic `toLocaleString` implementation for objects that have no locale-specific `toString` behaviour. `Array`, `Number`, `Date`, and `Typed Arrays` provide their own locale-sensitive `toLocaleString` methods.

@@ -23123,7 +23122,6 @@

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

1. Perform SetFunctionName(_F_, _targetName_, `"bound"`). 1. Return _F_.
-

The `length` property of the `bind` method is 1.

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

@@ -23143,7 +23141,6 @@

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

1. Perform PrepareForTailCall(). 1. Return ? Call(_func_, _thisArg_, _argList_).
-

The `length` property of the `call` method is 1.

The thisArg value is passed without modification as the *this* value. This is a change from Edition 3, where an *undefined* or *null* thisArg is replaced with the global object and ToObject is applied to all other values and that result is passed as the *this* value. Even though the thisArg is passed without modification, non-strict functions still perform these transformations upon entry to the function.

@@ -24090,7 +24087,6 @@

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

An ECMAScript implementation that includes the ECMA-402 Internationalization API must implement the `Number.prototype.toLocaleString` method as specified in the ECMA-402 specification. If an ECMAScript implementation does not include the ECMA-402 API the following specification of the `toLocaleString` method is used.

Produces a String value that represents this Number value formatted according to the conventions of the host environment's current locale. This function is implementation-dependent, and it is permissible, but not encouraged, for it to return the same thing as `toString`.

The meanings of the optional parameters to this method are defined in the ECMA-402 specification; implementations that do not include ECMA-402 support must not use those parameter positions for anything else.

-

The `length` property of the `toLocaleString` method is 0.

@@ -24704,7 +24700,7 @@

Math.fround ( _x_ )

-

Math.hypot ( _value1_ , _value2_ , …_values_ )

+

Math.hypot ( _value1_ , _value2_ , ..._values_ )

`Math.hypot` returns an implementation-dependent approximation of the square root of the sum of squares of its arguments.

  • @@ -24844,7 +24840,7 @@

    Math.log2 ( _x_ )

    -

    Math.max ( _value1_, _value2_ , …_values_ )

    +

    Math.max ( _value1_, _value2_ , ..._values_ )

    Given zero or more arguments, calls ToNumber on each of the arguments and returns the largest of the resulting values.

    • @@ -24857,12 +24853,11 @@

      Math.max ( _value1_, _value2_ , …_values_ )

      The comparison of values to determine the largest value is done using the Abstract Relational Comparison algorithm () except that +0 is considered to be larger than -0.
    -

    The `length` property of the `max` method is 2.

    -

    Math.min ( _value1_, _value2_ , …_values_ )

    +

    Math.min ( _value1_, _value2_ , ..._values_ )

    Given zero or more arguments, calls ToNumber on each of the arguments and returns the smallest of the resulting values.

    • @@ -24875,7 +24870,6 @@

      Math.min ( _value1_, _value2_ , …_values_ )

      The comparison of values to determine the smallest value is done using the Abstract Relational Comparison algorithm () except that +0 is considered to be larger than -0.
    -

    The `length` property of the `min` method is 2.

    @@ -25594,7 +25588,7 @@

    The Date Constructor

    -

    Date ( _year_, _month_ [, _date_ [ , _hours_ [ , _minutes_ [ , _seconds_ [ , _ms_ ] ] ] ] ] )

    +

    Date ( _year_, _month_ [ , _date_ [ , _hours_ [ , _minutes_ [ , _seconds_ [ , _ms_ ] ] ] ] ] )

    This description applies only if the Date constructor is called with at least two arguments.

    When the `Date` function is called the following steps are taken:

    @@ -25617,6 +25611,7 @@

    Date ( _year_, _month_ [, _date_ [ , _hours_ [ , _minutes_ [ , _seconds_ [ , 1. Let _now_ be the Number that is the time value (UTC) identifying the current time. 1. Return ToDateString(_now_). +

    The `length` property of the `Date` function is 7.

    @@ -25968,6 +25963,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.

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

    @@ -25988,6 +25984,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.

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

    @@ -26021,6 +26018,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.

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

    @@ -26039,6 +26037,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.

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

    @@ -26057,6 +26056,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.

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

    @@ -26103,6 +26103,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.

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

    @@ -26123,6 +26124,7 @@

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

    +

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

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

    @@ -26144,7 +26146,7 @@

    Date.prototype.setUTCMilliseconds ( _ms_ )

    -

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

    +

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

    The following steps are performed:

    1. Let _t_ be ? thisTimeValue(*this* value). @@ -26160,6 +26162,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.

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

    @@ -26180,6 +26183,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.

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

    @@ -26200,6 +26204,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.

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

    @@ -26242,7 +26247,6 @@

    Date.prototype.toLocaleDateString ( [ _reserved1_ [ , _reserved2_ ] ] )

    An ECMAScript implementation that includes the ECMA-402 Internationalization API must implement the `Date.prototype.toLocaleDateString` method as specified in the ECMA-402 specification. If an ECMAScript implementation does not include the ECMA-402 API the following specification of the `toLocaleDateString` method is used.

    This function returns a String value. The contents of the String are implementation-dependent, but are intended to represent the “date” portion of the Date in the current time zone in a convenient, human-readable form that corresponds to the conventions of the host environment's current locale.

    The meaning of the optional parameters to this method are defined in the ECMA-402 specification; implementations that do not include ECMA-402 support must not use those parameter positions for anything else.

    -

    The `length` property of the `toLocaleDateString` method is 0.

    @@ -26251,7 +26255,6 @@

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

    An ECMAScript implementation that includes the ECMA-402 Internationalization API must implement the `Date.prototype.toLocaleString` method as specified in the ECMA-402 specification. If an ECMAScript implementation does not include the ECMA-402 API the following specification of the `toLocaleString` method is used.

    This function returns a String value. The contents of the String are implementation-dependent, but are intended to represent the Date in the current time zone in a convenient, human-readable form that corresponds to the conventions of the host environment's current locale.

    The meaning of the optional parameters to this method are defined in the ECMA-402 specification; implementations that do not include ECMA-402 support must not use those parameter positions for anything else.

    -

    The `length` property of the `toLocaleString` method is 0.

    @@ -26260,7 +26263,6 @@

    Date.prototype.toLocaleTimeString ( [ _reserved1_ [ , _reserved2_ ] ] )

    An ECMAScript implementation that includes the ECMA-402 Internationalization API must implement the `Date.prototype.toLocaleTimeString` method as specified in the ECMA-402 specification. If an ECMAScript implementation does not include the ECMA-402 API the following specification of the `toLocaleTimeString` method is used.

    This function returns a String value. The contents of the String are implementation-dependent, but are intended to represent the “time” portion of the Date in the current time zone in a convenient, human-readable form that corresponds to the conventions of the host environment's current locale.

    The meaning of the optional parameters to this method are defined in the ECMA-402 specification; implementations that do not include ECMA-402 support must not use those parameter positions for anything else.

    -

    The `length` property of the `toLocaleTimeString` method is 0.

    @@ -26453,7 +26455,6 @@

    String.raw ( _template_ , ..._substitutions_ )

    1. Append in order the code unit elements of _nextSub_ to the end of _stringElements_. 1. Let _nextIndex_ be _nextIndex_ + 1. -

    The `length` property of the `raw` function is 1.

    String.raw is intended for use as a tag function of a Tagged Template (). When called as such, the first argument will be a well formed template object and the rest parameter will contain the substitution values.

    @@ -26573,7 +26574,7 @@

    String.prototype.constructor

    -

    String.prototype.endsWith ( _searchString_ [ , _endPosition_] )

    +

    String.prototype.endsWith ( _searchString_ [ , _endPosition_ ] )

    The following steps are taken:

    1. Let _O_ be RequireObjectCoercible(*this* value). @@ -26590,7 +26591,6 @@

    String.prototype.endsWith ( _searchString_ [ , _endPosition_] )

    1. If the sequence of elements of _S_ starting at _start_ of length _searchLength_ is the same as the full element sequence of _searchStr_, return *true*. 1. Otherwise, return *false*.
    -

    The `length` property of the `endsWith` method is 1.

    Returns *true* if the sequence of elements of _searchString_ converted to a String is the same as the corresponding elements of this object (converted to a String) starting at _endPosition_ - length(this). Otherwise returns *false*.

    @@ -26618,7 +26618,6 @@

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

    1. Let _searchLen_ be the number of elements in _searchStr_. 1. If there exists any integer _k_ not smaller than _start_ such that _k_ + _searchLen_ is not greater than _len_, and for all nonnegative integers _j_ less than _searchLen_, the code unit at index _k_+_j_ of _S_ is the same as the code unit at index _j_ of _searchStr_, return *true*; but if there is no such integer _k_, return *false*. -

    The `length` property of the `includes` method is 1.

    If _searchString_ appears as a substring of the result of converting this object to a String, at one or more indices that are greater than or equal to _position_, return *true*; otherwise, returns *false*. If _position_ is *undefined*, 0 is assumed, so as to search all of the String.

    @@ -26647,7 +26646,6 @@

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

    1. Let _searchLen_ be the number of elements in _searchStr_. 1. Return the smallest possible integer _k_ not smaller than _start_ such that _k_+ _searchLen_ is not greater than _len_, and for all nonnegative integers _j_ less than _searchLen_, the code unit at index _k_+_j_ of _S_ is the same as the code unit at index _j_ of _searchStr_; but if there is no such integer _k_, return the value `-1`. -

    The `length` property of the `indexOf` method is 1.

    The `indexOf` 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.

    @@ -26671,7 +26669,6 @@

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

    1. Let _searchLen_ be the number of elements in _searchStr_. 1. Return the largest possible nonnegative integer _k_ not larger than _start_ such that _k_+ _searchLen_ is not greater than _len_, and for all nonnegative integers _j_ less than _searchLen_, the code unit at index _k_+_j_ of _S_ is the same as the code unit at index _j_ of _searchStr_; but if there is no such integer _k_, return the value `-1`. -

    The `length` property of the `lastIndexOf` method is 1.

    The `lastIndexOf` 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.

    @@ -26679,7 +26676,7 @@

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

    -

    String.prototype.localeCompare ( _that_ [, _reserved1_ [ , _reserved2_ ] ] )

    +

    String.prototype.localeCompare ( _that_ [ , _reserved1_ [ , _reserved2_ ] ] )

    An ECMAScript implementation that includes the ECMA-402 Internationalization API must implement the `localeCompare` method as specified in the ECMA-402 specification. If an ECMAScript implementation does not include the ECMA-402 API the following specification of the `localeCompare` method is used.

    When the `localeCompare` method is called with argument _that_, it returns a Number other than *NaN* that represents the result of a locale-sensitive String comparison of the *this* value (converted to a String) with _that_ (converted to a String). The two Strings are _S_ and _That_. The two Strings are compared in an implementation-defined fashion. The result is intended to order String values in the sort order specified by a host default locale, and will be negative, zero, or positive, depending on whether _S_ comes before _That_ in the sort order, the Strings are equal, or _S_ comes after _That_ in the sort order, respectively.

    Before performing the comparisons, the following steps are performed to prepare the Strings:

    @@ -26691,7 +26688,6 @@

    String.prototype.localeCompare ( _that_ [, _reserved1_ [ , _reserved2_ ] ] )

    The meaning of the optional second and third parameters to this method are defined in the ECMA-402 specification; implementations that do not include ECMA-402 support must not assign any other interpretation to those parameter positions.

    The `localeCompare` method, if considered as a function of two arguments *this* and _that_, is a consistent comparison function (as defined in ) on the set of all Strings.

    The actual return values are implementation-defined to permit implementers to encode additional information in the value, but the function is required to define a total ordering on all Strings. This function must treat Strings that are canonically equivalent according to the Unicode standard as identical and must return `0` when comparing Strings that are considered canonically equivalent.

    -

    The `length` property of the `localeCompare` method is 1.

    The `localeCompare` method itself is not directly suitable as an argument to `Array.prototype.sort` because the latter requires a function of two arguments.

    @@ -26735,7 +26731,6 @@

    String.prototype.normalize ( [ _form_ ] )

    1. Let _ns_ be the String value that is the result of normalizing _S_ into the normalization form named by _f_ as specified in http://www.unicode.org/reports/tr15/tr15-29.html. 1. Return _ns_. -

    The `length` property of the `normalize` method is 0.

    The `normalize` 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.

    @@ -27041,7 +27036,7 @@

    Runtime Semantics: SplitMatch ( _S_, _q_, _R_ )

    -

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

    +

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

    The following steps are taken:

    1. Let _O_ be RequireObjectCoercible(*this* value). @@ -27057,7 +27052,6 @@

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

    1. If the sequence of elements of _S_ starting at _start_ of length _searchLength_ is the same as the full element sequence of _searchStr_, return *true*. 1. Otherwise, return *false*.
    -

    The `length` property of the `startsWith` method is 1.

    This method returns *true* if the sequence of elements of _searchString_ converted to a String is the same as the corresponding elements of this object (converted to a String) starting at index _position_. Otherwise returns *false*.

    @@ -27099,7 +27093,6 @@

    String.prototype.toLocaleLowerCase ( [ _reserved1_ [ , _reserved2_ ] ] )

    An ECMAScript implementation that includes the ECMA-402 Internationalization API must implement the `toLocaleLowerCase` method as specified in the ECMA-402 specification. If an ECMAScript implementation does not include the ECMA-402 API the following specification of the `toLocaleLowerCase` method is used.

    This function interprets a String value as a sequence of UTF-16 encoded code points, as described in .

    This function works exactly the same as `toLowerCase` except that its result is intended to yield the correct result for the host environment's current locale, rather than a locale-independent result. There will only be a difference in the few cases (such as Turkish) where the rules for that language conflict with the regular Unicode case mappings.

    -

    The `length` property of the `toLocaleLowerCase` method is 0.

    The meaning of the optional parameters to this method are defined in the ECMA-402 specification; implementations that do not include ECMA-402 support must not use those parameter positions for anything else.

    The `toLocaleLowerCase` 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.

    @@ -27112,7 +27105,6 @@

    String.prototype.toLocaleUpperCase ([ _reserved1_ [ , _reserved2_ ] ] )

    An ECMAScript implementation that includes the ECMA-402 Internationalization API must implement the `toLocaleUpperCase` method as specified in the ECMA-402 specification. If an ECMAScript implementation does not include the ECMA-402 API the following specification of the `toLocaleUpperCase` method is used.

    This function interprets a String value as a sequence of UTF-16 encoded code points, as described in .

    This function works exactly the same as `toUpperCase` except that its result is intended to yield the correct result for the host environment's current locale, rather than a locale-independent result. There will only be a difference in the few cases (such as Turkish) where the rules for that language conflict with the regular Unicode case mappings.

    -

    The `length` property of the `toLocaleUpperCase` method is 0.

    The meaning of the optional parameters to this method are defined in the ECMA-402 specification; implementations that do not include ECMA-402 support must not use those parameter positions for anything else.

    The `toLocaleUpperCase` 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.

    @@ -29498,7 +29490,6 @@

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

    1. Perform ? Set(_A_, `"length"`, _len_, *true*). 1. Return _A_. -

    The `length` property of the `from` method is 1.

    The `from` function is an intentionally generic factory method; it does not require that its *this* value be the Array constructor. Therefore it can be transferred to or inherited by any other constructors that may be called with a single numeric argument.

    @@ -29534,7 +29525,6 @@

    Array.of ( ..._items_ )

    1. Perform ? Set(_A_, `"length"`, _len_, *true*). 1. Return _A_. -

    The `length` property of the `of` method is 0.

    The _items_ argument is assumed to be a well-formed rest argument value.

    @@ -29670,7 +29660,6 @@

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

    1. Let _count_ be _count_ - 1. 1. Return _O_. -

    The `length` property of the `copyWithin` method is 2.

    The `copyWithin` 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.

    @@ -29688,7 +29677,7 @@

    Array.prototype.entries ( )

    -

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

    +

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

    _callbackfn_ should be a function that accepts three arguments and returns a value that is coercible to the Boolean value *true* or *false*. `every` calls _callbackfn_ once for each element present in the array, in ascending order, until it finds one where _callbackfn_ returns *false*. If such an element is found, `every` immediately returns *false*. Otherwise, if _callbackfn_ returned *true* for all elements, `every` will return *true*. _callbackfn_ is called only for elements of the array which actually exist; it is not called for missing elements of the array.

    If a _thisArg_ parameter is provided, it will be used as the *this* value for each invocation of _callbackfn_. If it is not provided, *undefined* is used instead.

    @@ -29713,7 +29702,6 @@

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

    1. Increase _k_ by 1. 1. Return *true*. -

    The `length` property of the `every` method is 1.

    The `every` 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.

    @@ -29740,7 +29728,6 @@

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

    1. Increase _k_ by 1. 1. Return _O_. -

    The `length` property of the `fill` method is 1.

    The `fill` 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.

    @@ -29777,7 +29764,6 @@

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

    1. Increase _k_ by 1. 1. Return _A_. -

    The `length` property of the `filter` method is 1.

    The `filter` 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.

    @@ -29809,7 +29795,6 @@

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

    1. Increase _k_ by 1. 1. Return *undefined*. -

    The `length` property of the `find` method is 1.

    The `find` 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.

    @@ -29840,7 +29825,6 @@

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

    1. Increase _k_ by 1. 1. Return -1. -

    The `length` property of the `findIndex` method is 1.

    The `findIndex` 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.

    @@ -29871,7 +29855,6 @@

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

    1. Increase _k_ by 1. 1. Return *undefined*. -

    The `length` property of the `forEach` method is 1.

    The `forEach` 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.

    @@ -29905,8 +29888,6 @@

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

    1. Return *false*. -

    The `length` property of the `includes` method is *1*.

    - The `includes` 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. @@ -29944,7 +29925,6 @@

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

    1. Increase _k_ by 1. 1. Return -1. -

    The `length` property of the `indexOf` method is 1.

    The `indexOf` 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.

    @@ -30014,7 +29994,6 @@

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

    1. Decrease _k_ by 1. 1. Return -1. -

    The `length` property of the `lastIndexOf` method is 1.

    The `lastIndexOf` 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.

    @@ -30048,7 +30027,6 @@

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

    1. Increase _k_ by 1. 1. Return _A_. -

    The `length` property of the `map` method is 1.

    The `map` 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.

    @@ -30142,7 +30120,6 @@

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

    1. Increase _k_ by 1. 1. Return _accumulator_. -

    The `length` property of the `reduce` method is 1.

    The `reduce` 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.

    @@ -30184,7 +30161,6 @@

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

    1. Decrease _k_ by 1. 1. Return _accumulator_. -

    The `length` property of the `reduceRight` method is 1.

    The `reduceRight` 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.

    @@ -30328,7 +30304,6 @@

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

    1. Increase _k_ by 1. 1. Return *false*. -

    The `length` property of the `some` method is 1.

    The `some` 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.

    @@ -30537,7 +30512,6 @@

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

    1. Perform ? Set(_O_, `"length"`, _len_ - _actualDeleteCount_ + _itemCount_, *true*). 1. Return _A_. -

    The `length` property of the `splice` method is 2.

    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.

    @@ -31075,7 +31049,6 @@

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

    1. If _thisArg_ was supplied, let _t_ be _thisArg_; else let _t_ be *undefined*. 1. Return TypedArrayFrom(_C_, _source_, _f_, _t_). -

    The `length` property of the `from` method is 1.

    @@ -31148,7 +31121,6 @@

    %TypedArray%.of ( ..._items_ )

    1. Increase _k_ by 1. 1. Return _newObj_. -

    The `length` property of the `of` method is 0.

    The _items_ argument is assumed to be a well-formed rest argument value.

    @@ -31231,11 +31203,10 @@

    %TypedArray%.prototype.constructor

    -

    %TypedArray%.prototype.copyWithin (_target_, _start_ [, _end_ ] )

    +

    %TypedArray%.prototype.copyWithin (_target_, _start_ [ , _end_ ] )

    %TypedArray%`.prototype.copyWithin` is a distinct function that implements the same algorithm as `Array.prototype.copyWithin` as defined in except that the *this* object's [[ArrayLength]] internal slot is accessed in place of performing a [[Get]] of `"length"` and the actual copying of values in step 12 must be performed in a manner that preserves the bit-level encoding of the source data

    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.

    -

    The `length` property of the `copyWithin` method is 2.

    @@ -31268,7 +31239,6 @@

    %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.

    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.

    -

    The `length` property of the `every` method is 1.

    @@ -31276,7 +31246,6 @@

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

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

    %TypedArray%`.prototype.fill` is a distinct function that implements the same algorithm as `Array.prototype.fill` 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.

    -

    The `length` property of the `fill` method is 1.

    @@ -31309,7 +31278,6 @@

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

    1. Return _A_.

    This function is not generic. The *this* value must be an object with a [[TypedArrayName]] internal slot.

    -

    The `length` property of the `filter` method is 1.

    @@ -31317,7 +31285,6 @@

    %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.

    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.

    -

    The `length` property of the `find` method is 1.

    @@ -31325,7 +31292,6 @@

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

    %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.

    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.

    -

    The `length` property of the `findIndex` method is 1.

    @@ -31333,7 +31299,6 @@

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

    %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.

    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.

    -

    The `length` property of the `forEach` method is 1.

    @@ -31341,7 +31306,6 @@

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

    %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.

    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.

    -

    The `length` property of the `indexOf` method is 1.

    @@ -31351,7 +31315,6 @@

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

    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.

    -

    The `length` property of the `includes` method is *1*.

    @@ -31377,7 +31340,6 @@

    %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.

    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.

    -

    The `length` property of the `lastIndexOf` method is 1.

    @@ -31419,7 +31381,6 @@

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

    1. Return _A_.

    This function is not generic. The *this* value must be an object with a [[TypedArrayName]] internal slot.

    -

    The `length` property of the `map` method is 1.

    @@ -31427,7 +31388,6 @@

    %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.

    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.

    -

    The `length` property of the `reduce` method is 1.

    @@ -31435,7 +31395,6 @@

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

    %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.

    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.

    -

    The `length` property of the `reduceRight` method is 1.

    @@ -31450,7 +31409,6 @@

    %TypedArray%.prototype.reverse ( )

    %TypedArray%.prototype.set ( _overloaded_ [ , _offset_ ])

    %TypedArray%`.prototype.set` is a single function whose behaviour is overloaded based upon the type of its first argument.

    This function is not generic. The *this* value must be an object with a [[TypedArrayName]] internal slot.

    -

    The `length` property of the `set` method is 1.

    @@ -31486,11 +31444,12 @@

    %TypedArray%.prototype.set (_array_ [ , _offset_ ] )

    1. Set _targetByteIndex_ to _targetByteIndex_ + _targetElementSize_. 1. Return *undefined*. +

    The `length` property of the `set` method is 2.

    -

    %TypedArray%.prototype.set(_typedArray_ [, _offset_ ] )

    +

    %TypedArray%.prototype.set(_typedArray_ [ , _offset_ ] )

    Sets multiple values in this _TypedArray_, reading the values from the _typedArray_ argument object. The optional _offset_ value indicates the first element index in this _TypedArray_ where values are written. If omitted, it is assumed to be 0.

    1. Assert: _typedArray_ has a [[TypedArrayName]] internal slot. If it does not, the definition in applies. @@ -31591,7 +31550,6 @@

    %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.

    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.

    -

    The `length` property of the `some` method is 1.

    @@ -31652,6 +31610,7 @@

    %TypedArray%.prototype.subarray( [ _begin_ [ , _end_ ] ] )

    1. Let _argumentsList_ be «_buffer_, _beginByteOffset_, _newLength_». 1. Return TypedArraySpeciesCreate(_O_, _argumentsList_). +

    The `length` property of the `subarray` method is 2.

    This function is not generic. The *this* value must be an object with a [[TypedArrayName]] internal slot.

    @@ -32080,7 +32039,6 @@

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

    1. Let _funcResult_ be ? Call(_callbackfn_, _T_, « _e_.[[value]], _e_.[[key]], _M_ »). 1. Return *undefined*. -

    The `length` property of the `forEach` method is 1.

    _callbackfn_ should be a function that accepts three arguments. `forEach` calls _callbackfn_ once for each key/value pair present in the map object, in key insertion order. _callbackfn_ is called only for keys of the map which actually exist; it is not called for keys that have been deleted from the map.

    If a _thisArg_ parameter is provided, it will be used as the *this* value for each invocation of _callbackfn_. If it is not provided, *undefined* is used instead.

    @@ -32460,7 +32418,6 @@

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

    1. Let _funcResult_ be ? Call(_callbackfn_, _T_, « _e_, _e_, _S_ »). 1. Return *undefined*. -

    The `length` property of the `forEach` method is 1.

    _callbackfn_ should be a function that accepts three arguments. `forEach` calls _callbackfn_ once for each value present in the set object, in value insertion order. _callbackfn_ is called only for values of the Set which actually exist; it is not called for keys that have been deleted from the set.

    If a _thisArg_ parameter is provided, it will be used as the *this* value for each invocation of _callbackfn_. If it is not provided, *undefined* is used instead.

    @@ -33004,7 +32961,7 @@

    DetachArrayBuffer( _arrayBuffer_ )

    -

    CloneArrayBuffer( _srcBuffer_, _srcByteOffset_ [, _cloneConstructor_] )

    +

    CloneArrayBuffer( _srcBuffer_, _srcByteOffset_ [ , _cloneConstructor_ ] )

    The abstract operation CloneArrayBuffer takes three parameters, an ArrayBuffer _srcBuffer_, an integer _srcByteOffset_ and optionally a constructor function _cloneConstructor_. It creates a new ArrayBuffer whose data is a copy of _srcBuffer_'s data starting at _srcByteOffset_. This operation performs the following steps:

    1. Assert: Type(_srcBuffer_) is Object and it has an [[ArrayBufferData]] internal slot. @@ -33276,7 +33233,7 @@

    The DataView Constructor

    DataView (_buffer_ [ , _byteOffset_ [ , _byteLength_ ] ] )

    -

    `DataView` called with arguments _buffer_, _byteOffset_, and _length_ performs the following steps:

    +

    `DataView` called with arguments _buffer_, _byteOffset_, and _byteLength_ performs the following steps:

    1. If NewTarget is *undefined*, throw a *TypeError* exception. 1. If Type(_buffer_) is not Object, throw a *TypeError* exception. @@ -33299,6 +33256,7 @@

    DataView (_buffer_ [ , _byteOffset_ [ , _byteLength_ ] ] )

    1. Set _O_'s [[ByteOffset]] internal slot to _offset_. 1. Return _O_.
    +

    The `length` property of the `DataView` function is 3.

    @@ -35167,7 +35125,7 @@

    Reflect.apply ( _target_, _thisArgument_, _argumentsList_ )

    -

    Reflect.construct ( _target_, _argumentsList_ [, _newTarget_] )

    +

    Reflect.construct ( _target_, _argumentsList_ [ , _newTarget_ ] )

    When the `construct` function is called with arguments _target_, _argumentsList_, and _newTarget_ the following steps are taken:

    1. If IsConstructor(_target_) is *false*, throw a *TypeError* exception. @@ -35176,7 +35134,6 @@

    Reflect.construct ( _target_, _argumentsList_ [, _newTarget_] )

    1. Let _args_ be ? CreateListFromArrayLike(_argumentsList_). 1. Return ? Construct(_target_, _args_, _newTarget_).
    -

    The `length` property of the `construct` function is 2.

    @@ -35223,7 +35180,6 @@

    Reflect.get ( _target_, _propertyKey_ [ , _receiver_ ])

    1. Let _receiver_ be _target_. 1. Return ? _target_.[[Get]](_key_, _receiver_). -

    The `length` property of the `get` function is 2.

    @@ -35301,7 +35257,6 @@

    Reflect.set ( _target_, _propertyKey_, _V_ [ , _receiver_ ] )

    1. Let _receiver_ be _target_. 1. Return ? _target_.[[Set]](_key_, _V_, _receiver_). -

    The `length` property of the `set` function is 3.