From 8d1504b238112df61f717c661660a445528a1c0f Mon Sep 17 00:00:00 2001 From: "hpayer@chromium.org" Date: Tue, 4 Feb 2014 10:41:16 +0000 Subject: [PATCH] Just initialize elements pointer in fast literal when pre-tenuring. BUG= R=ishell@chromium.org Review URL: https://codereview.chromium.org/148253004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/hydrogen.cc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/hydrogen.cc b/src/hydrogen.cc index 0aa96e8..762ac0e 100644 --- a/src/hydrogen.cc +++ b/src/hydrogen.cc @@ -9910,12 +9910,13 @@ HInstruction* HOptimizedGraphBuilder::BuildFastLiteral( HValue* object_elements_size = Add(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( - isolate()->factory()->empty_fixed_array()); - Add(object, HObjectAccess::ForElementsPointer(), - empty_fixed_array, INITIALIZING_STORE); + // |object_elements| together if they are pre-tenured. + if (pretenure_flag == TENURED) { + HConstant* empty_fixed_array = Add( + isolate()->factory()->empty_fixed_array()); + Add(object, HObjectAccess::ForElementsPointer(), + empty_fixed_array, INITIALIZING_STORE); + } object_elements = Add(object_elements_size, HType::JSObject(), pretenure_flag, FIXED_DOUBLE_ARRAY_TYPE, site_context->current()); } else { -- 2.7.4