Index: src/x64/full-codegen-x64.cc |
diff --git a/src/x64/full-codegen-x64.cc b/src/x64/full-codegen-x64.cc |
index e0aeb8e3648fc922abd1bc5cda86cd5e5c9c4640..e98a99b6dcc4e708f6cb4209c4fda8ef494075c3 100644 |
--- a/src/x64/full-codegen-x64.cc |
+++ b/src/x64/full-codegen-x64.cc |
@@ -1703,6 +1703,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); |
} |