diff --git a/spec.html b/spec.html
index 3e3632e311..ff4f67c34c 100644
--- a/spec.html
+++ b/spec.html
@@ -39387,7 +39387,7 @@
Array ( ..._values_ )
1. Let _numberOfArgs_ be the number of elements in _values_.
1. If _numberOfArgs_ = 0, then
1. Return ! ArrayCreate(0, _proto_).
- 1. Else if _numberOfArgs_ = 1, then
+ 1. If _numberOfArgs_ = 1, then
1. Let _len_ be _values_[0].
1. Let _array_ be ! ArrayCreate(0, _proto_).
1. If _len_ is not a Number, then
@@ -39398,17 +39398,16 @@ Array ( ..._values_ )
1. If SameValueZero(_intLen_, _len_) is *false*, throw a *RangeError* exception.
1. Perform ! Set(_array_, *"length"*, _intLen_, *true*).
1. Return _array_.
- 1. Else,
- 1. Assert: _numberOfArgs_ ≥ 2.
- 1. Let _array_ be ? ArrayCreate(_numberOfArgs_, _proto_).
- 1. Let _k_ be 0.
- 1. Repeat, while _k_ < _numberOfArgs_,
- 1. Let _Pk_ be ! ToString(𝔽(_k_)).
- 1. Let _itemK_ be _values_[_k_].
- 1. Perform ! CreateDataPropertyOrThrow(_array_, _Pk_, _itemK_).
- 1. Set _k_ to _k_ + 1.
- 1. Assert: The mathematical value of _array_'s *"length"* property is _numberOfArgs_.
- 1. Return _array_.
+ 1. Assert: _numberOfArgs_ ≥ 2.
+ 1. Let _array_ be ? ArrayCreate(_numberOfArgs_, _proto_).
+ 1. Let _k_ be 0.
+ 1. Repeat, while _k_ < _numberOfArgs_,
+ 1. Let _Pk_ be ! ToString(𝔽(_k_)).
+ 1. Let _itemK_ be _values_[_k_].
+ 1. Perform ! CreateDataPropertyOrThrow(_array_, _Pk_, _itemK_).
+ 1. Set _k_ to _k_ + 1.
+ 1. Assert: The mathematical value of _array_'s *"length"* property is _numberOfArgs_.
+ 1. Return _array_.
@@ -42311,30 +42310,27 @@ _TypedArray_ ( ..._args_ )
1. Let _numberOfArgs_ be the number of elements in _args_.
1. If _numberOfArgs_ = 0, then
1. Return ? AllocateTypedArray(_constructorName_, NewTarget, _proto_, 0).
- 1. Else,
- 1. Let _firstArgument_ be _args_[0].
- 1. If _firstArgument_ is an Object, then
- 1. Let _O_ be ? AllocateTypedArray(_constructorName_, NewTarget, _proto_).
- 1. If _firstArgument_ has a [[TypedArrayName]] internal slot, then
- 1. Perform ? InitializeTypedArrayFromTypedArray(_O_, _firstArgument_).
- 1. Else if _firstArgument_ has an [[ArrayBufferData]] internal slot, then
- 1. If _numberOfArgs_ > 1, let _byteOffset_ be _args_[1]; else let _byteOffset_ be *undefined*.
- 1. If _numberOfArgs_ > 2, let _length_ be _args_[2]; else let _length_ be *undefined*.
- 1. Perform ? InitializeTypedArrayFromArrayBuffer(_O_, _firstArgument_, _byteOffset_, _length_).
- 1. Else,
- 1. Assert: _firstArgument_ is an Object and _firstArgument_ does not have either a [[TypedArrayName]] or an [[ArrayBufferData]] internal slot.
- 1. Let _usingIterator_ be ? GetMethod(_firstArgument_, %Symbol.iterator%).
- 1. If _usingIterator_ is not *undefined*, then
- 1. Let _values_ be ? IteratorToList(? GetIteratorFromMethod(_firstArgument_, _usingIterator_)).
- 1. Perform ? InitializeTypedArrayFromList(_O_, _values_).
- 1. Else,
- 1. NOTE: _firstArgument_ is not an iterable object, so assume it is already an array-like object.
- 1. Perform ? InitializeTypedArrayFromArrayLike(_O_, _firstArgument_).
- 1. Return _O_.
+ 1. Let _firstArgument_ be _args_[0].
+ 1. If _firstArgument_ is an Object, then
+ 1. Let _O_ be ? AllocateTypedArray(_constructorName_, NewTarget, _proto_).
+ 1. If _firstArgument_ has a [[TypedArrayName]] internal slot, then
+ 1. Perform ? InitializeTypedArrayFromTypedArray(_O_, _firstArgument_).
+ 1. Else if _firstArgument_ has an [[ArrayBufferData]] internal slot, then
+ 1. If _numberOfArgs_ > 1, let _byteOffset_ be _args_[1]; else let _byteOffset_ be *undefined*.
+ 1. If _numberOfArgs_ > 2, let _length_ be _args_[2]; else let _length_ be *undefined*.
+ 1. Perform ? InitializeTypedArrayFromArrayBuffer(_O_, _firstArgument_, _byteOffset_, _length_).
1. Else,
- 1. Assert: _firstArgument_ is not an Object.
- 1. Let _elementLength_ be ? ToIndex(_firstArgument_).
- 1. Return ? AllocateTypedArray(_constructorName_, NewTarget, _proto_, _elementLength_).
+ 1. Let _usingIterator_ be ? GetMethod(_firstArgument_, %Symbol.iterator%).
+ 1. If _usingIterator_ is not *undefined*, then
+ 1. Let _values_ be ? IteratorToList(? GetIteratorFromMethod(_firstArgument_, _usingIterator_)).
+ 1. Perform ? InitializeTypedArrayFromList(_O_, _values_).
+ 1. Else,
+ 1. NOTE: _firstArgument_ is not an iterable object, so assume it is already an array-like object.
+ 1. Perform ? InitializeTypedArrayFromArrayLike(_O_, _firstArgument_).
+ 1. Return _O_.
+ 1. Assert: _firstArgument_ is not an Object.
+ 1. Let _elementLength_ be ? ToIndex(_firstArgument_).
+ 1. Return ? AllocateTypedArray(_constructorName_, NewTarget, _proto_, _elementLength_).