Index: src/arm/full-codegen-arm.cc |
diff --git a/src/arm/full-codegen-arm.cc b/src/arm/full-codegen-arm.cc |
index b6f3e6760cc89a88e6bc096ca02e3763278a13f7..0c4a7f08b0e9d17cfe3e1eb71ca6b13d0082520d 100644 |
--- a/src/arm/full-codegen-arm.cc |
+++ b/src/arm/full-codegen-arm.cc |
@@ -1733,6 +1733,14 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) { |
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_use_allocation_site_info) { |
+ mode = FastCloneShallowArrayStub::CLONE_ANY_ELEMENTS_WITH_ALLOCATION_INFO; |
+ } |
+ |
FastCloneShallowArrayStub stub(mode, length); |
__ CallStub(&stub); |
} |