Index: pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart |
diff --git a/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart b/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart |
index a483add674163d309447c017b3b039b93780da8b..91f0b7594dc615998ded49b4b5b6aa92f58e9ac2 100644 |
--- a/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart |
+++ b/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart |
@@ -407,6 +407,29 @@ class StatementRewriter extends Visitor<Statement, Expression> with PassMixin { |
return node; |
} |
+ Statement visitSetField(SetField node) { |
+ node.next = visitStatement(node.next); |
+ node.object = visitExpression(node.object); |
+ node.value = visitExpression(node.value); |
+ return node; |
+ } |
+ |
+ Expression visitGetField(GetField node) { |
+ node.object = visitExpression(node.object); |
+ return node; |
+ } |
+ |
+ Expression visitCreateBox(CreateBox node) { |
+ return node; |
+ } |
+ |
+ Expression visitCreateClosureClass(CreateClosureClass node) { |
+ for (int i = node.arguments.length - 1; i >= 0; --i) { |
+ node.arguments[i] = visitExpression(node.arguments[i]); |
+ } |
+ return node; |
+ } |
+ |
/// If [s] and [t] are similar statements we extract their subexpressions |
/// and returns a new statement of the same type using expressions combined |
/// with the [combine] callback. For example: |