| Index: src/compiler/verifier.cc
|
| diff --git a/src/compiler/verifier.cc b/src/compiler/verifier.cc
|
| index 63f302a154704f54c006aa216e7d25a4b27d2e1e..c3eae25cbdee6f897e79b6bcb0478a2957732cfb 100644
|
| --- a/src/compiler/verifier.cc
|
| +++ b/src/compiler/verifier.cc
|
| @@ -650,17 +650,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());
|
| @@ -704,12 +714,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:
|
|
|