Index: src/bootstrapper.cc |
diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc |
index 9e564a8348a79044a4c7d32316490796de6d93ff..5abd954972aa610d3e8fca32a9c473249bb7c412 100644 |
--- a/src/bootstrapper.cc |
+++ b/src/bootstrapper.cc |
@@ -483,12 +483,14 @@ Handle<JSFunction> Genesis::CreateEmptyFunction(Isolate* isolate) { |
{ // --- O b j e c t --- |
Handle<JSFunction> object_fun = factory->NewFunction(object_name); |
+ int unused = JSObject::kInitialGlobalObjectUnusedPropertiesCount; |
+ int instance_size = JSObject::kHeaderSize + kPointerSize * unused; |
Handle<Map> object_function_map = |
- factory->NewMap(JS_OBJECT_TYPE, JSObject::kHeaderSize); |
+ factory->NewMap(JS_OBJECT_TYPE, instance_size); |
+ object_function_map->set_inobject_properties(unused); |
JSFunction::SetInitialMap(object_fun, object_function_map, |
isolate->factory()->null_value()); |
- object_function_map->set_unused_property_fields( |
- JSObject::kInitialGlobalObjectUnusedPropertiesCount); |
+ object_function_map->set_unused_property_fields(unused); |
native_context()->set_object_function(*object_fun); |
@@ -1153,11 +1155,8 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> global_object, |
{ // Set up the iterator result object |
STATIC_ASSERT(JSGeneratorObject::kResultPropertyCount == 2); |
Handle<JSFunction> object_function(native_context()->object_function()); |
- DCHECK(object_function->initial_map()->inobject_properties() == 0); |
Handle<Map> iterator_result_map = |
Map::Create(object_function, JSGeneratorObject::kResultPropertyCount); |
- DCHECK(iterator_result_map->inobject_properties() == |
- JSGeneratorObject::kResultPropertyCount); |
Map::EnsureDescriptorSlack(iterator_result_map, |
JSGeneratorObject::kResultPropertyCount); |
@@ -1171,7 +1170,12 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> global_object, |
NONE, Representation::Tagged()); |
iterator_result_map->AppendDescriptor(&done_descr); |
+ iterator_result_map->set_instance_size(JSGeneratorObject::kResultSize); |
iterator_result_map->set_unused_property_fields(0); |
+ iterator_result_map->set_inobject_properties( |
+ JSGeneratorObject::kResultPropertyCount); |
+ iterator_result_map->set_pre_allocated_property_fields( |
+ JSGeneratorObject::kResultPropertyCount); |
DCHECK_EQ(JSGeneratorObject::kResultSize, |
iterator_result_map->instance_size()); |
native_context()->set_iterator_result_map(*iterator_result_map); |