| Index: src/hydrogen.cc
|
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
|
| index 478d938cf6fa27d74994d43674af59ca7f05ef41..298496f3a7ea99c272a0467af5c8bd9214b18426 100644
|
| --- a/src/hydrogen.cc
|
| +++ b/src/hydrogen.cc
|
| @@ -9906,6 +9906,13 @@ HInstruction* HOptimizedGraphBuilder::BuildFastLiteral(
|
| if (elements_size > 0) {
|
| HValue* object_elements_size = Add<HConstant>(elements_size);
|
| if (boilerplate_object->HasFastDoubleElements()) {
|
| + // Allocation folding will not be able to fold |object| and
|
| + // |object_elements| together in some cases, so initialize
|
| + // elements with the undefined to make GC happy.
|
| + HConstant* empty_fixed_array = Add<HConstant>(
|
| + isolate()->factory()->empty_fixed_array());
|
| + Add<HStoreNamedField>(object, HObjectAccess::ForElementsPointer(),
|
| + empty_fixed_array, INITIALIZING_STORE);
|
| object_elements = Add<HAllocate>(object_elements_size, HType::JSObject(),
|
| pretenure_flag, FIXED_DOUBLE_ARRAY_TYPE, site_context->current());
|
| } else {
|
|
|