@@ -50,7 +50,7 @@ copyright: false
50
50
1. Let _error_ be ThrowCompletion(a newly created *RangeError* object).
51
51
1. Return ? IteratorClose(_iterated_, _error_).
52
52
1. If _undersized_ is *undefined*, set _undersized_ to *"skip"*.
53
- 1. If _undersized_ is neither *"skip"* nor *"truncate"*, then
53
+ 1. If _undersized_ is not one of *"skip"*, *"truncate"*, or *"throw "*, then
54
54
1. Let _error_ be ThrowCompletion(a newly created *TypeError* object).
55
55
1. Return ? IteratorClose(_iterated_, _error_).
56
56
1. Set _iterated_ to ? GetIteratorDirect(_O_).
@@ -59,8 +59,13 @@ copyright: false
59
59
1. Repeat,
60
60
1. Let _value_ be ? IteratorStepValue(_iterated_).
61
61
1. If _value_ is ~done~, then
62
- 1. If _undersized_ is *"truncate"*, _buffer_ is not empty, and the number of elements in _buffer_ < ℝ(_windowSize_), then
63
- 1. Perform Completion(Yield(CreateArrayFromList(_buffer_))).
62
+ 1. If _buffer_ is not empty and the number of elements in _buffer_ < ℝ(_windowSize_), then
63
+ 1. If _undersized_ is *"truncate"*, then
64
+ 1. Perform Completion(Yield(CreateArrayFromList(_buffer_))).
65
+ 1. Else if _undersized_ is *"throw"*, then
66
+ 1. Throw a newly created *RangeError* object.
67
+ 1. Else,
68
+ 1. Assert: _undersized_ is *"skip"*.
64
69
1. Return ReturnCompletion(*undefined*).
65
70
1. If the number of elements in _buffer_ is ℝ(_windowSize_), then
66
71
1. Remove the first element from _buffer_.
0 commit comments