| Index: src/typing.h
|
| diff --git a/src/typing.h b/src/typing.h
|
| index 2d3fac0650959cb9f6ac719b3973456510702b69..a3d48623a6de35e1979620fb37ba76778f42c8b0 100644
|
| --- a/src/typing.h
|
| +++ b/src/typing.h
|
| @@ -68,6 +68,20 @@ class AstTyper: public AstVisitor {
|
| void MergeUpperType(Expression* e, Handle<Type> t) {
|
| e->set_upper_type(handle(Type::Intersect(e->upper_type(), t), isolate_));
|
| }
|
| + void MergeLowerType(Expression* e, Type* t) {
|
| + MergeLowerType(e, handle(t, isolate_));
|
| + }
|
| + void MergeUpperType(Expression* e, Type* t) {
|
| + MergeUpperType(e, handle(t, isolate_));
|
| + }
|
| +
|
| + static Type* BoundedType(Type* bound, Handle<Type> type) {
|
| + return type->Is(bound) ? *type : bound;
|
| + }
|
| + static Type* AdditionType(Handle<Type> type) {
|
| + return type->Is(Type::Number()) ? Type::Number() :
|
| + type->Is(Type::String()) ? Type::String() : Type::NumberOrString();
|
| + }
|
|
|
| void VisitDeclarations(ZoneList<Declaration*>* declarations);
|
| void VisitStatements(ZoneList<Statement*>* statements);
|
|
|