| Index: runtime/vm/kernel_to_il.cc
|
| diff --git a/runtime/vm/kernel_to_il.cc b/runtime/vm/kernel_to_il.cc
|
| index e4204fd6539343ecb732169d47736cbaf6724221..00f8479b964b03511007cac0874c20875e379e55 100644
|
| --- a/runtime/vm/kernel_to_il.cc
|
| +++ b/runtime/vm/kernel_to_il.cc
|
| @@ -4881,6 +4881,14 @@ void FlowGraphBuilder::VisitMethodInvocation(MethodInvocation* node) {
|
| fragment_ = instructions + InstanceCall(node->position(), name, token_kind,
|
| argument_count, argument_names,
|
| num_args_checked);
|
| + // Later optimization passes assume that result of a x.[]=(...) call is not
|
| + // used. We must guarantee this invariant because violation will lead to an
|
| + // illegal IL once we replace x.[]=(...) with a sequence that does not
|
| + // actually produce any value. See http://dartbug.com/29135 for more details.
|
| + if (name.raw() == Symbols::AssignIndexToken().raw()) {
|
| + fragment_ += Drop();
|
| + fragment_ += NullConstant();
|
| + }
|
| }
|
|
|
|
|
|
|