Index: src/runtime/runtime-collections.cc |
diff --git a/src/runtime/runtime-collections.cc b/src/runtime/runtime-collections.cc |
index c4f74183ce4a617f0bff2d5dfebd05812911f395..22e5a9e68c25cd765c5bfbbe83a5c41ebd0840f9 100644 |
--- a/src/runtime/runtime-collections.cc |
+++ b/src/runtime/runtime-collections.cc |
@@ -92,6 +92,20 @@ RUNTIME_FUNCTION(Runtime_SetIteratorInitialize) { |
} |
+RUNTIME_FUNCTION(Runtime_SetIteratorClone) { |
+ HandleScope scope(isolate); |
+ DCHECK(args.length() == 1); |
+ CONVERT_ARG_HANDLE_CHECKED(JSSetIterator, holder, 0); |
+ |
+ Handle<JSSetIterator> result = isolate->factory()->NewJSSetIterator(); |
+ result->set_table(holder->table()); |
+ result->set_index(Smi::FromInt(Smi::cast(holder->index())->value())); |
+ result->set_kind(Smi::FromInt(Smi::cast(holder->kind())->value())); |
+ |
+ return *result; |
+} |
+ |
+ |
RUNTIME_FUNCTION(Runtime_SetIteratorNext) { |
SealHandleScope shs(isolate); |
DCHECK(args.length() == 2); |
@@ -197,6 +211,20 @@ RUNTIME_FUNCTION(Runtime_MapIteratorInitialize) { |
} |
+RUNTIME_FUNCTION(Runtime_MapIteratorClone) { |
+ HandleScope scope(isolate); |
+ DCHECK(args.length() == 1); |
+ CONVERT_ARG_HANDLE_CHECKED(JSMapIterator, holder, 0); |
+ |
+ Handle<JSMapIterator> result = isolate->factory()->NewJSMapIterator(); |
+ result->set_table(holder->table()); |
+ result->set_index(Smi::FromInt(Smi::cast(holder->index())->value())); |
+ result->set_kind(Smi::FromInt(Smi::cast(holder->kind())->value())); |
+ |
+ return *result; |
+} |
+ |
+ |
RUNTIME_FUNCTION(Runtime_GetWeakMapEntries) { |
HandleScope scope(isolate); |
DCHECK(args.length() == 1); |