You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<p>This method performs the following steps when called:</p>
70
+
<emu-alg>
71
+
1. If _iterables_ is not an Object, throw a *TypeError* exception.
72
+
1. Set _options_ to ? GetOptionsObject(_options_).
73
+
1. Let _longest_ be ? GetOption(_options_, *"longest"*, ~boolean~, ~empty~, *false*).
74
+
1. Let _strict_ be ? GetOption(_options_, *"strict"*, ~boolean~, ~empty~, *false*).
75
+
1. If _longest_ is *true* and _strict_ is *true*, throw a *TypeError* exception.
76
+
1. Let _mode_ be ~shortest~.
77
+
1. Let _paddingOption_ be *undefined*.
78
+
1. If _longest_ is *true*, then
79
+
1. Set _mode_ to ~longest~.
80
+
1. Set _paddingOption_ to ? Get(_options_, *"padding"*).
81
+
1. If _strict_ is *true*, set _mode_ to ~strict~.
82
+
1. Let _iters_ be a new empty List.
83
+
1. Let _openIters_ be a new empty List.
84
+
1. Let _padding_ be a new empty List.
85
+
1. Let _allKeys_ be ? _iterables_.[[OwnPropertyKeys]]().
86
+
1. Let _keys_ be a new empty List.
87
+
1. For each element _key_ of _allKeys_, do
88
+
1. Let _desc_ be ? _iterables_.[[GetOwnProperty]](_key_).
89
+
1. If _desc_ is not *undefined* and _desc_.[[Enumerable]] is *true*, then
90
+
1. Let _value_ be *undefined*.
91
+
1. If IsDataDescriptor(_desc_) is *true*, then
92
+
1. Set _value_ to _desc_.[[Value]].
91
93
1. Else,
92
-
1. For each element _key_ of _keys_, do
93
-
1. Let _value_ be Completion(Get(_paddingOption_, _key_)).
94
-
1. IfAbruptCloseIterators(_value_, _openIters_).
95
-
1. Append _value_ to _padding_.
96
-
1. Let _finishResults_ be a new Abstract Closure with parameters (_results_) that captures _keys_ and _iterCount_ and performs the following steps when called:
97
-
1. Let _obj_ be OrdinaryObjectCreate(*null*).
98
-
1. For each integer _i_ such that 0 ≤ _i_ < _iterCount_, do
1. Let _iter_ be Completion(GetIteratorFlattenable(_value_, ~iterate-strings~)).
103
+
1. IfAbruptCloseIterators(_iter_, _openIters_).
104
+
1. Append _iter_ to _iters_.
105
+
1. Append _iter_ to _openIters_.
106
+
1. Let _iterCount_ be the number of elements in _iters_.
107
+
1. If _mode_ is ~longest~, then
108
+
1. If _paddingOption_ is *undefined*, then
109
+
1. Perform the following steps _iterCount_ times:
110
+
1. Append *undefined* to _padding_.
111
+
1. Else,
112
+
1. For each element _key_ of _keys_, do
113
+
1. Let _value_ be Completion(Get(_paddingOption_, _key_)).
114
+
1. IfAbruptCloseIterators(_value_, _openIters_).
115
+
1. Append _value_ to _padding_.
116
+
1. Let _finishResults_ be a new Abstract Closure with parameters (_results_) that captures _keys_ and _iterCount_ and performs the following steps when called:
117
+
1. Let _obj_ be OrdinaryObjectCreate(*null*).
118
+
1. For each integer _i_ such that 0 ≤ _i_ < _iterCount_, do
_mode_: either ~shortest~, ~longest~, or ~strict~,
131
+
_padding_: a List of ECMAScript language values,
132
+
_finishResults_: an Abstract Closure that takes a List of ECMAScript values and returns an ECMAScript value,
133
+
): a Generator
134
+
</h1>
135
+
<dl class="header">
136
+
<dt>description</dt>
137
+
<dd>TODO</dd>
138
+
</dl>
139
+
<emu-alg>
140
+
1. Let _iterCount_ be the number of elements in _iters_.
101
141
1. Let _closure_ be a new Abstract Closure with no parameters that captures _iters_, _iterCount_, _openIters_, _mode_, _padding_, and _finishResults_, and performs the following steps when called:
0 commit comments