| 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 399b972928ecda0a83224c962eb0ffe009b31ef2..3fa61dd22b4d1e5d8f4f58f26164fa4398048d87 100644
|
| --- a/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
|
| +++ b/pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart
|
| @@ -491,6 +491,21 @@ class StatementRewriter extends Transformer implements Pass {
|
| return node;
|
| }
|
|
|
| + Expression visitApplyBuiltinMethod(ApplyBuiltinMethod node) {
|
| + if (node.receiverIsNotNull) {
|
| + _rewriteList(node.arguments);
|
| + node.receiver = visitExpression(node.receiver);
|
| + } else {
|
| + // Impure expressions cannot be propagated across the method lookup,
|
| + // because it throws when the receiver is null.
|
| + inEmptyEnvironment(() {
|
| + _rewriteList(node.arguments);
|
| + });
|
| + node.receiver = visitExpression(node.receiver);
|
| + }
|
| + return node;
|
| + }
|
| +
|
| Expression visitInvokeMethodDirectly(InvokeMethodDirectly node) {
|
| _rewriteList(node.arguments);
|
| node.receiver = visitExpression(node.receiver);
|
|
|