Index: src/ia32/full-codegen-ia32.cc |
diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc |
index 95e95d4126599679e07c84db2d851ac7330ffc60..02044216d413f4245e619b06ad9acc055d0d6418 100644 |
--- a/src/ia32/full-codegen-ia32.cc |
+++ b/src/ia32/full-codegen-ia32.cc |
@@ -1678,6 +1678,15 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) { |
FastCloneShallowArrayStub::Mode mode = has_constant_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 stub(mode, length); |
__ CallStub(&stub); |
} |