Index: src/compiler/typer.cc |
diff --git a/src/compiler/typer.cc b/src/compiler/typer.cc |
index 500c71aca1dd99059fe5610eea12c3513f932058..5fb20da9a5df17e8f6edf4cb87e1666dfa8aaa75 100644 |
--- a/src/compiler/typer.cc |
+++ b/src/compiler/typer.cc |
@@ -43,13 +43,14 @@ Typer::Typer(Isolate* isolate, Flags flags, Graph* graph) |
Zone* zone = this->zone(); |
Factory* const factory = isolate->factory(); |
- singleton_false_ = Type::HeapConstant(factory->false_value(), zone); |
- singleton_true_ = Type::HeapConstant(factory->true_value(), zone); |
- singleton_the_hole_ = Type::HeapConstant(factory->the_hole_value(), zone); |
+ singleton_empty_string_ = Type::HeapConstant(factory->empty_string(), zone); |
+ singleton_false_ = operation_typer_.singleton_false(); |
+ singleton_true_ = operation_typer_.singleton_true(); |
falsish_ = Type::Union( |
Type::Undetectable(), |
Type::Union(Type::Union(singleton_false_, cache_.kZeroish, zone), |
- singleton_the_hole_, zone), |
+ Type::Union(singleton_empty_string_, Type::Hole(), zone), |
+ zone), |
zone); |
truish_ = Type::Union( |
singleton_true_, |
@@ -908,8 +909,7 @@ Type* Typer::Visitor::JSStrictEqualTyper(Type* lhs, Type* rhs, Typer* t) { |
(lhs->Max() < rhs->Min() || lhs->Min() > rhs->Max())) { |
return t->singleton_false_; |
} |
- if ((lhs->Is(t->singleton_the_hole_) || rhs->Is(t->singleton_the_hole_)) && |
- !lhs->Maybe(rhs)) { |
+ if ((lhs->Is(Type::Hole()) || rhs->Is(Type::Hole())) && !lhs->Maybe(rhs)) { |
return t->singleton_false_; |
} |
if (lhs->IsHeapConstant() && rhs->Is(lhs)) { |