| Index: src/arm/code-stubs-arm.cc
|
| diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc
|
| index efec81fc0e046ac24da4413842cd54d4750dfcba..67d64eb80e6393087afda9d5211581821255648b 100644
|
| --- a/src/arm/code-stubs-arm.cc
|
| +++ b/src/arm/code-stubs-arm.cc
|
| @@ -929,14 +929,14 @@ static void EmitIdenticalObjectComparison(MacroAssembler* masm,
|
| // They are both equal and they are not both Smis so both of them are not
|
| // Smis. If it's not a heap number, then return equal.
|
| if (cond == lt || cond == gt) {
|
| - __ CompareObjectType(r0, r4, r4, FIRST_JS_OBJECT_TYPE);
|
| + __ CompareObjectType(r0, r4, r4, FIRST_OBJECT_OR_FUNCTION_CLASS_TYPE);
|
| __ b(ge, slow);
|
| } else {
|
| __ CompareObjectType(r0, r4, r4, HEAP_NUMBER_TYPE);
|
| __ b(eq, &heap_number);
|
| // Comparing JS objects with <=, >= is complicated.
|
| if (cond != eq) {
|
| - __ cmp(r4, Operand(FIRST_JS_OBJECT_TYPE));
|
| + __ cmp(r4, Operand(FIRST_OBJECT_OR_FUNCTION_CLASS_TYPE));
|
| __ b(ge, slow);
|
| // Normally here we fall through to return_equal, but undefined is
|
| // special: (undefined == undefined) == true, but
|
| @@ -1218,14 +1218,14 @@ static void EmitStrictTwoHeapObjectCompare(MacroAssembler* masm,
|
| ASSERT((lhs.is(r0) && rhs.is(r1)) ||
|
| (lhs.is(r1) && rhs.is(r0)));
|
|
|
| - // If either operand is a JSObject or an oddball value, then they are
|
| + // If either operand is a JS object or an oddball value, then they are
|
| // not equal since their pointers are different.
|
| // There is no test for undetectability in strict equality.
|
| - STATIC_ASSERT(LAST_TYPE == JS_FUNCTION_TYPE);
|
| + STATIC_ASSERT(LAST_TYPE == LAST_FUNCTION_CLASS_TYPE);
|
| Label first_non_object;
|
| // Get the type of the first operand into r2 and compare it with
|
| - // FIRST_JS_OBJECT_TYPE.
|
| - __ CompareObjectType(rhs, r2, r2, FIRST_JS_OBJECT_TYPE);
|
| + // FIRST_OBJECT_OR_FUNCTION_CLASS_TYPE.
|
| + __ CompareObjectType(rhs, r2, r2, FIRST_OBJECT_OR_FUNCTION_CLASS_TYPE);
|
| __ b(lt, &first_non_object);
|
|
|
| // Return non-zero (r0 is not zero)
|
| @@ -1238,7 +1238,7 @@ static void EmitStrictTwoHeapObjectCompare(MacroAssembler* masm,
|
| __ cmp(r2, Operand(ODDBALL_TYPE));
|
| __ b(eq, &return_not_equal);
|
|
|
| - __ CompareObjectType(lhs, r3, r3, FIRST_JS_OBJECT_TYPE);
|
| + __ CompareObjectType(lhs, r3, r3, FIRST_OBJECT_OR_FUNCTION_CLASS_TYPE);
|
| __ b(ge, &return_not_equal);
|
|
|
| // Check for oddballs: true, false, null, undefined.
|
| @@ -1315,9 +1315,9 @@ static void EmitCheckForSymbolsOrObjects(MacroAssembler* masm,
|
| __ Ret();
|
|
|
| __ bind(&object_test);
|
| - __ cmp(r2, Operand(FIRST_JS_OBJECT_TYPE));
|
| + __ cmp(r2, Operand(FIRST_OBJECT_OR_FUNCTION_CLASS_TYPE));
|
| __ b(lt, not_both_strings);
|
| - __ CompareObjectType(lhs, r2, r3, FIRST_JS_OBJECT_TYPE);
|
| + __ CompareObjectType(lhs, r2, r3, FIRST_OBJECT_OR_FUNCTION_CLASS_TYPE);
|
| __ b(lt, not_both_strings);
|
| // If both objects are undetectable, they are equal. Otherwise, they
|
| // are not equal, since they are different objects and an object is not
|
| @@ -1677,7 +1677,7 @@ void ToBooleanStub::Generate(MacroAssembler* masm) {
|
| // JavaScript object => true.
|
| __ ldr(scratch, FieldMemOperand(tos_, HeapObject::kMapOffset));
|
| __ ldrb(scratch, FieldMemOperand(scratch, Map::kInstanceTypeOffset));
|
| - __ cmp(scratch, Operand(FIRST_JS_OBJECT_TYPE));
|
| + __ cmp(scratch, Operand(FIRST_OBJECT_OR_FUNCTION_CLASS_TYPE));
|
| // "tos_" is a register and contains a non-zero value.
|
| // Hence we implicitly return true if the greater than
|
| // condition is satisfied.
|
| @@ -4500,7 +4500,7 @@ void CallFunctionStub::Generate(MacroAssembler* masm) {
|
| __ JumpIfSmi(r1, &receiver_is_value);
|
|
|
| // Check if the receiver is a valid JS object.
|
| - __ CompareObjectType(r1, r2, r2, FIRST_JS_OBJECT_TYPE);
|
| + __ CompareObjectType(r1, r2, r2, FIRST_OBJECT_OR_FUNCTION_CLASS_TYPE);
|
| __ b(ge, &receiver_is_js_object);
|
|
|
| // Call the runtime to box the value.
|
|
|