Index: src/code-stubs.cc |
diff --git a/src/code-stubs.cc b/src/code-stubs.cc |
index c7d4c805d0c87824ecd1cbdb23afc49dfa710f02..7b1d1b45d1efbc1d3c3498b12ba086d8d4bb0139 100644 |
--- a/src/code-stubs.cc |
+++ b/src/code-stubs.cc |
@@ -570,15 +570,16 @@ bool ToBooleanStub::Types::CanBeUndetectable() const { |
void ElementsTransitionAndStoreStub::Generate(MacroAssembler* masm) { |
Label fail; |
+ AllocationSiteMode mode = AllocationSiteInfo::GetMode(from_, to_); |
ASSERT(!IsFastHoleyElementsKind(from_) || IsFastHoleyElementsKind(to_)); |
if (!FLAG_trace_elements_transitions) { |
if (IsFastSmiOrObjectElementsKind(to_)) { |
if (IsFastSmiOrObjectElementsKind(from_)) { |
ElementsTransitionGenerator:: |
- GenerateMapChangeElementsTransition(masm); |
+ GenerateMapChangeElementsTransition(masm, mode, &fail); |
} else if (IsFastDoubleElementsKind(from_)) { |
ASSERT(!IsFastSmiElementsKind(to_)); |
- ElementsTransitionGenerator::GenerateDoubleToObject(masm, &fail); |
+ ElementsTransitionGenerator::GenerateDoubleToObject(masm, mode, &fail); |
} else { |
UNREACHABLE(); |
} |
@@ -588,14 +589,14 @@ void ElementsTransitionAndStoreStub::Generate(MacroAssembler* masm) { |
grow_mode_); |
} else if (IsFastSmiElementsKind(from_) && |
IsFastDoubleElementsKind(to_)) { |
- ElementsTransitionGenerator::GenerateSmiToDouble(masm, &fail); |
+ ElementsTransitionGenerator::GenerateSmiToDouble(masm, mode, &fail); |
KeyedStoreStubCompiler::GenerateStoreFastDoubleElement(masm, |
is_jsarray_, |
grow_mode_); |
} else if (IsFastDoubleElementsKind(from_)) { |
ASSERT(to_ == FAST_HOLEY_DOUBLE_ELEMENTS); |
ElementsTransitionGenerator:: |
- GenerateMapChangeElementsTransition(masm); |
+ GenerateMapChangeElementsTransition(masm, mode, &fail); |
} else { |
UNREACHABLE(); |
} |