If Result(1) is not a nonnegative integer less than or equal to
ArrayLengthLimit, then throw a RangeError.
"... then throw a RangeError exception."
[...]
The resulting 'concat', 'push', and 'unshift' methods can throw a
RangeError because the length of the array they create would be
greater than ArrayLengthLimit; the others (excluding 'splice') can
only throw a RangeError when they operate on an object that is not
a native array and has an invalid length property.
... will only throw a RangeError from ToArrayLength ...
(It is possible that something else they call may throw a RangeError.)
I wrote:
> ToArrayLength(V)
>
> 1. Call ToNumber(V).
> 2. If Result(1) is not a nonnegative integer less than or equal to
> ArrayLengthLimit, then throw a RangeError.
"... then throw a RangeError exception."
[...]
> The resulting 'concat', 'push', and 'unshift' methods can throw a
> RangeError because the length of the array they create would be
> greater than ArrayLengthLimit; the others (excluding 'splice') can
> only throw a RangeError when they operate on an object that is not
> a native array and has an invalid length property.
... will only throw a RangeError from ToArrayLength ...
(It is possible that something else they call may throw a RangeError.)
--
David-Sarah Hopwood
I wrote:
"... then throw a RangeError exception."
[...]
... will only throw a RangeError from ToArrayLength ... (It is possible that something else they call may throw a RangeError.)