| Index: src/arm/lithium-codegen-arm.cc | 
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc | 
| index 1e98f6704ba4a16fc57100cc53690352a5d98985..f89cf76334f6819a6b3377f2ad40f70e761e3af2 100644 | 
| --- a/src/arm/lithium-codegen-arm.cc | 
| +++ b/src/arm/lithium-codegen-arm.cc | 
| @@ -3342,6 +3342,13 @@ void LCodeGen::DoStoreKeyedFastElement(LStoreKeyedFastElement* instr) { | 
| Register key = instr->key()->IsRegister() ? ToRegister(instr->key()) : no_reg; | 
| Register scratch = scratch0(); | 
|  | 
| +  // This instruction cannot handle the FAST_SMI_ONLY_ELEMENTS -> FAST_ELEMENTS | 
| +  // conversion, so it deopts in that case. | 
| +  if (instr->hydrogen()->ValueNeedsSmiCheck()) { | 
| +    __ tst(value, Operand(kSmiTagMask)); | 
| +    DeoptimizeIf(ne, instr->environment()); | 
| +  } | 
| + | 
| // Do the store. | 
| if (instr->key()->IsConstantOperand()) { | 
| ASSERT(!instr->hydrogen()->NeedsWriteBarrier()); | 
|  |