| Index: src/x64/lithium-codegen-x64.cc
|
| diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc
|
| index b9bd30bb161bbcec73252dfcb9c7c5c1f216e1d7..0bb676b9dbe12ff0690e7d06e68e0f3660ba83f6 100644
|
| --- a/src/x64/lithium-codegen-x64.cc
|
| +++ b/src/x64/lithium-codegen-x64.cc
|
| @@ -5538,6 +5538,11 @@ Condition LCodeGen::EmitTypeofIs(Label* true_label,
|
| Immediate(1 << Map::kIsUndetectable));
|
| final_branch_condition = zero;
|
|
|
| + } else if (type_name->Equals(heap()->symbol_string())) {
|
| + __ JumpIfSmi(input, false_label);
|
| + __ CmpObjectType(input, SYMBOL_TYPE, input);
|
| + final_branch_condition = equal;
|
| +
|
| } else if (type_name->Equals(heap()->boolean_string())) {
|
| __ CompareRoot(input, Heap::kTrueValueRootIndex);
|
| __ j(equal, true_label);
|
| @@ -5572,13 +5577,7 @@ Condition LCodeGen::EmitTypeofIs(Label* true_label,
|
| __ CompareRoot(input, Heap::kNullValueRootIndex);
|
| __ j(equal, true_label);
|
| }
|
| - if (FLAG_harmony_symbols) {
|
| - __ CmpObjectType(input, SYMBOL_TYPE, input);
|
| - __ j(equal, true_label);
|
| - __ CmpInstanceType(input, FIRST_NONCALLABLE_SPEC_OBJECT_TYPE);
|
| - } else {
|
| - __ CmpObjectType(input, FIRST_NONCALLABLE_SPEC_OBJECT_TYPE, input);
|
| - }
|
| + __ CmpObjectType(input, FIRST_NONCALLABLE_SPEC_OBJECT_TYPE, input);
|
| __ j(below, false_label);
|
| __ CmpInstanceType(input, LAST_NONCALLABLE_SPEC_OBJECT_TYPE);
|
| __ j(above, false_label);
|
|
|