Index: src/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime.cc |
index 495cccbd450dc8beac94870f253efffd1b8b2baa..02fb9b7c74046b7effafa5216d1ab8928cc4321a 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime.cc |
@@ -3925,7 +3925,12 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DefineOrRedefineDataProperty) { |
Handle<NumberDictionary> extended_dictionary = |
NumberDictionarySet(dictionary, index, obj_value, details); |
if (*extended_dictionary != *dictionary) { |
- js_object->set_elements(*extended_dictionary); |
+ if (js_object->GetElementsKind() == |
+ JSObject::NON_STRICT_ARGUMENTS_ELEMENTS) { |
+ FixedArray::cast(js_object->elements())->set(1, *extended_dictionary); |
+ } else { |
+ js_object->set_elements(*extended_dictionary); |
+ } |
} |
return *obj_value; |
} |