| Index: src/arm/stub-cache-arm.cc
 | 
| diff --git a/src/arm/stub-cache-arm.cc b/src/arm/stub-cache-arm.cc
 | 
| index f22acb4709e386d75a2a4df18f981624449de2fa..e3e5aa2022ec10b1f8d6a4874712e5aaa939b31b 100644
 | 
| --- a/src/arm/stub-cache-arm.cc
 | 
| +++ b/src/arm/stub-cache-arm.cc
 | 
| @@ -2897,6 +2897,7 @@ Handle<Code> LoadStubCompiler::CompileLoadGlobal(
 | 
|  Handle<Code> BaseLoadStubCompiler::CompilePolymorphicIC(
 | 
|      MapHandleList* receiver_maps,
 | 
|      CodeHandleList* handlers,
 | 
| +    int number_of_valid_maps,
 | 
|      Handle<Name> name,
 | 
|      Code::StubType type,
 | 
|      IcCheckType check) {
 | 
| @@ -2912,17 +2913,19 @@ Handle<Code> BaseLoadStubCompiler::CompilePolymorphicIC(
 | 
|    int receiver_count = receiver_maps->length();
 | 
|    __ ldr(map_reg, FieldMemOperand(receiver(), HeapObject::kMapOffset));
 | 
|    for (int current = 0; current < receiver_count; ++current) {
 | 
| -    __ mov(ip, Operand(receiver_maps->at(current)));
 | 
| -    __ cmp(map_reg, ip);
 | 
| -    __ Jump(handlers->at(current), RelocInfo::CODE_TARGET, eq);
 | 
| +    Handle<Map> map = receiver_maps->at(current);
 | 
| +    if (!map->is_invalid_transition()) {
 | 
| +      __ mov(ip, Operand(receiver_maps->at(current)));
 | 
| +      __ cmp(map_reg, ip);
 | 
| +      __ Jump(handlers->at(current), RelocInfo::CODE_TARGET, eq);
 | 
| +    }
 | 
|    }
 | 
|  
 | 
|    __ bind(&miss);
 | 
|    TailCallBuiltin(masm(), MissBuiltin(kind()));
 | 
|  
 | 
|    // Return the generated code.
 | 
| -  InlineCacheState state =
 | 
| -      receiver_maps->length() > 1 ? POLYMORPHIC : MONOMORPHIC;
 | 
| +  InlineCacheState state = number_of_valid_maps > 1 ? POLYMORPHIC : MONOMORPHIC;
 | 
|    return GetICCode(kind(), type, name, state);
 | 
|  }
 | 
|  
 | 
| 
 |