| 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;
|
| }
|
|
|