| Index: src/compiler/verifier.cc
|
| diff --git a/src/compiler/verifier.cc b/src/compiler/verifier.cc
|
| index 1fe71205da4def2e45b6c6b65c73504620378cd4..75197c02370dbd50063f6fd0447f73098f168346 100644
|
| --- a/src/compiler/verifier.cc
|
| +++ b/src/compiler/verifier.cc
|
| @@ -646,17 +646,27 @@ void Verifier::Visitor::Check(Node* node) {
|
| CheckUpperIs(node, Type::Number());
|
| break;
|
| case IrOpcode::kNumberEqual:
|
| + // (NumberOrUndefined, NumberOrUndefined) -> Boolean
|
| + CheckValueInputIs(node, 0, Type::NumberOrUndefined());
|
| + CheckValueInputIs(node, 1, Type::NumberOrUndefined());
|
| + CheckUpperIs(node, Type::Boolean());
|
| + break;
|
| case IrOpcode::kNumberLessThan:
|
| case IrOpcode::kNumberLessThanOrEqual:
|
| // (Number, Number) -> Boolean
|
| - CheckValueInputIs(node, 0, Type::Number());
|
| - CheckValueInputIs(node, 1, Type::Number());
|
| + CheckValueInputIs(node, 0, Type::NumberOrUndefined());
|
| + CheckValueInputIs(node, 1, Type::NumberOrUndefined());
|
| CheckUpperIs(node, Type::Boolean());
|
| break;
|
| case IrOpcode::kNumberAdd:
|
| case IrOpcode::kNumberSubtract:
|
| case IrOpcode::kNumberMultiply:
|
| case IrOpcode::kNumberDivide:
|
| + // (Number, Number) -> Number
|
| + CheckValueInputIs(node, 0, Type::NumberOrUndefined());
|
| + CheckValueInputIs(node, 1, Type::NumberOrUndefined());
|
| + // CheckUpperIs(node, Type::Number());
|
| + break;
|
| case IrOpcode::kNumberModulus:
|
| // (Number, Number) -> Number
|
| CheckValueInputIs(node, 0, Type::Number());
|
| @@ -700,12 +710,12 @@ void Verifier::Visitor::Check(Node* node) {
|
| break;
|
| case IrOpcode::kNumberToInt32:
|
| // Number -> Signed32
|
| - CheckValueInputIs(node, 0, Type::Number());
|
| + CheckValueInputIs(node, 0, Type::NumberOrUndefined());
|
| CheckUpperIs(node, Type::Signed32());
|
| break;
|
| case IrOpcode::kNumberToUint32:
|
| // Number -> Unsigned32
|
| - CheckValueInputIs(node, 0, Type::Number());
|
| + CheckValueInputIs(node, 0, Type::NumberOrUndefined());
|
| CheckUpperIs(node, Type::Unsigned32());
|
| break;
|
| case IrOpcode::kNumberIsHoleNaN:
|
|
|