| Index: pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart
|
| diff --git a/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart b/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart
|
| index 4312130deaa2b4bbc058c94fd8199a04fd8c6eff..2b37c176b1c5e4c80d67e887ab929d4f10d7ca8c 100644
|
| --- a/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart
|
| +++ b/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart
|
| @@ -560,6 +560,25 @@ class ExpressionStatement extends Statement {
|
| }
|
| }
|
|
|
| +// TODO(kmillikin): Do we want this 'TryStatement'? Other than
|
| +// LabeledStatement and EmptyStatement, the statement class names are not
|
| +// suffixed with 'Statement'.
|
| +class Try extends Statement {
|
| + Statement tryBody;
|
| + List<Variable> catchParameters;
|
| + Statement catchBody;
|
| +
|
| + Statement get next => null;
|
| + void set next(Statement s) => throw 'UNREACHABLE';
|
| +
|
| + Try(this.tryBody, this.catchParameters, this.catchBody);
|
| +
|
| + accept(StatementVisitor visitor) => visitor.visitTry(this);
|
| + accept1(StatementVisitor1 visitor, arg) {
|
| + return visitor.visitTry(this, arg);
|
| + }
|
| +}
|
| +
|
| abstract class ExecutableDefinition {
|
| ExecutableElement get element;
|
| Statement body;
|
| @@ -760,6 +779,7 @@ abstract class StatementVisitor<S> {
|
| S visitWhileCondition(WhileCondition node);
|
| S visitFunctionDeclaration(FunctionDeclaration node);
|
| S visitExpressionStatement(ExpressionStatement node);
|
| + S visitTry(Try node);
|
| S visitSetField(SetField node);
|
| }
|
|
|
| @@ -775,6 +795,7 @@ abstract class StatementVisitor1<S, A> {
|
| S visitWhileCondition(WhileCondition node, A arg);
|
| S visitFunctionDeclaration(FunctionDeclaration node, A arg);
|
| S visitExpressionStatement(ExpressionStatement node, A arg);
|
| + S visitTry(Try node, A arg);
|
| S visitSetField(SetField node, A arg);
|
| }
|
|
|
| @@ -904,6 +925,11 @@ class RecursiveVisitor extends Visitor {
|
| visitStatement(node.next);
|
| }
|
|
|
| + visitTry(Try node) {
|
| + visitStatement(node.tryBody);
|
| + visitStatement(node.catchBody);
|
| + }
|
| +
|
| visitFieldInitializer(FieldInitializer node) {
|
| visitStatement(node.body);
|
| }
|
|
|