| Index: runtime/vm/flow_graph_builder.cc
|
| diff --git a/runtime/vm/flow_graph_builder.cc b/runtime/vm/flow_graph_builder.cc
|
| index 722118679d35815d476a1d829997d076067ae833..7a87922f03a16a4ddce767ee728678a3379afc80 100644
|
| --- a/runtime/vm/flow_graph_builder.cc
|
| +++ b/runtime/vm/flow_graph_builder.cc
|
| @@ -2595,8 +2595,20 @@ void EffectGraphVisitor::VisitStoreInstanceFieldNode(
|
| type,
|
| dst_name);
|
| }
|
| - StoreInstanceFieldInstr* store = new StoreInstanceFieldInstr(
|
| - node->field(), for_instance.value(), store_value, kEmitStoreBarrier);
|
| +
|
| + store_value = Bind(BuildStoreExprTemp(store_value));
|
| + GuardFieldInstr* guard =
|
| + new GuardFieldInstr(store_value,
|
| + node->field(),
|
| + Isolate::Current()->GetNextDeoptId());
|
| + AddInstruction(guard);
|
| +
|
| + store_value = Bind(BuildLoadExprTemp());
|
| + StoreInstanceFieldInstr* store =
|
| + new StoreInstanceFieldInstr(node->field(),
|
| + for_instance.value(),
|
| + store_value,
|
| + kEmitStoreBarrier);
|
| ReturnDefinition(store);
|
| }
|
|
|
|
|