Index: src/compiler/js-typed-lowering.cc |
diff --git a/src/compiler/js-typed-lowering.cc b/src/compiler/js-typed-lowering.cc |
index 57669362a00ae42c44f0937b81d9047192f82658..26425c988e99500b23f2d0b37a423980835b9662 100644 |
--- a/src/compiler/js-typed-lowering.cc |
+++ b/src/compiler/js-typed-lowering.cc |
@@ -516,6 +516,12 @@ Reduction JSTypedLowering::ReduceJSUnaryNot(Node* node) { |
node->set_op(simplified()->BooleanNot()); |
node->TrimInputCount(1); |
return Changed(node); |
+ } else if (input_type->Is(Type::OrderedNumber())) { |
+ // JSUnaryNot(x:number,context) => NumberEqual(x,#0) |
+ node->set_op(simplified()->NumberEqual()); |
+ node->ReplaceInput(1, jsgraph()->ZeroConstant()); |
+ DCHECK_EQ(2, node->InputCount()); |
+ return Changed(node); |
} |
// JSUnaryNot(x,context) => BooleanNot(AnyToBoolean(x)) |
node->set_op(simplified()->BooleanNot()); |