Index: src/compiler/js-typed-lowering.cc |
diff --git a/src/compiler/js-typed-lowering.cc b/src/compiler/js-typed-lowering.cc |
index 11ae3a9709b1099632fca8cf59af06ba903f73fe..4161a7327680199267ab3f6c5245728c3ec48281 100644 |
--- a/src/compiler/js-typed-lowering.cc |
+++ b/src/compiler/js-typed-lowering.cc |
@@ -533,15 +533,11 @@ Reduction JSTypedLowering::ReduceJSEqual(Node* node, bool invert) { |
return r.ChangeToPureOperator( |
simplified()->ReferenceEqual(Type::Receiver()), invert); |
} |
- if (r.OneInputIs(Type::NullOrUndefined())) { |
- Callable const callable = CodeFactory::CompareNilIC(isolate(), kNullValue); |
- CallDescriptor const* const desc = Linkage::GetStubCallDescriptor( |
- isolate(), graph()->zone(), callable.descriptor(), 0, |
- CallDescriptor::kNeedsFrameState, node->op()->properties()); |
- node->RemoveInput(r.LeftInputIs(Type::NullOrUndefined()) ? 0 : 1); |
- node->InsertInput(graph()->zone(), 0, |
- jsgraph()->HeapConstant(callable.code())); |
- NodeProperties::ChangeOp(node, common()->Call(desc)); |
+ if (r.OneInputIs(Type::Undetectable())) { |
+ RelaxEffectsAndControls(node); |
+ node->RemoveInput(r.LeftInputIs(Type::Undetectable()) ? 0 : 1); |
+ node->TrimInputCount(1); |
+ NodeProperties::ChangeOp(node, simplified()->ObjectIsUndetectable()); |
if (invert) { |
// Insert an boolean not to invert the value. |
Node* value = graph()->NewNode(simplified()->BooleanNot(), node); |