Index: src/runtime/runtime-collections.cc |
diff --git a/src/runtime/runtime-collections.cc b/src/runtime/runtime-collections.cc |
index de1619e62f964406edd7321fe6f47d8fcfd0b630..e6a86d114a7f8d04828f0c049deaa93bc3c14491 100644 |
--- a/src/runtime/runtime-collections.cc |
+++ b/src/runtime/runtime-collections.cc |
@@ -115,6 +115,22 @@ RUNTIME_FUNCTION(Runtime_SetIteratorNext) { |
} |
+// The array returned contains the following information: |
+// 0: HasMore flag |
+// 1: Iteration index |
+// 2: Iteration kind |
+RUNTIME_FUNCTION(Runtime_SetIteratorDetails) { |
+ HandleScope scope(isolate); |
+ DCHECK(args.length() == 1); |
+ CONVERT_ARG_HANDLE_CHECKED(JSSetIterator, holder, 0); |
+ Handle<FixedArray> details = isolate->factory()->NewFixedArray(4); |
+ details->set(0, isolate->heap()->ToBoolean(holder->HasMore())); |
+ details->set(1, holder->index()); |
+ details->set(2, holder->kind()); |
+ return *isolate->factory()->NewJSArrayWithElements(details); |
+} |
+ |
+ |
RUNTIME_FUNCTION(Runtime_MapInitialize) { |
HandleScope scope(isolate); |
DCHECK(args.length() == 1); |
@@ -225,6 +241,22 @@ RUNTIME_FUNCTION(Runtime_MapIteratorClone) { |
} |
+// The array returned contains the following information: |
+// 0: HasMore flag |
+// 1: Iteration index |
+// 2: Iteration kind |
+RUNTIME_FUNCTION(Runtime_MapIteratorDetails) { |
+ HandleScope scope(isolate); |
+ DCHECK(args.length() == 1); |
+ CONVERT_ARG_HANDLE_CHECKED(JSMapIterator, holder, 0); |
+ Handle<FixedArray> details = isolate->factory()->NewFixedArray(4); |
+ details->set(0, isolate->heap()->ToBoolean(holder->HasMore())); |
+ details->set(1, holder->index()); |
+ details->set(2, holder->kind()); |
+ return *isolate->factory()->NewJSArrayWithElements(details); |
+} |
+ |
+ |
RUNTIME_FUNCTION(Runtime_GetWeakMapEntries) { |
HandleScope scope(isolate); |
DCHECK(args.length() == 2); |