| Index: src/ia32/builtins-ia32.cc | 
| =================================================================== | 
| --- src/ia32/builtins-ia32.cc	(revision 4792) | 
| +++ src/ia32/builtins-ia32.cc	(working copy) | 
| @@ -331,10 +331,8 @@ | 
|  | 
| // If the type of the result (stored in its map) is less than | 
| // FIRST_JS_OBJECT_TYPE, it is not an object in the ECMA sense. | 
| -  __ mov(ecx, FieldOperand(eax, HeapObject::kMapOffset)); | 
| -  __ movzx_b(ecx, FieldOperand(ecx, Map::kInstanceTypeOffset)); | 
| -  __ cmp(ecx, FIRST_JS_OBJECT_TYPE); | 
| -  __ j(greater_equal, &exit, not_taken); | 
| +  __ CmpObjectType(eax, FIRST_JS_OBJECT_TYPE, ecx); | 
| +  __ j(above_equal, &exit, not_taken); | 
|  | 
| // Throw away the result of the constructor invocation and use the | 
| // on-stack receiver as the result. | 
| @@ -469,11 +467,11 @@ | 
| __ cmp(ebx, Factory::undefined_value()); | 
| __ j(equal, &use_global_receiver); | 
|  | 
| +    // We don't use IsObjectJSObjectType here because we jump on success. | 
| __ mov(ecx, FieldOperand(ebx, HeapObject::kMapOffset)); | 
| __ movzx_b(ecx, FieldOperand(ecx, Map::kInstanceTypeOffset)); | 
| -    __ cmp(ecx, FIRST_JS_OBJECT_TYPE); | 
| -    __ j(below, &convert_to_object); | 
| -    __ cmp(ecx, LAST_JS_OBJECT_TYPE); | 
| +    __ sub(Operand(ecx), Immediate(FIRST_JS_OBJECT_TYPE)); | 
| +    __ cmp(ecx, LAST_JS_OBJECT_TYPE - FIRST_JS_OBJECT_TYPE); | 
| __ j(below_equal, &shift_arguments); | 
|  | 
| __ bind(&convert_to_object); | 
| @@ -617,12 +615,12 @@ | 
|  | 
| // If given receiver is already a JavaScript object then there's no | 
| // reason for converting it. | 
| +  // We don't use IsObjectJSObjectType here because we jump on success. | 
| __ mov(ecx, FieldOperand(ebx, HeapObject::kMapOffset)); | 
| __ movzx_b(ecx, FieldOperand(ecx, Map::kInstanceTypeOffset)); | 
| -  __ cmp(ecx, FIRST_JS_OBJECT_TYPE); | 
| -  __ j(less, &call_to_object); | 
| -  __ cmp(ecx, LAST_JS_OBJECT_TYPE); | 
| -  __ j(less_equal, &push_receiver); | 
| +  __ sub(Operand(ecx), Immediate(FIRST_JS_OBJECT_TYPE)); | 
| +  __ cmp(ecx, LAST_JS_OBJECT_TYPE - FIRST_JS_OBJECT_TYPE); | 
| +  __ j(below_equal, &push_receiver); | 
|  | 
| // Convert the receiver to an object. | 
| __ bind(&call_to_object); | 
|  |