| 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 be59dc90692297fe4217949f62c5415defa83806..8c7a5af2e3cf161e2b3334bfcbc1e211f06c5348 100644
|
| --- a/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
|
| +++ b/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
|
| @@ -350,6 +350,7 @@ class StatementRewriter extends Transformer implements Pass {
|
| return exp is Constant ||
|
| exp is This ||
|
| exp is CreateInvocationMirror ||
|
| + exp is GetStatic && exp.element.isFunction ||
|
| exp is Interceptor ||
|
| exp is ApplyBuiltinOperator ||
|
| exp is VariableUse && constantEnvironment.containsKey(exp.variable);
|
| @@ -717,6 +718,24 @@ class StatementRewriter extends Transformer implements Pass {
|
| return node;
|
| }
|
|
|
| + Expression visitGetLength(GetLength node) {
|
| + node.object = visitExpression(node.object);
|
| + return node;
|
| + }
|
| +
|
| + Expression visitGetIndex(GetIndex node) {
|
| + node.index = visitExpression(node.index);
|
| + node.object = visitExpression(node.object);
|
| + return node;
|
| + }
|
| +
|
| + Expression visitSetIndex(SetIndex node) {
|
| + node.value = visitExpression(node.value);
|
| + node.index = visitExpression(node.index);
|
| + node.object = visitExpression(node.object);
|
| + return node;
|
| + }
|
| +
|
| /// True if [operator] is a binary operator that always has the same value
|
| /// if its arguments are swapped.
|
| bool isSymmetricOperator(BuiltinOperator operator) {
|
|
|