| Index: src/compiler/js-typed-lowering.cc
|
| diff --git a/src/compiler/js-typed-lowering.cc b/src/compiler/js-typed-lowering.cc
|
| index c7aa48ac380cb2a4449603f1ef1707b58d8a9754..414521aa74ac12fb80c19e295ac0ef39e8aaa97d 100644
|
| --- a/src/compiler/js-typed-lowering.cc
|
| +++ b/src/compiler/js-typed-lowering.cc
|
| @@ -988,11 +988,12 @@ Reduction JSTypedLowering::ReduceJSStrictEqual(Node* node, bool invert) {
|
| JSBinopReduction r(this, node);
|
| if (r.left() == r.right()) {
|
| // x === x is always true if x != NaN
|
| - if (!r.left_type()->Maybe(Type::NaN())) {
|
| - Node* replacement = jsgraph()->BooleanConstant(!invert);
|
| - ReplaceWithValue(node, replacement);
|
| - return Replace(replacement);
|
| + Node* replacement = graph()->NewNode(simplified()->ObjectIsNaN(), r.left());
|
| + if (!invert) {
|
| + replacement = graph()->NewNode(simplified()->BooleanNot(), replacement);
|
| }
|
| + ReplaceWithValue(node, replacement);
|
| + return Replace(replacement);
|
| }
|
| if (r.OneInputCannotBe(Type::NumberOrString())) {
|
| // For values with canonical representation (i.e. neither String, nor
|
|
|