| Index: src/compiler/typer.cc
|
| diff --git a/src/compiler/typer.cc b/src/compiler/typer.cc
|
| index 54ea26314e276a7bbd76feaf17253f801e5df45c..615b3711a5820c4ba3de34dde9a06aa8daea7735 100644
|
| --- a/src/compiler/typer.cc
|
| +++ b/src/compiler/typer.cc
|
| @@ -1702,7 +1702,6 @@ Type* Typer::Visitor::TypeJSGeneratorRestoreRegister(Node* node) {
|
|
|
| Type* Typer::Visitor::TypeJSStackCheck(Node* node) { return Type::Any(); }
|
|
|
| -
|
| // Simplified operators.
|
|
|
| Type* Typer::Visitor::TypeBooleanNot(Node* node) { return Type::Boolean(); }
|
| @@ -1723,6 +1722,14 @@ Type* Typer::Visitor::TypeNumberAdd(Node* node) { return Type::Number(); }
|
|
|
| Type* Typer::Visitor::TypeNumberSubtract(Node* node) { return Type::Number(); }
|
|
|
| +Type* Typer::Visitor::TypeSpeculativeNumberAdd(Node* node) {
|
| + return Type::Number();
|
| +}
|
| +
|
| +Type* Typer::Visitor::TypeSpeculativeNumberSubtract(Node* node) {
|
| + return Type::Number();
|
| +}
|
| +
|
| Type* Typer::Visitor::TypeNumberMultiply(Node* node) { return Type::Number(); }
|
|
|
| Type* Typer::Visitor::TypeNumberDivide(Node* node) { return Type::Number(); }
|
| @@ -1919,6 +1926,22 @@ Type* Typer::Visitor::TypeChangeBitToTagged(Node* node) {
|
| return ChangeRepresentation(arg, Type::TaggedPointer(), zone());
|
| }
|
|
|
| +Type* Typer::Visitor::TypeCheckedUint32ToInt32(Node* node) {
|
| + return Type::Signed32();
|
| +}
|
| +
|
| +Type* Typer::Visitor::TypeCheckedFloat64ToInt32(Node* node) {
|
| + return Type::Signed32();
|
| +}
|
| +
|
| +Type* Typer::Visitor::TypeCheckedTaggedToInt32(Node* node) {
|
| + return Type::Signed32();
|
| +}
|
| +
|
| +Type* Typer::Visitor::TypeCheckedTaggedToFloat64(Node* node) {
|
| + return Type::Number();
|
| +}
|
| +
|
| Type* Typer::Visitor::TypeTruncateTaggedToWord32(Node* node) {
|
| Type* arg = Operand(node, 0);
|
| // TODO(neis): DCHECK(arg->Is(Type::Number()));
|
|
|