| Index: src/full-codegen/x64/full-codegen-x64.cc
|
| diff --git a/src/full-codegen/x64/full-codegen-x64.cc b/src/full-codegen/x64/full-codegen-x64.cc
|
| index 075c59795f11d2d558cdc4fc13517f99909a63d4..432734e4f7296fc1eff4421403026c9bd08308c7 100644
|
| --- a/src/full-codegen/x64/full-codegen-x64.cc
|
| +++ b/src/full-codegen/x64/full-codegen-x64.cc
|
| @@ -108,7 +108,7 @@ void FullCodeGenerator::Generate() {
|
| StackArgumentsAccessor args(rsp, info->scope()->num_parameters());
|
| __ movp(rcx, args.GetReceiverOperand());
|
| __ AssertNotSmi(rcx);
|
| - __ CmpObjectType(rcx, FIRST_SPEC_OBJECT_TYPE, rcx);
|
| + __ CmpObjectType(rcx, FIRST_JS_RECEIVER_TYPE, rcx);
|
| __ Assert(above_equal, kSloppyFunctionExpectsJSReceiverReceiver);
|
| }
|
|
|
| @@ -996,7 +996,7 @@ void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) {
|
| // Convert the object to a JS object.
|
| Label convert, done_convert;
|
| __ JumpIfSmi(rax, &convert, Label::kNear);
|
| - __ CmpObjectType(rax, FIRST_SPEC_OBJECT_TYPE, rcx);
|
| + __ CmpObjectType(rax, FIRST_JS_RECEIVER_TYPE, rcx);
|
| __ j(above_equal, &done_convert, Label::kNear);
|
| __ bind(&convert);
|
| ToObjectStub stub(isolate());
|
| @@ -1007,7 +1007,7 @@ void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) {
|
|
|
| // Check for proxies.
|
| Label call_runtime;
|
| - STATIC_ASSERT(FIRST_JS_PROXY_TYPE == FIRST_SPEC_OBJECT_TYPE);
|
| + STATIC_ASSERT(FIRST_JS_PROXY_TYPE == FIRST_JS_RECEIVER_TYPE);
|
| __ CmpObjectType(rax, LAST_JS_PROXY_TYPE, rcx);
|
| __ j(below_equal, &call_runtime);
|
|
|
| @@ -1072,7 +1072,7 @@ void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) {
|
| TypeFeedbackVector::MegamorphicSentinel(isolate()));
|
| __ Move(rbx, Smi::FromInt(1)); // Smi indicates slow check
|
| __ movp(rcx, Operand(rsp, 0 * kPointerSize)); // Get enumerated object
|
| - STATIC_ASSERT(FIRST_JS_PROXY_TYPE == FIRST_SPEC_OBJECT_TYPE);
|
| + STATIC_ASSERT(FIRST_JS_PROXY_TYPE == FIRST_JS_RECEIVER_TYPE);
|
| __ CmpObjectType(rcx, LAST_JS_PROXY_TYPE, rcx);
|
| __ j(above, &non_proxy);
|
| __ Move(rbx, Smi::FromInt(0)); // Zero indicates proxy
|
| @@ -2976,7 +2976,7 @@ void FullCodeGenerator::EmitIsSpecObject(CallRuntime* expr) {
|
| &if_true, &if_false, &fall_through);
|
|
|
| __ JumpIfSmi(rax, if_false);
|
| - __ CmpObjectType(rax, FIRST_SPEC_OBJECT_TYPE, rbx);
|
| + __ CmpObjectType(rax, FIRST_JS_RECEIVER_TYPE, rbx);
|
| PrepareForBailoutBeforeSplit(expr, true, if_true, if_false);
|
| Split(above_equal, if_true, if_false, fall_through);
|
|
|
| @@ -3255,16 +3255,16 @@ void FullCodeGenerator::EmitClassOf(CallRuntime* expr) {
|
| // Assume that there are only two callable types, and one of them is at
|
| // either end of the type range for JS object types. Saves extra comparisons.
|
| STATIC_ASSERT(NUM_OF_CALLABLE_SPEC_OBJECT_TYPES == 2);
|
| - __ CmpObjectType(rax, FIRST_SPEC_OBJECT_TYPE, rax);
|
| + __ CmpObjectType(rax, FIRST_JS_RECEIVER_TYPE, rax);
|
| // Map is now in rax.
|
| __ j(below, &null);
|
| STATIC_ASSERT(FIRST_NONCALLABLE_SPEC_OBJECT_TYPE ==
|
| - FIRST_SPEC_OBJECT_TYPE + 1);
|
| + FIRST_JS_RECEIVER_TYPE + 1);
|
| __ j(equal, &function);
|
|
|
| - __ CmpInstanceType(rax, LAST_SPEC_OBJECT_TYPE);
|
| + __ CmpInstanceType(rax, LAST_JS_RECEIVER_TYPE);
|
| STATIC_ASSERT(LAST_NONCALLABLE_SPEC_OBJECT_TYPE ==
|
| - LAST_SPEC_OBJECT_TYPE - 1);
|
| + LAST_JS_RECEIVER_TYPE - 1);
|
| __ j(equal, &function);
|
| // Assume that there is no larger type.
|
| STATIC_ASSERT(LAST_NONCALLABLE_SPEC_OBJECT_TYPE == LAST_TYPE - 1);
|
| @@ -4568,8 +4568,8 @@ void FullCodeGenerator::EmitLiteralCompareTypeof(Expression* expr,
|
| __ JumpIfSmi(rax, if_false);
|
| __ CompareRoot(rax, Heap::kNullValueRootIndex);
|
| __ j(equal, if_true);
|
| - STATIC_ASSERT(LAST_SPEC_OBJECT_TYPE == LAST_TYPE);
|
| - __ CmpObjectType(rax, FIRST_SPEC_OBJECT_TYPE, rdx);
|
| + STATIC_ASSERT(LAST_JS_RECEIVER_TYPE == LAST_TYPE);
|
| + __ CmpObjectType(rax, FIRST_JS_RECEIVER_TYPE, rdx);
|
| __ j(below, if_false);
|
| // Check for callable or undetectable objects => false.
|
| __ testb(FieldOperand(rdx, Map::kBitFieldOffset),
|
|
|