| Index: runtime/vm/flow_graph_optimizer.cc
|
| diff --git a/runtime/vm/flow_graph_optimizer.cc b/runtime/vm/flow_graph_optimizer.cc
|
| index 54a571a44ddc36a3c8e19ed516a0c0c262a3c1ce..d1ea43e54f8fdb4e61d29e08aaf3f64cfa6f7363 100644
|
| --- a/runtime/vm/flow_graph_optimizer.cc
|
| +++ b/runtime/vm/flow_graph_optimizer.cc
|
| @@ -224,6 +224,12 @@ bool FlowGraphOptimizer::TryCreateICData(InstanceCallInstr* call) {
|
| ArgumentsDescriptor args_desc(args_desc_array);
|
| const Class& receiver_class = Class::Handle(Z,
|
| isolate()->class_table()->At(class_ids[0]));
|
| + if (!receiver_class.is_finalized()) {
|
| + // Do not eagerly finalize classes. ResolveDynamicForReceiverClass can
|
| + // cause class finalization, since callee's receiver class may not be
|
| + // finalized yet.
|
| + return false;
|
| + }
|
| const Function& function = Function::Handle(Z,
|
| Resolver::ResolveDynamicForReceiverClass(
|
| receiver_class,
|
|
|