Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index 03bd971a825ce7ceee500e4122265eb8fa70ed5b..ba055405b17692533ec472ca6a76bd7519ea7bc0 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -5590,10 +5590,10 @@ void HOptimizedGraphBuilder::VisitObjectLiteral(ObjectLiteral* expr) { |
if (!boilerplate.is_null() && |
IsFastLiteral(boilerplate, kMaxFastLiteralDepth, &max_properties)) { |
- AllocationSiteUsageContext usage_context(isolate(), site, false); |
- usage_context.EnterNewScope(); |
- literal = BuildFastLiteral(boilerplate, &usage_context); |
- usage_context.ExitScope(site, boilerplate); |
+ AllocationSiteUsageContext site_context(isolate(), site, false); |
+ site_context.EnterNewScope(); |
+ literal = BuildFastLiteral(boilerplate, &site_context); |
+ site_context.ExitScope(site, boilerplate); |
} else { |
NoObservableSideEffectsScope no_effects(this); |
Handle<FixedArray> closure_literals(closure->literals(), isolate()); |
@@ -5754,10 +5754,10 @@ void HOptimizedGraphBuilder::VisitArrayLiteral(ArrayLiteral* expr) { |
if (IsFastLiteral(boilerplate_object, |
kMaxFastLiteralDepth, |
&max_properties)) { |
- AllocationSiteUsageContext usage_context(isolate(), site, false); |
- usage_context.EnterNewScope(); |
- literal = BuildFastLiteral(boilerplate_object, &usage_context); |
- usage_context.ExitScope(site, boilerplate_object); |
+ AllocationSiteUsageContext site_context(isolate(), site, false); |
+ site_context.EnterNewScope(); |
+ literal = BuildFastLiteral(boilerplate_object, &site_context); |
+ site_context.ExitScope(site, boilerplate_object); |
} else { |
NoObservableSideEffectsScope no_effects(this); |
// Boilerplate already exists and constant elements are never accessed, |
@@ -11081,16 +11081,16 @@ HInstruction* HOptimizedGraphBuilder::BuildFastLiteral( |
boilerplate_object->map()->instance_size()); |
PretenureFlag pretenure_flag = NOT_TENURED; |
- Handle<AllocationSite> site(site_context->current()); |
+ Handle<AllocationSite> current_site(*site_context->current(), isolate()); |
if (FLAG_allocation_site_pretenuring) { |
- pretenure_flag = site_context->current()->GetPretenureMode(); |
- AllocationSite::RegisterForDeoptOnTenureChange(site, top_info()); |
+ pretenure_flag = current_site->GetPretenureMode(); |
+ AllocationSite::RegisterForDeoptOnTenureChange(current_site, top_info()); |
} |
- AllocationSite::RegisterForDeoptOnTransitionChange(site, top_info()); |
+ AllocationSite::RegisterForDeoptOnTransitionChange(current_site, top_info()); |
- HInstruction* object = Add<HAllocate>(object_size_constant, type, |
- pretenure_flag, instance_type, site_context->current()); |
+ HInstruction* object = Add<HAllocate>( |
+ object_size_constant, type, pretenure_flag, instance_type, current_site); |
// If allocation folding reaches Page::kMaxRegularHeapObjectSize the |
// elements array may not get folded into the object. Hence, we set the |
@@ -11125,9 +11125,9 @@ HInstruction* HOptimizedGraphBuilder::BuildFastLiteral( |
HValue* object_elements_size = Add<HConstant>(elements_size); |
InstanceType instance_type = boilerplate_object->HasFastDoubleElements() |
? FIXED_DOUBLE_ARRAY_TYPE : FIXED_ARRAY_TYPE; |
- object_elements = Add<HAllocate>( |
- object_elements_size, HType::HeapObject(), |
- pretenure_flag, instance_type, site_context->current()); |
+ object_elements = |
+ Add<HAllocate>(object_elements_size, HType::HeapObject(), |
+ pretenure_flag, instance_type, current_site); |
} |
BuildInitElementsInObjectHeader(boilerplate_object, object, object_elements); |