Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index d001e0ae8fec3c7b95f8d05c615a4a87702f2a02..035bde2234ee41bc4f190823309e5656ecba84ec 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -6038,8 +6038,15 @@ Condition LCodeGen::EmitTypeofIs(Label* true_label, |
__ CompareRoot(input, Heap::kNullValueRootIndex); |
__ b(eq, true_label); |
} |
- __ CompareObjectType(input, input, scratch, |
- FIRST_NONCALLABLE_SPEC_OBJECT_TYPE); |
+ if (FLAG_harmony_symbols) { |
+ __ CompareObjectType(input, input, scratch, SYMBOL_TYPE); |
+ __ b(eq, true_label); |
+ __ CompareInstanceType(input, scratch, |
+ FIRST_NONCALLABLE_SPEC_OBJECT_TYPE); |
+ } else { |
+ __ CompareObjectType(input, input, scratch, |
+ FIRST_NONCALLABLE_SPEC_OBJECT_TYPE); |
+ } |
__ b(lt, false_label); |
__ CompareInstanceType(input, scratch, LAST_NONCALLABLE_SPEC_OBJECT_TYPE); |
__ b(gt, false_label); |