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