summaryrefslogtreecommitdiff
path: root/chromium/v8/src/objects/js-array.tq
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/v8/src/objects/js-array.tq
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-chromium-85-based.tar.gz
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/v8/src/objects/js-array.tq')
-rw-r--r--chromium/v8/src/objects/js-array.tq20
1 files changed, 19 insertions, 1 deletions
diff --git a/chromium/v8/src/objects/js-array.tq b/chromium/v8/src/objects/js-array.tq
index 0cba7203a5c..dcffc68cba0 100644
--- a/chromium/v8/src/objects/js-array.tq
+++ b/chromium/v8/src/objects/js-array.tq
@@ -2,10 +2,28 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+extern enum IterationKind extends uint31
+constexpr 'IterationKind' { kKeys, kValues, kEntries }
+
extern class JSArrayIterator extends JSObject {
iterated_object: JSReceiver;
next_index: Number;
- kind: Smi;
+ kind: SmiTagged<IterationKind>;
+}
+
+// Perform CreateArrayIterator (ES #sec-createarrayiterator).
+@export
+macro CreateArrayIterator(implicit context: NativeContext)(
+ array: JSReceiver, kind: constexpr IterationKind): JSArrayIterator {
+ return new JSArrayIterator{
+ map: UnsafeCast<Map>(
+ context[NativeContextSlot::INITIAL_ARRAY_ITERATOR_MAP_INDEX]),
+ properties_or_hash: kEmptyFixedArray,
+ elements: kEmptyFixedArray,
+ iterated_object: array,
+ next_index: 0,
+ kind: SmiTag<IterationKind>(kind)
+ };
}
extern class JSArray extends JSObject {