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()); |
+ } |
} |