Index: src/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime.cc |
index 927386289ac392254281077665c980768294f946..bbfd443b7505380b9c04d826dcee6d32abeaec8c 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime.cc |
@@ -6090,6 +6090,11 @@ RUNTIME_FUNCTION(Runtime_GetArgumentsProperty) { |
HandleScope scope(isolate); |
if (raw_key->IsSymbol()) { |
+ Handle<Symbol> symbol = Handle<Symbol>::cast(raw_key); |
+ if (FLAG_harmony_iteration && |
+ symbol->Equals(isolate->native_context()->iterator_symbol())) { |
+ return isolate->native_context()->array_values_iterator(); |
+ } |
// Lookup in the initial Object.prototype object. |
Handle<Object> result; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
@@ -6141,6 +6146,25 @@ RUNTIME_FUNCTION(Runtime_GetArgumentsProperty) { |
} |
+RUNTIME_FUNCTION(Runtime_GetArgumentsBoilerplateObject) { |
+ HandleScope scope(isolate); |
+ ASSERT(args.length() == 1); |
+ CONVERT_SMI_ARG_CHECKED(index, 0); |
+ RUNTIME_ASSERT(isolate->bootstrapper()->IsActive()); |
+ |
+ switch (index) { |
+ case 0: |
+ return isolate->native_context()->sloppy_arguments_boilerplate(); |
+ case 1: |
+ return isolate->native_context()->aliased_arguments_boilerplate(); |
+ case 2: |
+ return isolate->native_context()->strict_arguments_boilerplate(); |
+ default: |
+ return isolate->ThrowIllegalOperation(); |
+ } |
+} |
+ |
+ |
RUNTIME_FUNCTION(Runtime_ToFastProperties) { |
HandleScope scope(isolate); |
ASSERT(args.length() == 1); |