Index: src/compiler/js-typed-lowering.cc |
diff --git a/src/compiler/js-typed-lowering.cc b/src/compiler/js-typed-lowering.cc |
index 9c684b31cceed4308f2efc5e46448eaae74c7d27..660da66226d58cb361b8f47f1f8299f2206148a8 100644 |
--- a/src/compiler/js-typed-lowering.cc |
+++ b/src/compiler/js-typed-lowering.cc |
@@ -427,6 +427,8 @@ JSTypedLowering::JSTypedLowering(Editor* editor, |
dependencies_(dependencies), |
flags_(flags), |
jsgraph_(jsgraph), |
+ the_hole_type_( |
+ Type::Constant(factory()->the_hole_value(), graph()->zone())), |
type_cache_(TypeCache::Get()) { |
for (size_t k = 0; k < arraysize(shifted_int32_ranges_); ++k) { |
double min = kMinInt / (1 << k); |
@@ -657,6 +659,10 @@ Reduction JSTypedLowering::ReduceJSStrictEqual(Node* node, bool invert) { |
return Replace(replacement); |
} |
} |
+ if (r.OneInputIs(the_hole_type_)) { |
+ return r.ChangeToPureOperator(simplified()->ReferenceEqual(the_hole_type_), |
+ invert); |
+ } |
if (r.OneInputIs(Type::Undefined())) { |
return r.ChangeToPureOperator( |
simplified()->ReferenceEqual(Type::Undefined()), invert); |