| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index 1d3b022c71caed782881e05f9c8c7886b3e8e769..70d731ca290ef6f69c065aa9c6c150e5b893deeb 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -4793,9 +4793,15 @@ void JSObject::TransformToFastProperties(Handle<JSObject> object,
|
|
|
|
|
| void JSObject::ResetElements(Handle<JSObject> object) {
|
| - Heap* heap = object->GetIsolate()->heap();
|
| - CHECK(object->map() != heap->sloppy_arguments_elements_map());
|
| - object->set_elements(object->map()->GetInitialElements());
|
| + Isolate* isolate = object->GetIsolate();
|
| + CHECK(object->map() != isolate->heap()->sloppy_arguments_elements_map());
|
| + if (object->map()->has_dictionary_elements()) {
|
| + Handle<SeededNumberDictionary> new_elements =
|
| + SeededNumberDictionary::New(isolate, 0);
|
| + object->set_elements(*new_elements);
|
| + } else {
|
| + object->set_elements(object->map()->GetInitialElements());
|
| + }
|
| }
|
|
|
|
|
|
|