Index: src/ast.h |
=================================================================== |
--- src/ast.h (revision 8931) |
+++ src/ast.h (working copy) |
@@ -60,7 +60,7 @@ |
V(ContinueStatement) \ |
V(BreakStatement) \ |
V(ReturnStatement) \ |
- V(EnterWithContextStatement) \ |
+ V(WithStatement) \ |
V(ExitContextStatement) \ |
V(SwitchStatement) \ |
V(DoWhileStatement) \ |
@@ -359,9 +359,13 @@ |
ZoneList<Statement*>* statements() { return &statements_; } |
bool is_initializer_block() const { return is_initializer_block_; } |
+ Scope* block_scope() const { return block_scope_; } |
+ void set_block_scope(Scope* block_scope) { block_scope_ = block_scope; } |
+ |
private: |
ZoneList<Statement*> statements_; |
bool is_initializer_block_; |
+ Scope* block_scope_; |
}; |
@@ -627,19 +631,21 @@ |
}; |
-class EnterWithContextStatement: public Statement { |
+class WithStatement: public Statement { |
public: |
- explicit EnterWithContextStatement(Expression* expression) |
- : expression_(expression) { } |
+ WithStatement(Expression* expression, Statement* statement) |
+ : expression_(expression), statement_(statement) { } |
- DECLARE_NODE_TYPE(EnterWithContextStatement) |
+ DECLARE_NODE_TYPE(WithStatement) |
Expression* expression() const { return expression_; } |
+ Statement* statement() const { return statement_; } |
virtual bool IsInlineable() const; |
private: |
Expression* expression_; |
+ Statement* statement_; |
}; |