| Index: src/ia32/lithium-codegen-ia32.cc | 
| diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc | 
| index fb674297967769dc60ee89d3d3c772a06e63964e..310cd8071f8a931338c6930c8dbf989ac52da653 100644 | 
| --- a/src/ia32/lithium-codegen-ia32.cc | 
| +++ b/src/ia32/lithium-codegen-ia32.cc | 
| @@ -3189,6 +3189,13 @@ void LCodeGen::DoStoreKeyedFastElement(LStoreKeyedFastElement* instr) { | 
| Register elements = ToRegister(instr->object()); | 
| Register key = instr->key()->IsRegister() ? ToRegister(instr->key()) : no_reg; | 
|  | 
| +  // This instruction cannot handle the FAST_SMI_ONLY_ELEMENTS -> FAST_ELEMENTS | 
| +  // conversion, so it deopts in that case. | 
| +  if (instr->hydrogen()->ValueNeedsSmiCheck()) { | 
| +    __ test(value, Immediate(kSmiTagMask)); | 
| +    DeoptimizeIf(not_zero, instr->environment()); | 
| +  } | 
| + | 
| // Do the store. | 
| if (instr->key()->IsConstantOperand()) { | 
| ASSERT(!instr->hydrogen()->NeedsWriteBarrier()); | 
|  |