| Index: src/bootstrapper.cc
|
| diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
|
| index f76aa35bbea0674adbc27d5b3da24a21c7fae67d..9c60a0b24a60588789827b48c8f20e033f2dc60a 100644
|
| --- a/src/bootstrapper.cc
|
| +++ b/src/bootstrapper.cc
|
| @@ -597,6 +597,15 @@ Handle<JSFunction> Genesis::CreateEmptyFunction(Isolate* isolate) {
|
| native_context()->set_initial_array_prototype(*object_function_prototype);
|
| Accessors::FunctionSetPrototype(object_fun, object_function_prototype)
|
| .Assert();
|
| +
|
| + // Set up the map for Object.create(null) instances.
|
| + Handle<Map> slow_object_with_null_prototype_map =
|
| + Map::CopyInitialMap(handle(object_fun->initial_map(), isolate));
|
| + slow_object_with_null_prototype_map->set_dictionary_map(true);
|
| + Map::SetPrototype(slow_object_with_null_prototype_map,
|
| + isolate->factory()->null_value());
|
| + native_context()->set_slow_object_with_null_prototype_map(
|
| + *slow_object_with_null_prototype_map);
|
| }
|
|
|
| // Allocate the empty function as the prototype for function - ES6 19.2.3
|
| @@ -4050,20 +4059,13 @@ bool Genesis::InstallNatives(GlobalContextType context_type) {
|
|
|
| // Store the map for the %ObjectPrototype% after the natives has been compiled
|
| // and the Object function has been set up.
|
| - Handle<JSFunction> object_function(native_context()->object_function());
|
| - DCHECK(JSObject::cast(object_function->initial_map()->prototype())
|
| - ->HasFastProperties());
|
| - native_context()->set_object_function_prototype_map(
|
| - HeapObject::cast(object_function->initial_map()->prototype())->map());
|
| -
|
| - // Set up the map for Object.create(null) instances.
|
| - Handle<Map> slow_object_with_null_prototype_map =
|
| - Map::CopyInitialMap(handle(object_function->initial_map(), isolate()));
|
| - slow_object_with_null_prototype_map->set_dictionary_map(true);
|
| - Map::SetPrototype(slow_object_with_null_prototype_map,
|
| - isolate()->factory()->null_value());
|
| - native_context()->set_slow_object_with_null_prototype_map(
|
| - *slow_object_with_null_prototype_map);
|
| + {
|
| + Handle<JSFunction> object_function(native_context()->object_function());
|
| + DCHECK(JSObject::cast(object_function->initial_map()->prototype())
|
| + ->HasFastProperties());
|
| + native_context()->set_object_function_prototype_map(
|
| + HeapObject::cast(object_function->initial_map()->prototype())->map());
|
| + }
|
|
|
| // Store the map for the %StringPrototype% after the natives has been compiled
|
| // and the String function has been set up.
|
|
|