| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index b668916a57732d859fbb2e6f821319d6ed188520..75b5860f8ef63bf9d45f9b0f917b0f6702b38c04 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -4730,9 +4730,15 @@ void JSObject::MigrateSlowToFast(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());
|
| + }
|
| }
|
|
|
|
|
|
|