Index: src/x64/full-codegen-x64.cc |
diff --git a/src/x64/full-codegen-x64.cc b/src/x64/full-codegen-x64.cc |
index ed4c3adbce39d644eb34d06be4030fa62ccbedee..12423575f40e5f8af913b196326cfbe65f68b585 100644 |
--- a/src/x64/full-codegen-x64.cc |
+++ b/src/x64/full-codegen-x64.cc |
@@ -4526,6 +4526,14 @@ void FullCodeGenerator::EmitLiteralCompareTypeof(Expression* expr, |
__ movq(rax, FieldOperand(rax, HeapObject::kMapOffset)); |
__ CompareRoot(rax, Heap::kHeapNumberMapRootIndex); |
Split(equal, if_true, if_false, fall_through); |
+ } else if (check->Equals(isolate()->heap()->float32x4_string())) { |
+ __ JumpIfSmi(rax, if_false); |
+ __ CmpObjectType(rax, FLOAT32x4_TYPE, rdx); |
+ Split(equal, if_true, if_false, fall_through); |
+ } else if (check->Equals(isolate()->heap()->int32x4_string())) { |
+ __ JumpIfSmi(rax, if_false); |
+ __ CmpObjectType(rax, INT32x4_TYPE, rdx); |
+ Split(equal, if_true, if_false, fall_through); |
} else if (check->Equals(isolate()->heap()->string_string())) { |
__ JumpIfSmi(rax, if_false); |
// Check for undetectable objects => false. |