| Index: runtime/vm/flow_graph_builder.cc
|
| diff --git a/runtime/vm/flow_graph_builder.cc b/runtime/vm/flow_graph_builder.cc
|
| index 9e9644f6fd2003b01980e2d63aa5066e4bd35ee3..f7804925d85302cf4ccaa29b7d0b35a350bcc24c 100644
|
| --- a/runtime/vm/flow_graph_builder.cc
|
| +++ b/runtime/vm/flow_graph_builder.cc
|
| @@ -3174,11 +3174,19 @@ void EffectGraphVisitor::VisitStoreInstanceFieldNode(
|
| }
|
|
|
| store_value = Bind(BuildStoreExprTemp(store_value));
|
| - GuardFieldInstr* guard =
|
| - new GuardFieldInstr(store_value,
|
| - node->field(),
|
| - Isolate::Current()->GetNextDeoptId());
|
| - AddInstruction(guard);
|
| + GuardFieldClassInstr* guard_field_class =
|
| + new GuardFieldClassInstr(store_value,
|
| + node->field(),
|
| + Isolate::Current()->GetNextDeoptId());
|
| + AddInstruction(guard_field_class);
|
| +
|
| + store_value = Bind(BuildLoadExprTemp());
|
| + GuardFieldLengthInstr* guard_field_length =
|
| + new GuardFieldLengthInstr(store_value,
|
| + node->field(),
|
| + Isolate::Current()->GetNextDeoptId());
|
| + AddInstruction(guard_field_length);
|
| +
|
|
|
| store_value = Bind(BuildLoadExprTemp());
|
| StoreInstanceFieldInstr* store =
|
|
|