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
This commit is contained in:
parent
2afcfc0b0e
commit
8d1504b238
@ -9910,12 +9910,13 @@ HInstruction* HOptimizedGraphBuilder::BuildFastLiteral(
|
||||
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| together if they are pre-tenured.
|
||||
if (pretenure_flag == TENURED) {
|
||||
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 {
|
||||
|
Loading…
Reference in New Issue
Block a user