Index: src/compiler/typer.cc |
diff --git a/src/compiler/typer.cc b/src/compiler/typer.cc |
index e33b7764567881f149e760262b26a9a58f2b1f87..c8db81250208d170eb791c5716d6609c794b8db8 100644 |
--- a/src/compiler/typer.cc |
+++ b/src/compiler/typer.cc |
@@ -592,13 +592,9 @@ Type* Typer::Visitor::TypeFloat64Constant(Node* node) { |
Type* Typer::Visitor::TypeNumberConstant(Node* node) { |
Factory* f = isolate()->factory(); |
double number = OpParameter<double>(node); |
- if (Type::IsInteger(number)) { |
- return Type::Range(number, number, zone()); |
- } |
- return Type::Constant(f->NewNumber(number), zone()); |
+ return Type::NewConstant(f->NewNumber(number), zone()); |
Jarin
2016/10/04 13:14:55
How about having a factory from a double value?
mvstanton
2016/10/05 13:51:10
Done.
Jarin
2016/10/05 14:06:53
How about using it, then?
mvstanton
2016/10/05 14:14:44
My apologies. This time I have used it.
|
} |
- |
Type* Typer::Visitor::TypeHeapConstant(Node* node) { |
return TypeConstant(OpParameter<Handle<HeapObject>>(node)); |
} |
@@ -1024,6 +1020,8 @@ Type* Typer::Visitor::JSTypeOfTyper(Type* type, Typer* t) { |
} else if (type->IsConstant()) { |
return Type::Constant( |
Object::TypeOf(t->isolate(), type->AsConstant()->Value()), t->zone()); |
+ } else if (type->IsOtherNumberConstant()) { |
+ return Type::Constant(f->number_string(), t->zone()); |
} |
return Type::InternalizedString(); |
} |
@@ -1717,7 +1715,7 @@ Type* Typer::Visitor::TypeConstant(Handle<Object> value) { |
if (Type::IsInteger(*value)) { |
return Type::Range(value->Number(), value->Number(), zone()); |
} |
- return Type::Constant(value, zone()); |
+ return Type::NewConstant(value, zone()); |
} |
} // namespace compiler |