| Index: src/crankshaft/arm/lithium-codegen-arm.cc
 | 
| diff --git a/src/crankshaft/arm/lithium-codegen-arm.cc b/src/crankshaft/arm/lithium-codegen-arm.cc
 | 
| index 4059774e3d7cab1852cd49f4736afeff61bdc77e..041c7c70d68e7c0bd1557cd084020dbeb20f9957 100644
 | 
| --- a/src/crankshaft/arm/lithium-codegen-arm.cc
 | 
| +++ b/src/crankshaft/arm/lithium-codegen-arm.cc
 | 
| @@ -2240,7 +2240,7 @@ void LCodeGen::DoBranch(LBranch* instr) {
 | 
|  
 | 
|        if (expected.Contains(ToBooleanStub::SPEC_OBJECT)) {
 | 
|          // spec object -> true.
 | 
| -        __ CompareInstanceType(map, ip, FIRST_SPEC_OBJECT_TYPE);
 | 
| +        __ CompareInstanceType(map, ip, FIRST_JS_RECEIVER_TYPE);
 | 
|          __ b(ge, instr->TrueLabel(chunk_));
 | 
|        }
 | 
|  
 | 
| @@ -2597,14 +2597,14 @@ void LCodeGen::EmitClassOfTest(Label* is_true,
 | 
|      // for both being a function type and being in the object type range.
 | 
|      STATIC_ASSERT(NUM_OF_CALLABLE_SPEC_OBJECT_TYPES == 2);
 | 
|      STATIC_ASSERT(FIRST_NONCALLABLE_SPEC_OBJECT_TYPE ==
 | 
| -                  FIRST_SPEC_OBJECT_TYPE + 1);
 | 
| +                  FIRST_JS_RECEIVER_TYPE + 1);
 | 
|      STATIC_ASSERT(LAST_NONCALLABLE_SPEC_OBJECT_TYPE ==
 | 
| -                  LAST_SPEC_OBJECT_TYPE - 1);
 | 
| -    STATIC_ASSERT(LAST_SPEC_OBJECT_TYPE == LAST_TYPE);
 | 
| -    __ CompareObjectType(input, temp, temp2, FIRST_SPEC_OBJECT_TYPE);
 | 
| +                  LAST_JS_RECEIVER_TYPE - 1);
 | 
| +    STATIC_ASSERT(LAST_JS_RECEIVER_TYPE == LAST_TYPE);
 | 
| +    __ CompareObjectType(input, temp, temp2, FIRST_JS_RECEIVER_TYPE);
 | 
|      __ b(lt, is_false);
 | 
|      __ b(eq, is_true);
 | 
| -    __ cmp(temp2, Operand(LAST_SPEC_OBJECT_TYPE));
 | 
| +    __ cmp(temp2, Operand(LAST_JS_RECEIVER_TYPE));
 | 
|      __ b(eq, is_true);
 | 
|    } else {
 | 
|      // Faster code path to avoid two compares: subtract lower bound from the
 | 
| @@ -3286,7 +3286,7 @@ void LCodeGen::DoWrapReceiver(LWrapReceiver* instr) {
 | 
|    // Deoptimize if the receiver is not a JS object.
 | 
|    __ SmiTst(receiver);
 | 
|    DeoptimizeIf(eq, instr, Deoptimizer::kSmi);
 | 
| -  __ CompareObjectType(receiver, scratch, scratch, FIRST_SPEC_OBJECT_TYPE);
 | 
| +  __ CompareObjectType(receiver, scratch, scratch, FIRST_JS_RECEIVER_TYPE);
 | 
|    DeoptimizeIf(lt, instr, Deoptimizer::kNotAJavaScriptObject);
 | 
|  
 | 
|    __ b(&result_in_receiver);
 | 
| @@ -5389,8 +5389,8 @@ Condition LCodeGen::EmitTypeofIs(Label* true_label,
 | 
|      __ JumpIfSmi(input, false_label);
 | 
|      __ CompareRoot(input, Heap::kNullValueRootIndex);
 | 
|      __ b(eq, true_label);
 | 
| -    STATIC_ASSERT(LAST_SPEC_OBJECT_TYPE == LAST_TYPE);
 | 
| -    __ CompareObjectType(input, scratch, ip, FIRST_SPEC_OBJECT_TYPE);
 | 
| +    STATIC_ASSERT(LAST_JS_RECEIVER_TYPE == LAST_TYPE);
 | 
| +    __ CompareObjectType(input, scratch, ip, FIRST_JS_RECEIVER_TYPE);
 | 
|      __ b(lt, false_label);
 | 
|      // Check for callable or undetectable objects => false.
 | 
|      __ ldrb(scratch, FieldMemOperand(scratch, Map::kBitFieldOffset));
 | 
| @@ -5573,7 +5573,7 @@ void LCodeGen::DoForInPrepareMap(LForInPrepareMap* instr) {
 | 
|    __ SmiTst(r0);
 | 
|    DeoptimizeIf(eq, instr, Deoptimizer::kSmi);
 | 
|  
 | 
| -  STATIC_ASSERT(FIRST_JS_PROXY_TYPE == FIRST_SPEC_OBJECT_TYPE);
 | 
| +  STATIC_ASSERT(FIRST_JS_PROXY_TYPE == FIRST_JS_RECEIVER_TYPE);
 | 
|    __ CompareObjectType(r0, r1, r1, LAST_JS_PROXY_TYPE);
 | 
|    DeoptimizeIf(le, instr, Deoptimizer::kWrongInstanceType);
 | 
|  
 | 
| 
 |