| Index: src/heap.cc
|
| ===================================================================
|
| --- src/heap.cc (revision 2317)
|
| +++ src/heap.cc (working copy)
|
| @@ -1558,7 +1558,7 @@
|
|
|
|
|
| Object* Heap::AllocateSharedFunctionInfo(Object* name) {
|
| - Object* result = Allocate(shared_function_info_map(), NEW_SPACE);
|
| + Object* result = Allocate(shared_function_info_map(), OLD_POINTER_SPACE);
|
| if (result->IsFailure()) return result;
|
|
|
| SharedFunctionInfo* share = SharedFunctionInfo::cast(result);
|
| @@ -2050,7 +2050,7 @@
|
|
|
| // Allocate the backing storage for the properties.
|
| int prop_size = map->unused_property_fields() - map->inobject_properties();
|
| - Object* properties = AllocateFixedArray(prop_size);
|
| + Object* properties = AllocateFixedArray(prop_size, pretenure);
|
| if (properties->IsFailure()) return properties;
|
|
|
| // Allocate the JSObject.
|
| @@ -2080,19 +2080,24 @@
|
| // Allocate the object based on the constructors initial map.
|
| Object* result =
|
| AllocateJSObjectFromMap(constructor->initial_map(), pretenure);
|
| - // Make sure result is NOT a JS global object if valid.
|
| - ASSERT(result->IsFailure() || !result->IsJSGlobalObject());
|
| + // Make sure result is NOT a global object if valid.
|
| + ASSERT(result->IsFailure() || !result->IsGlobalObject());
|
| return result;
|
| }
|
|
|
|
|
| -Object* Heap::AllocateJSGlobalObject(JSFunction* constructor) {
|
| +Object* Heap::AllocateGlobalObject(JSFunction* constructor) {
|
| ASSERT(constructor->has_initial_map());
|
| // Make sure no field properties are described in the initial map.
|
| // This guarantees us that normalizing the properties does not
|
| // require us to change property values to JSGlobalPropertyCells.
|
| ASSERT(constructor->initial_map()->NextFreePropertyIndex() == 0);
|
|
|
| + // Make sure we don't have a ton of pre-allocated slots in the
|
| + // global objects. They will be unused once we normalize the object.
|
| + ASSERT(constructor->initial_map()->unused_property_fields() == 0);
|
| + ASSERT(constructor->initial_map()->inobject_properties() == 0);
|
| +
|
| // Allocate the object based on the constructors initial map.
|
| Object* result = AllocateJSObjectFromMap(constructor->initial_map(), TENURED);
|
| if (result->IsFailure()) return result;
|
| @@ -2102,8 +2107,8 @@
|
| result = global->NormalizeProperties(CLEAR_INOBJECT_PROPERTIES);
|
| if (result->IsFailure()) return result;
|
|
|
| - // Make sure result is a JS global object with properties in dictionary.
|
| - ASSERT(global->IsJSGlobalObject());
|
| + // Make sure result is a global object with properties in dictionary.
|
| + ASSERT(global->IsGlobalObject());
|
| ASSERT(!global->HasFastProperties());
|
| return global;
|
| }
|
| @@ -2182,7 +2187,7 @@
|
|
|
| // Allocate the backing storage for the properties.
|
| int prop_size = map->unused_property_fields() - map->inobject_properties();
|
| - Object* properties = AllocateFixedArray(prop_size);
|
| + Object* properties = AllocateFixedArray(prop_size, TENURED);
|
| if (properties->IsFailure()) return properties;
|
|
|
| // Reset the map for the object.
|
|
|