Index: src/crankshaft/typing.h |
diff --git a/src/crankshaft/typing.h b/src/crankshaft/typing.h |
index 40b538aef33927aa66408f5cabf83fb5efa3ab28..27b6809a1c5f2cf11606ae1ae78e0d46c9f6ccdd 100644 |
--- a/src/crankshaft/typing.h |
+++ b/src/crankshaft/typing.h |
@@ -6,6 +6,7 @@ |
#define V8_CRANKSHAFT_TYPING_H_ |
#include "src/allocation.h" |
+#include "src/ast/ast-type-bounds.h" |
#include "src/ast/ast.h" |
#include "src/ast/scopes.h" |
#include "src/effects.h" |
@@ -16,11 +17,11 @@ |
namespace v8 { |
namespace internal { |
- |
class AstTyper: public AstVisitor { |
public: |
AstTyper(Isolate* isolate, Zone* zone, Handle<JSFunction> closure, |
- Scope* scope, BailoutId osr_ast_id, FunctionLiteral* root); |
+ Scope* scope, BailoutId osr_ast_id, FunctionLiteral* root, |
+ AstTypeBounds* bounds); |
void Run(); |
DEFINE_AST_VISITOR_SUBCLASS_MEMBERS(); |
@@ -41,15 +42,16 @@ class AstTyper: public AstVisitor { |
FunctionLiteral* root_; |
TypeFeedbackOracle oracle_; |
Store store_; |
+ AstTypeBounds* bounds_; |
Zone* zone() const { return zone_; } |
TypeFeedbackOracle* oracle() { return &oracle_; } |
void NarrowType(Expression* e, Bounds b) { |
- e->set_bounds(Bounds::Both(e->bounds(), b, zone())); |
+ bounds_->set(e, Bounds::Both(bounds_->get(e), b, zone())); |
} |
void NarrowLowerType(Expression* e, Type* t) { |
- e->set_bounds(Bounds::NarrowLower(e->bounds(), t, zone())); |
+ bounds_->set(e, Bounds::NarrowLower(bounds_->get(e), t, zone())); |
} |
Effects EnterEffects() { |