diff --git a/engine/src/flutter/runtime/dart_isolate.cc b/engine/src/flutter/runtime/dart_isolate.cc index bd2c2350541..51073de2466 100644 --- a/engine/src/flutter/runtime/dart_isolate.cc +++ b/engine/src/flutter/runtime/dart_isolate.cc @@ -719,6 +719,20 @@ DartIsolate::CreateDartVMAndEmbedderObjectPair( (*raw_embedder_isolate)->child_isolate_preparer_)); } + // TODO(rmacnak): This flag setting business preserves a side effect of using + // Dart_CreateIsolateFromKernel. It should be removed when some of the + // internal logic in reload no longer uses this flag. + Dart_IsolateFlags nonnull_flags; + if (flags == nullptr) { + Dart_IsolateFlagsInitialize(&nonnull_flags); + flags = &nonnull_flags; + } + bool dart2 = (vm->GetPlatformKernel().GetSize() > 0) || + Dart_IsDart2Snapshot(embedder_isolate->GetIsolateSnapshot() + ->GetData() + ->GetSnapshotPointer()); + flags->use_dart_frontend = dart2; + // Create the Dart VM isolate and give it the embedder object as the baton. Dart_Isolate isolate = (vm->GetPlatformKernel().GetSize() > 0)