| Index: src/hydrogen.cc
|
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
|
| index 7d120b7f81749248831427c13e952e86df40e850..cdc71839b1abee55f0f867fb713441b40f24cfc5 100644
|
| --- a/src/hydrogen.cc
|
| +++ b/src/hydrogen.cc
|
| @@ -8376,16 +8376,16 @@ HInstruction* HOptimizedGraphBuilder::BuildFastLiteral(
|
| HInstruction* target = NULL;
|
| HInstruction* data_target = NULL;
|
|
|
| - HAllocate::Flags flags = HAllocate::DefaultFlags();
|
| + ElementsKind kind = boilerplate_object->map()->elements_kind();
|
|
|
| if (isolate()->heap()->ShouldGloballyPretenure()) {
|
| if (data_size != 0) {
|
| HAllocate::Flags data_flags =
|
| - static_cast<HAllocate::Flags>(HAllocate::DefaultFlags() |
|
| + static_cast<HAllocate::Flags>(HAllocate::DefaultFlags(kind) |
|
| HAllocate::CAN_ALLOCATE_IN_OLD_DATA_SPACE);
|
| HValue* size_in_bytes = Add<HConstant>(data_size);
|
| - data_target = Add<HAllocate>(context, size_in_bytes,
|
| - HType::JSObject(), data_flags);
|
| + data_target = Add<HAllocate>(context, size_in_bytes, HType::JSObject(),
|
| + data_flags);
|
| Handle<Map> free_space_map = isolate()->factory()->free_space_map();
|
| AddStoreMapConstant(data_target, free_space_map);
|
| HObjectAccess access =
|
| @@ -8393,12 +8393,15 @@ HInstruction* HOptimizedGraphBuilder::BuildFastLiteral(
|
| AddStore(data_target, access, size_in_bytes);
|
| }
|
| if (pointer_size != 0) {
|
| - flags = static_cast<HAllocate::Flags>(
|
| - flags | HAllocate::CAN_ALLOCATE_IN_OLD_POINTER_SPACE);
|
| + HAllocate::Flags pointer_flags =
|
| + static_cast<HAllocate::Flags>(HAllocate::DefaultFlags() |
|
| + HAllocate::CAN_ALLOCATE_IN_OLD_POINTER_SPACE);
|
| HValue* size_in_bytes = Add<HConstant>(pointer_size);
|
| - target = Add<HAllocate>(context, size_in_bytes, HType::JSObject(), flags);
|
| + target = Add<HAllocate>(context, size_in_bytes, HType::JSObject(),
|
| + pointer_flags);
|
| }
|
| } else {
|
| + HAllocate::Flags flags = HAllocate::DefaultFlags(kind);
|
| HValue* size_in_bytes = Add<HConstant>(data_size + pointer_size);
|
| target = Add<HAllocate>(context, size_in_bytes, HType::JSObject(), flags);
|
| }
|
|
|