Index: src/ast.h |
diff --git a/src/ast.h b/src/ast.h |
index 6c9ac8bcc05595a3f0c5721f4b1ef5799b9b0e52..7ed3579edd74f2660b1be4b89c0bf40ad1bc636c 100644 |
--- a/src/ast.h |
+++ b/src/ast.h |
@@ -80,7 +80,6 @@ namespace internal { |
V(RegExpLiteral) \ |
V(ObjectLiteral) \ |
V(ArrayLiteral) \ |
- V(CatchExtensionObject) \ |
V(Assignment) \ |
V(Throw) \ |
V(Property) \ |
@@ -614,19 +613,17 @@ class ReturnStatement: public Statement { |
class WithEnterStatement: public Statement { |
public: |
- explicit WithEnterStatement(Expression* expression, bool is_catch_block) |
- : expression_(expression), is_catch_block_(is_catch_block) { } |
+ explicit WithEnterStatement(Expression* expression) |
+ : expression_(expression) { } |
DECLARE_NODE_TYPE(WithEnterStatement) |
Expression* expression() const { return expression_; } |
- bool is_catch_block() const { return is_catch_block_; } |
virtual bool IsInlineable() const; |
private: |
Expression* expression_; |
- bool is_catch_block_; |
}; |
@@ -743,9 +740,7 @@ class IfStatement: public Statement { |
// stack in the compiler; this should probably be reworked. |
class TargetCollector: public AstNode { |
public: |
- explicit TargetCollector(ZoneList<Label*>* targets) |
- : targets_(targets) { |
- } |
+ TargetCollector(): targets_(0) { } |
// Adds a jump target to the collector. The collector stores a pointer not |
// a copy of the target to make binding work, so make sure not to pass in |
@@ -756,11 +751,11 @@ class TargetCollector: public AstNode { |
virtual void Accept(AstVisitor* v) { UNREACHABLE(); } |
virtual TargetCollector* AsTargetCollector() { return this; } |
- ZoneList<Label*>* targets() { return targets_; } |
+ ZoneList<Label*>* targets() { return &targets_; } |
virtual bool IsInlineable() const; |
private: |
- ZoneList<Label*>* targets_; |
+ ZoneList<Label*> targets_; |
}; |
@@ -785,22 +780,20 @@ class TryStatement: public Statement { |
class TryCatchStatement: public TryStatement { |
public: |
- TryCatchStatement(Block* try_block, |
- VariableProxy* catch_var, |
- Block* catch_block) |
+ TryCatchStatement(Block* try_block, Handle<String> name, Block* catch_block) |
: TryStatement(try_block), |
- catch_var_(catch_var), |
+ name_(name), |
catch_block_(catch_block) { |
} |
DECLARE_NODE_TYPE(TryCatchStatement) |
- VariableProxy* catch_var() const { return catch_var_; } |
Block* catch_block() const { return catch_block_; } |
+ Handle<String> name() const { return name_; } |
virtual bool IsInlineable() const; |
private: |
- VariableProxy* catch_var_; |
+ Handle<String> name_; |
Block* catch_block_; |
}; |
@@ -1040,27 +1033,6 @@ class ArrayLiteral: public MaterializedLiteral { |
}; |
-// Node for constructing a context extension object for a catch block. |
-// The catch context extension object has one property, the catch |
-// variable, which should be DontDelete. |
-class CatchExtensionObject: public Expression { |
- public: |
- CatchExtensionObject(Literal* key, VariableProxy* value) |
- : key_(key), value_(value) { |
- } |
- |
- DECLARE_NODE_TYPE(CatchExtensionObject) |
- |
- Literal* key() const { return key_; } |
- VariableProxy* value() const { return value_; } |
- virtual bool IsInlineable() const; |
- |
- private: |
- Literal* key_; |
- VariableProxy* value_; |
-}; |
- |
- |
class VariableProxy: public Expression { |
public: |
explicit VariableProxy(Variable* var); |