| Index: src/arm/lithium-codegen-arm.cc | 
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc | 
| index 8f10008e88d933cf82c2beb77947f7b33510bffb..38641874b6c3c45f0df0ed9d5eb4bde77bf3ec03 100644 | 
| --- a/src/arm/lithium-codegen-arm.cc | 
| +++ b/src/arm/lithium-codegen-arm.cc | 
| @@ -2753,9 +2753,14 @@ void LCodeGen::DoLoadKeyedFastElement(LLoadKeyedFastElement* instr) { | 
|  | 
| // Check for the hole value. | 
| if (instr->hydrogen()->RequiresHoleCheck()) { | 
| -    __ LoadRoot(scratch, Heap::kTheHoleValueRootIndex); | 
| -    __ cmp(result, scratch); | 
| -    DeoptimizeIf(eq, instr->environment()); | 
| +    if (IsFastSmiElementsKind(instr->hydrogen()->elements_kind())) { | 
| +      __ tst(result, Operand(kSmiTagMask)); | 
| +      DeoptimizeIf(ne, instr->environment()); | 
| +    } else { | 
| +      __ LoadRoot(scratch, Heap::kTheHoleValueRootIndex); | 
| +      __ cmp(result, scratch); | 
| +      DeoptimizeIf(eq, instr->environment()); | 
| +    } | 
| } | 
| } | 
|  | 
|  |