Index: src/arm/full-codegen-arm.cc |
diff --git a/src/arm/full-codegen-arm.cc b/src/arm/full-codegen-arm.cc |
index 6a97201235876bd2fb80824cac2d6683128401d1..cb83860d6ab96b5e35d938b7ec1462b395825e34 100644 |
--- a/src/arm/full-codegen-arm.cc |
+++ b/src/arm/full-codegen-arm.cc |
@@ -1719,7 +1719,9 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) { |
if (has_fast_elements && constant_elements_values->map() == |
isolate()->heap()->fixed_cow_array_map()) { |
FastCloneShallowArrayStub stub( |
- FastCloneShallowArrayStub::COPY_ON_WRITE_ELEMENTS, length); |
+ FastCloneShallowArrayStub::COPY_ON_WRITE_ELEMENTS, |
+ DONT_TRACK_ALLOCATION_SITE, |
+ length); |
__ CallStub(&stub); |
__ IncrementCounter( |
isolate()->counters()->cow_arrays_created_stub(), 1, r1, r2); |
@@ -1730,19 +1732,17 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) { |
} else { |
ASSERT(IsFastSmiOrObjectElementsKind(constant_elements_kind) || |
FLAG_smi_only_arrays); |
- FastCloneShallowArrayStub::Mode mode = has_fast_elements |
- ? FastCloneShallowArrayStub::CLONE_ELEMENTS |
- : FastCloneShallowArrayStub::CLONE_ANY_ELEMENTS; |
- |
- // Tracking allocation info allows us to pre-transition later if it makes |
- // sense. |
- if (mode == FastCloneShallowArrayStub::CLONE_ANY_ELEMENTS && |
- FLAG_track_allocation_sites) { |
- mode = FastCloneShallowArrayStub:: |
- CLONE_ANY_ELEMENTS_WITH_ALLOCATION_SITE_INFO; |
+ FastCloneShallowArrayStub::Mode mode = |
+ FastCloneShallowArrayStub::CLONE_ANY_ELEMENTS; |
+ AllocationSiteMode allocation_site_mode = FLAG_track_allocation_sites |
+ ? TRACK_ALLOCATION_SITE : DONT_TRACK_ALLOCATION_SITE; |
+ |
+ if (has_fast_elements) { |
+ mode = FastCloneShallowArrayStub::CLONE_ELEMENTS; |
+ allocation_site_mode = DONT_TRACK_ALLOCATION_SITE; |
} |
- FastCloneShallowArrayStub stub(mode, length); |
+ FastCloneShallowArrayStub stub(mode, allocation_site_mode, length); |
__ CallStub(&stub); |
} |