| Index: src/hydrogen.cc
|
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
|
| index 184d2ff4d874709669517cbbc2780c8e470e17df..cde6b09f76c5d52a5320a9af150f7c5f878df0e5 100644
|
| --- a/src/hydrogen.cc
|
| +++ b/src/hydrogen.cc
|
| @@ -8196,8 +8196,9 @@ HInstruction* HOptimizedGraphBuilder::BuildFastLiteral(
|
| int object_size = boilerplate_object->map()->instance_size();
|
| int object_offset = object_size;
|
|
|
| + InstanceType instance_type = boilerplate_object->map()->instance_type();
|
| bool create_allocation_site_info = mode == TRACK_ALLOCATION_SITE &&
|
| - AllocationSite::CanTrack(boilerplate_object->map()->instance_type());
|
| + AllocationSite::CanTrack(instance_type);
|
|
|
| // If using allocation sites, then the payload on the site should already
|
| // be filled in as a valid (boilerplate) array.
|
| @@ -8208,9 +8209,12 @@ HInstruction* HOptimizedGraphBuilder::BuildFastLiteral(
|
| object_size += AllocationMemento::kSize;
|
| }
|
|
|
| + ASSERT(instance_type == JS_ARRAY_TYPE || instance_type == JS_OBJECT_TYPE);
|
| + HType type = instance_type == JS_ARRAY_TYPE
|
| + ? HType::JSArray() : HType::JSObject();
|
| HValue* object_size_constant = Add<HConstant>(object_size);
|
| - HInstruction* object = Add<HAllocate>(object_size_constant, HType::JSObject(),
|
| - isolate()->heap()->GetPretenureMode(), JS_OBJECT_TYPE);
|
| + HInstruction* object = Add<HAllocate>(object_size_constant, type,
|
| + isolate()->heap()->GetPretenureMode(), instance_type);
|
|
|
|
|
| BuildEmitObjectHeader(boilerplate_object, object);
|
|
|