| 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();
|
| }
|
|
|