diff --git a/DEPS b/DEPS
index f7fc977..22284e5 100644
--- a/DEPS
+++ b/DEPS
@@ -108,7 +108,7 @@
   # For more details, see https://github.com/dart-lang/sdk/issues/30164.
   "dart_style_rev": "d7b73536a8079331c888b7da539b80e6825270ea", # manually rev'd
 
-  "dartdoc_rev": "adc5a45ddafb57e3a600ee7d9e88dc81061d1410",
+  "dartdoc_rev": "621c9192cc2446ff1ebe4f603e1c834392d8b547",
   "devtools_rev": "95d292626da26505b02417735f77e8922783b477",
   "ffi_rev": "18b2b549d55009ff594600b04705ff6161681e07",
   "file_rev": "0132eeedea2933513bf230513a766a8baeab0c4f",
diff --git a/pkg/_fe_analyzer_shared/test/mini_ast.dart b/pkg/_fe_analyzer_shared/test/mini_ast.dart
index 4d4c3ed..b470c56 100644
--- a/pkg/_fe_analyzer_shared/test/mini_ast.dart
+++ b/pkg/_fe_analyzer_shared/test/mini_ast.dart
@@ -861,6 +861,7 @@
 
 class _CheckReachable extends Statement {
   final bool expectedReachable;
+  final StackTrace _creationTrace = StackTrace.current;
 
   _CheckReachable(this.expectedReachable) : super._();
 
@@ -872,7 +873,7 @@
 
   @override
   void _visit(Harness h) {
-    expect(h._flow.isReachable, expectedReachable);
+    expect(h._flow.isReachable, expectedReachable, reason: '$_creationTrace');
     h._irBuilder.atom('null');
   }
 }
diff --git a/pkg/analysis_server/lib/src/status/ast_writer.dart b/pkg/analysis_server/lib/src/status/ast_writer.dart
index b98c3d6..bc19b76 100644
--- a/pkg/analysis_server/lib/src/status/ast_writer.dart
+++ b/pkg/analysis_server/lib/src/status/ast_writer.dart
@@ -58,7 +58,7 @@
       properties['element'] = node.declaredElement;
       properties['keyword'] = node.keyword;
     } else if (node is ExportDirective) {
-      properties['element'] = node.element;
+      properties['element'] = node.element2;
       properties['selectedSource'] = node.selectedSource;
       properties['uriSource'] = node.uriSource;
     } else if (node is FieldDeclaration) {
diff --git a/pkg/analysis_server/lib/src/status/element_writer.dart b/pkg/analysis_server/lib/src/status/element_writer.dart
index 560fc23..1e5a123 100644
--- a/pkg/analysis_server/lib/src/status/element_writer.dart
+++ b/pkg/analysis_server/lib/src/status/element_writer.dart
@@ -82,9 +82,9 @@
       properties['returnType'] = element.returnType;
       properties['type'] = element.type;
     }
-    if (element is ExportElement) {
+    if (element is ExportElement2) {
       properties['combinators'] = element.combinators;
-      properties['library'] = element.library;
+      properties['library'] = element.exportedLibrary;
     }
     if (element is FieldElement) {
       properties['isEnumConstant'] = element.isEnumConstant;
@@ -102,7 +102,7 @@
     if (element is ImportElement2) {
       properties['combinators'] = element.combinators;
       properties['isDeferred'] = element.prefix is DeferredImportElementPrefix;
-      properties['library'] = element.library;
+      properties['library'] = element.importedLibrary;
     }
     if (element is LibraryElement) {
       properties['definingCompilationUnit'] = element.definingCompilationUnit;
diff --git a/pkg/analysis_server/test/integration/analysis/highlights_test.dart b/pkg/analysis_server/test/integration/analysis/highlights_test.dart
index a7f7589..3781b8a 100644
--- a/pkg/analysis_server/test/integration/analysis/highlights_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/highlights_test.dart
@@ -28,7 +28,7 @@
     writeFile(pathname, text);
     await standardAnalysisSetup();
     await analysisFinished;
-    sendAnalysisSetSubscriptions({
+    await sendAnalysisSetSubscriptions({
       AnalysisService.HIGHLIGHTS: [pathname]
     });
     // Map from highlight type to highlighted text
diff --git a/pkg/analysis_server/test/integration/analysis/navigation_test.dart b/pkg/analysis_server/test/integration/analysis/navigation_test.dart
index 69d039e..dbdaca8 100644
--- a/pkg/analysis_server/test/integration/analysis/navigation_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/navigation_test.dart
@@ -55,7 +55,7 @@
 ''';
     writeFile(pathname2, text2);
     await standardAnalysisSetup();
-    sendAnalysisSetSubscriptions({
+    await sendAnalysisSetSubscriptions({
       AnalysisService.NAVIGATION: [pathname1]
     });
 
diff --git a/pkg/analysis_server/test/integration/analysis/occurrences_test.dart b/pkg/analysis_server/test/integration/analysis/occurrences_test.dart
index e0006e8..fb54e43 100644
--- a/pkg/analysis_server/test/integration/analysis/occurrences_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/occurrences_test.dart
@@ -31,7 +31,7 @@
 ''';
     writeFile(pathname, text);
     await standardAnalysisSetup();
-    sendAnalysisSetSubscriptions({
+    await sendAnalysisSetSubscriptions({
       AnalysisService.OCCURRENCES: [pathname]
     });
 
diff --git a/pkg/analysis_server/test/integration/analysis/outline_test.dart b/pkg/analysis_server/test/integration/analysis/outline_test.dart
index 217013e..c8d8c40 100644
--- a/pkg/analysis_server/test/integration/analysis/outline_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/outline_test.dart
@@ -42,7 +42,7 @@
 ''';
     writeFile(pathname, text);
     await standardAnalysisSetup();
-    sendAnalysisSetSubscriptions({
+    await sendAnalysisSetSubscriptions({
       AnalysisService.OUTLINE: [pathname]
     });
 
diff --git a/pkg/analysis_server/test/integration/analysis/overrides_test.dart b/pkg/analysis_server/test/integration/analysis/overrides_test.dart
index 7099c52..f5fe2e1 100644
--- a/pkg/analysis_server/test/integration/analysis/overrides_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/overrides_test.dart
@@ -53,7 +53,7 @@
 ''';
     writeFile(pathname, text);
     await standardAnalysisSetup();
-    sendAnalysisSetSubscriptions({
+    await sendAnalysisSetSubscriptions({
       AnalysisService.OVERRIDES: [pathname]
     });
 
diff --git a/pkg/analysis_server/test/integration/analysis/package_root_test.dart b/pkg/analysis_server/test/integration/analysis/package_root_test.dart
index 1ee9ea6..cf25b43 100644
--- a/pkg/analysis_server/test/integration/analysis/package_root_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/package_root_test.dart
@@ -40,18 +40,18 @@
 ''';
     writeFile(mainPath, mainText);
     var normalizedFooBarPath = writeFile(fooBarPath, fooBarText);
-    sendServerSetSubscriptions([ServerService.STATUS]);
+    await sendServerSetSubscriptions([ServerService.STATUS]);
     var navigationParamsFuture = onAnalysisNavigation.first;
-    sendAnalysisSetSubscriptions({
+    await sendAnalysisSetSubscriptions({
       AnalysisService.NAVIGATION: [mainPath]
     });
     List<NavigationRegion> navigationRegions;
     List<NavigationTarget> navigationTargets;
     List<String> navigationTargetFiles;
 
-    sendAnalysisSetAnalysisRoots([projPath], [],
+    await sendAnalysisSetAnalysisRoots([projPath], [],
         packageRoots: {projPath: packagesPath});
-    sendAnalysisSetPriorityFiles([mainPath]);
+    await sendAnalysisSetPriorityFiles([mainPath]);
 
     var params = await navigationParamsFuture;
 
diff --git a/pkg/analysis_server/test/integration/analysis/update_content_test.dart b/pkg/analysis_server/test/integration/analysis/update_content_test.dart
index 7fcbcca..1d04c6a 100644
--- a/pkg/analysis_server/test/integration/analysis/update_content_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/update_content_test.dart
@@ -33,19 +33,19 @@
 
     // There should be no errors now because the contents on disk have been
     // overridden with goodText.
-    sendAnalysisUpdateContent({path: AddContentOverlay(goodText)});
+    await sendAnalysisUpdateContent({path: AddContentOverlay(goodText)});
     await analysisFinished;
     expect(currentAnalysisErrors[path], isEmpty);
 
     // There should be errors now because we've removed the semicolon.
-    sendAnalysisUpdateContent({
+    await sendAnalysisUpdateContent({
       path: ChangeContentOverlay([SourceEdit(goodText.indexOf(';'), 1, '')])
     });
     await analysisFinished;
     expect(currentAnalysisErrors[path], isNotEmpty);
 
     // There should be no errors now because we've added the semicolon back.
-    sendAnalysisUpdateContent({
+    await sendAnalysisUpdateContent({
       path: ChangeContentOverlay([SourceEdit(goodText.indexOf(';'), 0, ';')])
     });
     await analysisFinished;
@@ -53,7 +53,7 @@
 
     // Now there should be errors again, because the contents on disk are no
     // longer overridden.
-    sendAnalysisUpdateContent({path: RemoveContentOverlay()});
+    await sendAnalysisUpdateContent({path: RemoveContentOverlay()});
     await analysisFinished;
     expect(currentAnalysisErrors[path], isNotEmpty);
   }
diff --git a/pkg/analysis_server/test/integration/completion/get_suggestions_test.dart b/pkg/analysis_server/test/integration/completion/get_suggestions_test.dart
index c606f27..718d599 100644
--- a/pkg/analysis_server/test/integration/completion/get_suggestions_test.dart
+++ b/pkg/analysis_server/test/integration/completion/get_suggestions_test.dart
@@ -95,8 +95,8 @@
     // Create an overlay but do not write the file to "disk"
     //   writeFile(pathname, text);
     // Don't wait for any results except the completion notifications
-    sendAnalysisUpdateContent({path: AddContentOverlay(content)});
-    sendCompletionGetSuggestions(path, completionOffset);
+    await sendAnalysisUpdateContent({path: AddContentOverlay(content)});
+    await sendCompletionGetSuggestions(path, completionOffset);
     var param = await onCompletionResults
         .firstWhere((CompletionResultsParams param) => param.isLast);
     expect(param.replacementOffset, completionOffset);
diff --git a/pkg/analysis_server/test/integration/lsp_server/integration_tests.dart b/pkg/analysis_server/test/integration/lsp_server/integration_tests.dart
index bd15489..fedaf4c 100644
--- a/pkg/analysis_server/test/integration/lsp_server/integration_tests.dart
+++ b/pkg/analysis_server/test/integration/lsp_server/integration_tests.dart
@@ -171,11 +171,11 @@
       environment: {PubCommand.disablePubCommandEnvironmentKey: 'true'},
     );
     _process = process;
-    process.exitCode.then((int code) {
+    unawaited(process.exitCode.then((int code) {
       if (code != 0) {
         // TODO(dantup): Log/fail tests...
       }
-    });
+    }));
 
     // If the server writes to stderr, fail tests with a more useful message
     // (rather than having the test just hang waiting for a response).
diff --git a/pkg/analysis_server/test/integration/search/get_type_hierarchy_test.dart b/pkg/analysis_server/test/integration/search/get_type_hierarchy_test.dart
index 5bde20d..987e0b8 100644
--- a/pkg/analysis_server/test/integration/search/get_type_hierarchy_test.dart
+++ b/pkg/analysis_server/test/integration/search/get_type_hierarchy_test.dart
@@ -215,7 +215,7 @@
 
   Future<HierarchyResults?> typeHierarchyTestNullable(String text) async {
     var offset = text.indexOf(' /* target */') - 1;
-    sendAnalysisUpdateContent({pathname: AddContentOverlay(text)});
+    await sendAnalysisUpdateContent({pathname: AddContentOverlay(text)});
     await analysisFinished;
     var result = await sendSearchGetTypeHierarchy(pathname, offset);
 
diff --git a/pkg/analysis_server/test/integration/server/set_subscriptions_test.dart b/pkg/analysis_server/test/integration/server/set_subscriptions_test.dart
index 2979d30..a31aa0d 100644
--- a/pkg/analysis_server/test/integration/server/set_subscriptions_test.dart
+++ b/pkg/analysis_server/test/integration/server/set_subscriptions_test.dart
@@ -53,7 +53,7 @@
 void f() {
   var x;
 }''');
-    standardAnalysisSetup(subscribeStatus: false);
+    await standardAnalysisSetup(subscribeStatus: false);
     // Analysis should begin, but no server.status notification should be
     // received.
     await analysisBegun.future;
diff --git a/pkg/analysis_server/test/integration/support/integration_tests.dart b/pkg/analysis_server/test/integration/support/integration_tests.dart
index 8b8624c..f0062831 100644
--- a/pkg/analysis_server/test/integration/support/integration_tests.dart
+++ b/pkg/analysis_server/test/integration/support/integration_tests.dart
@@ -190,9 +190,9 @@
     });
     await startServer();
     server.listenToOutput(dispatchNotification);
-    server.exitCode.then((_) {
+    unawaited(server.exitCode.then((_) {
       skipShutdown = true;
-    });
+    }));
     return serverConnected.future;
   }
 
@@ -683,11 +683,11 @@
       arguments,
       environment: {PubCommand.disablePubCommandEnvironmentKey: 'true'},
     );
-    _process.exitCode.then((int code) {
+    unawaited(_process.exitCode.then((int code) {
       if (code != 0) {
         _badDataFromServer('server terminated with exit code $code');
       }
-    });
+    }));
   }
 
   /// Deal with bad data received from the server.
diff --git a/pkg/analyzer/lib/dart/ast/ast.dart b/pkg/analyzer/lib/dart/ast/ast.dart
index 5b3cd79..1f7ed5d 100644
--- a/pkg/analyzer/lib/dart/ast/ast.dart
+++ b/pkg/analyzer/lib/dart/ast/ast.dart
@@ -1703,9 +1703,14 @@
 ///
 /// Clients may not extend, implement or mix-in this class.
 abstract class ExportDirective implements NamespaceDirective {
+  @Deprecated('Use element2 instead')
   @override
   ExportElement? get element;
 
+  /// Return the element associated with this directive, or `null` if the AST
+  /// structure has not been resolved.
+  ExportElement2? get element2;
+
   /// The token representing the 'export' keyword.
   Token get exportKeyword;
 }
diff --git a/pkg/analyzer/lib/dart/element/element.dart b/pkg/analyzer/lib/dart/element/element.dart
index 8d6f524..efcf572 100644
--- a/pkg/analyzer/lib/dart/element/element.dart
+++ b/pkg/analyzer/lib/dart/element/element.dart
@@ -1092,8 +1092,11 @@
 
   R? visitConstructorElement(ConstructorElement element);
 
+  @Deprecated('Override visitExportElement2() instead')
   R? visitExportElement(ExportElement element);
 
+  R? visitExportElement2(ExportElement2 element);
+
   R? visitExtensionElement(ExtensionElement element);
 
   R? visitFieldElement(FieldElement element);
@@ -1194,6 +1197,7 @@
 /// An export directive within a library.
 ///
 /// Clients may not extend, implement or mix-in this class.
+@Deprecated('Use ExportElement2 instead')
 abstract class ExportElement implements UriReferencedElement {
   /// Return a list containing the combinators that were specified as part of
   /// the export directive in the order in which they were specified.
@@ -1204,6 +1208,24 @@
   LibraryElement? get exportedLibrary;
 }
 
+/// A single export directive within a library.
+///
+/// Clients may not extend, implement or mix-in this class.
+abstract class ExportElement2 implements _ExistingElement {
+  /// Return a list containing the combinators that were specified as part of
+  /// the export directive in the order in which they were specified.
+  List<NamespaceCombinator> get combinators;
+
+  /// Returns the [LibraryElement], if [uri] is a [DirectiveUriWithLibrary].
+  LibraryElement? get exportedLibrary;
+
+  /// The offset of the `export` keyword.
+  int get exportKeywordOffset;
+
+  /// The interpretation of the URI specified in the directive.
+  DirectiveUri get uri;
+}
+
 /// An element that represents an extension.
 ///
 /// Clients may not extend, implement or mix-in this class.
@@ -1549,8 +1571,12 @@
   CompilationUnitElement get definingCompilationUnit;
 
   /// Return a list containing all of the exports defined in this library.
+  @Deprecated('Use exports2 instead')
   List<ExportElement> get exports;
 
+  /// Return a list containing all of the exports defined in this library.
+  List<ExportElement2> get exports2;
+
   /// The set of features available to this library.
   ///
   /// Determined by the combination of the language version for the enclosing
diff --git a/pkg/analyzer/lib/dart/element/visitor.dart b/pkg/analyzer/lib/dart/element/visitor.dart
index 4735d6f..d359ddd 100644
--- a/pkg/analyzer/lib/dart/element/visitor.dart
+++ b/pkg/analyzer/lib/dart/element/visitor.dart
@@ -104,10 +104,14 @@
 
   R? visitExecutableElement(ExecutableElement element) => visitElement(element);
 
+  @Deprecated('Override visitExportElement2() instead')
   @override
   R? visitExportElement(ExportElement element) => visitElement(element);
 
   @override
+  R? visitExportElement2(ExportElement2 element) => visitElement(element);
+
+  @override
   R? visitExtensionElement(ExtensionElement element) => visitElement(element);
 
   @override
@@ -240,6 +244,7 @@
     return null;
   }
 
+  @Deprecated('Override visitExportElement2() instead')
   @override
   R? visitExportElement(ExportElement element) {
     element.visitChildren(this);
@@ -247,6 +252,12 @@
   }
 
   @override
+  R? visitExportElement2(ExportElement2 element) {
+    element.visitChildren(this);
+    return null;
+  }
+
+  @override
   R? visitExtensionElement(ExtensionElement element) {
     element.visitChildren(this);
     return null;
@@ -396,10 +407,14 @@
   @override
   R? visitConstructorElement(ConstructorElement element) => null;
 
+  @Deprecated('Override visitExportElement2() instead')
   @override
   R? visitExportElement(ExportElement element) => null;
 
   @override
+  R? visitExportElement2(ExportElement2 element) => null;
+
+  @override
   R? visitExtensionElement(ExtensionElement element) => null;
 
   @override
@@ -493,10 +508,14 @@
   @override
   R? visitConstructorElement(ConstructorElement element) => _throw(element);
 
+  @Deprecated('Override visitExportElement2() instead')
   @override
   R? visitExportElement(ExportElement element) => _throw(element);
 
   @override
+  R? visitExportElement2(ExportElement2 element) => _throw(element);
+
+  @override
   R? visitExtensionElement(ExtensionElement element) => _throw(element);
 
   @override
diff --git a/pkg/analyzer/lib/src/dart/analysis/file_state.dart b/pkg/analyzer/lib/src/dart/analysis/file_state.dart
index 8ec05f7..1bdbc40 100644
--- a/pkg/analyzer/lib/src/dart/analysis/file_state.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/file_state.dart
@@ -1125,6 +1125,7 @@
     return UnlinkedExportDirective(
       combinators: _serializeCombinators(node.combinators),
       configurations: _serializeConfigurations(node.configurations),
+      exportKeywordOffset: node.exportKeyword.offset,
       uri: node.uri.stringValue,
     );
   }
diff --git a/pkg/analyzer/lib/src/dart/analysis/index.dart b/pkg/analyzer/lib/src/dart/analysis/index.dart
index 695b5cd..5660f03 100644
--- a/pkg/analyzer/lib/src/dart/analysis/index.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/index.dart
@@ -687,7 +687,7 @@
 
   @override
   void visitExportDirective(ExportDirective node) {
-    ExportElement? element = node.element;
+    final element = node.element2;
     recordUriReference(element?.exportedLibrary, node.uri);
     super.visitExportDirective(node);
   }
diff --git a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
index fbbea18..acf3573 100644
--- a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
@@ -590,7 +590,7 @@
       } else if (directive is ExportDirectiveImpl) {
         _resolveExportDirective(
           directive: directive,
-          exportElement: _libraryElement.exports[exportIndex],
+          exportElement: _libraryElement.exports2[exportIndex],
           exportState: _library.exports[exportIndex],
           libraryErrorReporter: libraryErrorReporter,
         );
@@ -621,7 +621,7 @@
 
   void _resolveExportDirective({
     required ExportDirectiveImpl directive,
-    required ExportElement exportElement,
+    required ExportElement2 exportElement,
     required ExportDirectiveState exportState,
     required ErrorReporter libraryErrorReporter,
   }) {
diff --git a/pkg/analyzer/lib/src/dart/analysis/unlinked_data.dart b/pkg/analyzer/lib/src/dart/analysis/unlinked_data.dart
index 43877b2..b487c95 100644
--- a/pkg/analyzer/lib/src/dart/analysis/unlinked_data.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/unlinked_data.dart
@@ -122,9 +122,12 @@
 
 /// Unlinked information about an `export` directive.
 class UnlinkedExportDirective extends UnlinkedNamespaceDirective {
+  final int exportKeywordOffset;
+
   UnlinkedExportDirective({
     required super.combinators,
     required super.configurations,
+    required this.exportKeywordOffset,
     required super.uri,
   });
 
@@ -136,6 +139,7 @@
       configurations: reader.readTypedList(
         () => UnlinkedNamespaceDirectiveConfiguration.read(reader),
       ),
+      exportKeywordOffset: reader.readUInt30(),
       uri: reader.readOptionalStringUtf8(),
     );
   }
@@ -151,6 +155,7 @@
         x.write(sink);
       },
     );
+    sink.writeUInt30(exportKeywordOffset);
     sink.writeOptionalStringUtf8(uri);
   }
 }
diff --git a/pkg/analyzer/lib/src/dart/ast/ast.dart b/pkg/analyzer/lib/src/dart/ast/ast.dart
index b8d68c1..56ef705 100644
--- a/pkg/analyzer/lib/src/dart/ast/ast.dart
+++ b/pkg/analyzer/lib/src/dart/ast/ast.dart
@@ -3782,8 +3782,18 @@
       super.combinators,
       super.semicolon);
 
+  @Deprecated('Use element2 instead')
   @override
-  ExportElement? get element => super.element as ExportElement?;
+  ExportElement? get element {
+    final element2 = this.element2;
+    if (element2 is ExportElement2Impl) {
+      return ExportElementImpl(element2);
+    }
+    return null;
+  }
+
+  @override
+  ExportElement2? get element2 => super.element as ExportElement2?;
 
   @override
   Token get firstTokenAfterCommentAndMetadata => exportKeyword;
@@ -3794,7 +3804,7 @@
 
   @override
   LibraryElement? get uriElement {
-    return element?.exportedLibrary;
+    return element2?.exportedLibrary;
   }
 
   @override
@@ -6425,7 +6435,7 @@
   @override
   ImportElement? get element {
     final element2 = this.element2;
-    if (element2 != null) {
+    if (element2 is ImportElement2Impl) {
       return ImportElementImpl(element2);
     }
     return null;
diff --git a/pkg/analyzer/lib/src/dart/ast/element_locator.dart b/pkg/analyzer/lib/src/dart/ast/element_locator.dart
index dd37049..8f676e4 100644
--- a/pkg/analyzer/lib/src/dart/ast/element_locator.dart
+++ b/pkg/analyzer/lib/src/dart/ast/element_locator.dart
@@ -65,7 +65,7 @@
 
   @override
   Element? visitExportDirective(ExportDirective node) {
-    return node.element;
+    return node.element2;
   }
 
   @override
diff --git a/pkg/analyzer/lib/src/dart/element/display_string_builder.dart b/pkg/analyzer/lib/src/dart/element/display_string_builder.dart
index c3e6e47..afbce61 100644
--- a/pkg/analyzer/lib/src/dart/element/display_string_builder.dart
+++ b/pkg/analyzer/lib/src/dart/element/display_string_builder.dart
@@ -94,9 +94,9 @@
     }
   }
 
-  void writeExportElement(ExportElementImpl element) {
+  void writeExportElement(ExportElement2Impl element) {
     _write('export ');
-    (element.exportedLibrary as LibraryElementImpl).appendTo(this);
+    _writeDirectiveUri(element.uri);
   }
 
   void writeExtensionElement(ExtensionElementImpl element) {
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index 4215c02..5b8d90f 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -3119,17 +3119,65 @@
   }
 }
 
-/// A concrete implementation of an [ExportElement].
-class ExportElementImpl extends UriReferencedElementImpl
-    implements ExportElement {
-  @override
-  LibraryElement? exportedLibrary;
-
+class ExportElement2Impl extends _ExistingElementImpl
+    implements ExportElement2 {
   @override
   List<NamespaceCombinator> combinators = const [];
 
-  /// Initialize a newly created export element at the given [offset].
-  ExportElementImpl(int offset) : super(null, offset);
+  @override
+  final int exportKeywordOffset;
+
+  @override
+  final DirectiveUri uri;
+
+  ExportElement2Impl({
+    required this.exportKeywordOffset,
+    required this.uri,
+  }) : super(null, exportKeywordOffset);
+
+  @override
+  LibraryElement? get exportedLibrary {
+    final uri = this.uri;
+    if (uri is DirectiveUriWithLibrary) {
+      return uri.library;
+    }
+    return null;
+  }
+
+  @override
+  int get hashCode => identityHashCode(this);
+
+  @override
+  ElementKind get kind => ElementKind.EXPORT;
+
+  @override
+  bool operator ==(Object other) {
+    return identical(this, other);
+  }
+
+  @override
+  T? accept<T>(ElementVisitor<T> visitor) {
+    return visitor.visitExportElement2(this);
+  }
+
+  @override
+  void appendTo(ElementDisplayStringBuilder builder) {
+    builder.writeExportElement(this);
+  }
+}
+
+/// A concrete implementation of an [ExportElement].
+@Deprecated('Use ExportElement2 instead')
+class ExportElementImpl extends ElementImpl
+    with WrapperElementImpl
+    implements ExportElement {
+  @override
+  final ExportElement2Impl base;
+
+  ExportElementImpl(this.base) : super(base.name, base.nameOffset);
+
+  @override
+  List<NamespaceCombinator> get combinators => base.combinators;
 
   @override
   CompilationUnitElementImpl get enclosingUnit {
@@ -3138,18 +3186,40 @@
   }
 
   @override
-  String get identifier => exportedLibrary!.name;
+  LibraryElement? get exportedLibrary {
+    final uri = base.uri;
+    if (uri is DirectiveUriWithLibrary) {
+      return uri.library;
+    }
+    return null;
+  }
+
+  @override
+  String get identifier => 'export@$nameOffset';
 
   @override
   ElementKind get kind => ElementKind.EXPORT;
 
   @override
-  T? accept<T>(ElementVisitor<T> visitor) => visitor.visitExportElement(this);
+  String? get uri {
+    final uri = base.uri;
+    if (uri is DirectiveUriWithRelativeUriString) {
+      return uri.relativeUriString;
+    } else {
+      return null;
+    }
+  }
 
   @override
-  void appendTo(ElementDisplayStringBuilder builder) {
-    builder.writeExportElement(this);
-  }
+  // TODO: implement uriEnd
+  int get uriEnd => throw UnimplementedError();
+
+  @override
+  // TODO: implement uriOffset
+  int get uriOffset => throw UnimplementedError();
+
+  @override
+  T? accept<T>(ElementVisitor<T> visitor) => visitor.visitExportElement(this);
 }
 
 /// A concrete implementation of an [ExtensionElement].
@@ -3693,8 +3763,11 @@
 
 /// A concrete implementation of an [ImportElement].
 @Deprecated('Use ImportElement2 instead')
-class ImportElementImpl extends ElementImpl implements ImportElement {
-  final ImportElement2 base;
+class ImportElementImpl extends ElementImpl
+    with WrapperElementImpl
+    implements ImportElement {
+  @override
+  final ImportElement2Impl base;
 
   ImportElementImpl(this.base) : super(base.name, base.nameOffset);
 
@@ -3702,82 +3775,10 @@
   List<NamespaceCombinator> get combinators => base.combinators;
 
   @override
-  AnalysisContext get context => base.context;
-
-  @override
-  Element get declaration => base.declaration;
-
-  @override
-  String get displayName => base.displayName;
-
-  @override
-  String? get documentationComment => base.documentationComment;
-
-  @override
-  Element? get enclosingElement => base.enclosingElement;
-
-  @override
-  bool get hasAlwaysThrows => base.hasAlwaysThrows;
-
-  @override
-  bool get hasDeprecated => base.hasDeprecated;
-
-  @override
-  bool get hasDoNotStore => base.hasDoNotStore;
-
-  @override
-  bool get hasFactory => base.hasFactory;
-
-  @override
-  bool get hasInternal => base.hasInternal;
-
-  @override
-  bool get hasIsTest => base.hasIsTest;
-
-  @override
-  bool get hasIsTestGroup => base.hasIsTestGroup;
-
-  @override
-  bool get hasJS => base.hasJS;
-
-  @override
-  bool get hasLiteral => base.hasLiteral;
-
-  @override
-  bool get hasMustCallSuper => base.hasMustCallSuper;
-
-  @override
-  bool get hasNonVirtual => base.hasNonVirtual;
-
-  @override
-  bool get hasOptionalTypeArgs => base.hasOptionalTypeArgs;
-
-  @override
-  bool get hasOverride => base.hasOverride;
-
-  @override
-  bool get hasProtected => base.hasProtected;
-
-  @override
-  bool get hasRequired => base.hasRequired;
-
-  @override
-  bool get hasSealed => base.hasSealed;
-
-  @override
-  bool get hasUseResult => base.hasUseResult;
-
-  @override
-  bool get hasVisibleForOverriding => base.hasVisibleForOverriding;
-
-  @override
-  bool get hasVisibleForTemplate => base.hasVisibleForTemplate;
-
-  @override
-  bool get hasVisibleForTesting => base.hasVisibleForTesting;
-
-  @override
-  int get id => base.id;
+  CompilationUnitElementImpl get enclosingUnit {
+    var enclosingLibrary = enclosingElement as LibraryElementImpl;
+    return enclosingLibrary._definingCompilationUnit;
+  }
 
   @override
   String get identifier => 'import@$nameOffset';
@@ -3795,54 +3796,12 @@
   bool get isDeferred => base.prefix is DeferredImportElementPrefix;
 
   @override
-  bool get isPrivate => base.isPrivate;
-
-  @override
-  bool get isPublic => base.isPublic;
-
-  @override
-  bool get isSynthetic => base.isSynthetic;
-
-  @override
-  ElementKind get kind => base.kind;
-
-  @override
-  LibraryElementImpl get library => base.library as LibraryElementImpl;
-
-  @override
-  Source get librarySource => base.librarySource;
-
-  @override
-  ElementLocation get location => base.location!;
-
-  @override
-  List<ElementAnnotation> get metadata => base.metadata;
-
-  @override
-  String? get name => base.name;
-
-  @override
-  int get nameLength => base.nameLength;
-
-  @override
-  int get nameOffset => base.nameOffset;
-
-  @override
   Namespace get namespace => base.namespace;
 
   @override
-  Element get nonSynthetic => this;
-
-  @override
   PrefixElement? get prefix => base.prefix?.element;
 
   @override
-  AnalysisSession? get session => base.session;
-
-  @override
-  Source get source => base.source;
-
-  @override
   String? get uri {
     final uri = base.uri;
     if (uri is DirectiveUriWithRelativeUriString) {
@@ -3869,47 +3828,6 @@
   T? accept<T>(ElementVisitor<T> visitor) {
     return visitor.visitImportElement(this);
   }
-
-  @override
-  String getDisplayString(
-      {required bool withNullability, bool multiline = false}) {
-    return base.getDisplayString(
-      withNullability: withNullability,
-      multiline: multiline,
-    );
-  }
-
-  @override
-  String getExtendedDisplayName(String? shortName) {
-    return base.getExtendedDisplayName(shortName);
-  }
-
-  @Deprecated('Use isAccessibleIn2() instead')
-  @override
-  bool isAccessibleIn(LibraryElement? library) {
-    return base.isAccessibleIn(library);
-  }
-
-  @override
-  bool isAccessibleIn2(LibraryElement library) {
-    return base.isAccessibleIn2(library);
-  }
-
-  @override
-  E thisOrAncestorMatching<E extends Element>(
-      bool Function(Element p1) predicate) {
-    return base.thisOrAncestorMatching(predicate) as E;
-  }
-
-  @override
-  E? thisOrAncestorOfType<E extends Element>() {
-    return base.thisOrAncestorOfType();
-  }
-
-  @override
-  void visitChildren(ElementVisitor visitor) {
-    base.visitChildren(visitor);
-  }
 }
 
 class ImportElementPrefixImpl implements ImportElementPrefix {
@@ -3979,6 +3897,10 @@
   List<ExtensionElement> get accessibleExtensions => throw UnimplementedError();
 
   @override
+  // TODO: implement exports2
+  List<ExportElement2> get exports2 => throw UnimplementedError();
+
+  @override
   FeatureSet get featureSet => augmented.featureSet;
 
   @override
@@ -4098,14 +4020,11 @@
 
   @override
   List<LibraryElement> get exportedLibraries {
-    HashSet<LibraryElement> libraries = HashSet<LibraryElement>();
-    for (ExportElement element in exports) {
-      var library = element.exportedLibrary;
-      if (library != null) {
-        libraries.add(library);
-      }
-    }
-    return libraries.toList(growable: false);
+    return exports2
+        .map((import) => import.exportedLibrary)
+        .whereNotNull()
+        .toSet()
+        .toList();
   }
 
   @override
@@ -4128,10 +4047,18 @@
     _exportNamespace = exportNamespace;
   }
 
+  @Deprecated('Use exports2 instead')
   @override
   List<ExportElement> get exports {
+    return exports2
+        .map((e) => ExportElementImpl(e as ExportElement2Impl))
+        .toList();
+  }
+
+  @override
+  List<ExportElement2> get exports2 {
     linkedData?.read(this);
-    return _exports;
+    return _exports2;
   }
 
   bool get hasPartOfDirective {
@@ -4148,9 +4075,8 @@
   @override
   List<LibraryElement> get importedLibraries {
     return imports2
-        .map((import) => import.uri)
-        .whereType<DirectiveUriWithLibrary>()
-        .map((uri) => uri.library)
+        .map((import) => import.importedLibrary)
+        .whereNotNull()
         .toSet()
         .toList();
   }
@@ -4158,7 +4084,9 @@
   @Deprecated('Use imports2 instead')
   @override
   List<ImportElement> get imports {
-    return imports2.map(ImportElementImpl.new).toList();
+    return imports2
+        .map((e) => ImportElementImpl(e as ImportElement2Impl))
+        .toList();
   }
 
   @override
@@ -4487,11 +4415,11 @@
 
   /// A list containing specifications of all of the imports defined in this
   /// library.
-  List<ImportElement2> _imports2 = _Sentinel.importElement2;
+  List<ExportElement2> _exports2 = _Sentinel.exportElement2;
 
-  /// A list containing specifications of all of the exports defined in this
+  /// A list containing specifications of all of the imports defined in this
   /// library.
-  List<ExportElement> _exports = _Sentinel.exportElement;
+  List<ImportElement2> _imports2 = _Sentinel.importElement2;
 
   /// The cached list of prefixes.
   List<PrefixElement>? _prefixes;
@@ -4530,22 +4458,25 @@
     return _definingCompilationUnit;
   }
 
+  @Deprecated('Use exports2 instead')
   @override
   List<ExportElement> get exports {
-    return _exports;
+    return exports2
+        .map((e) => ExportElementImpl(e as ExportElement2Impl))
+        .toList();
   }
 
   /// Set the specifications of all of the exports defined in this library to
   /// the given list of [exports].
-  set exports(List<ExportElement> exports) {
-    for (ExportElement exportElement in exports) {
-      (exportElement as ExportElementImpl).enclosingElement = this;
+  set exports2(List<ExportElement2> exports) {
+    for (final exportElement in exports) {
+      (exportElement as ExportElement2Impl).enclosingElement = this;
     }
-    _exports = exports;
+    _exports2 = exports;
   }
 
-  List<ExportElement> get exports_unresolved {
-    return _exports;
+  List<ExportElement2> get exports_unresolved {
+    return _exports2;
   }
 
   @override
@@ -4554,7 +4485,9 @@
   @Deprecated('Use imports2 instead')
   @override
   List<ImportElement> get imports {
-    return _imports2.map(ImportElementImpl.new).toList();
+    return imports2
+        .map((e) => ImportElementImpl(e as ImportElement2Impl))
+        .toList();
   }
 
   /// Set the specifications of all of the imports defined in this library to
@@ -4587,7 +4520,9 @@
   void visitChildren(ElementVisitor visitor) {
     super.visitChildren(visitor);
     _definingCompilationUnit.accept(visitor);
+    // ignore: deprecated_member_use_from_same_package
     safelyVisitChildren(exports, visitor);
+    safelyVisitChildren(exports2, visitor);
     // ignore: deprecated_member_use_from_same_package
     safelyVisitChildren(imports, visitor);
     safelyVisitChildren(imports2, visitor);
@@ -6508,6 +6443,177 @@
   DartObject? computeConstantValue() => null;
 }
 
+@Deprecated('Remove it when removing its uses')
+mixin WrapperElementImpl implements ElementImpl {
+  _ExistingElementImpl get base;
+
+  @override
+  AnalysisContext get context => base.context;
+
+  @override
+  Element get declaration => base.declaration;
+
+  @override
+  String get displayName => base.displayName;
+
+  @override
+  String? get documentationComment => base.documentationComment;
+
+  @override
+  Element? get enclosingElement => base.enclosingElement;
+
+  @override
+  bool get hasAlwaysThrows => base.hasAlwaysThrows;
+
+  @override
+  bool get hasDeprecated => base.hasDeprecated;
+
+  @override
+  bool get hasDoNotStore => base.hasDoNotStore;
+
+  @override
+  bool get hasFactory => base.hasFactory;
+
+  @override
+  bool get hasInternal => base.hasInternal;
+
+  @override
+  bool get hasIsTest => base.hasIsTest;
+
+  @override
+  bool get hasIsTestGroup => base.hasIsTestGroup;
+
+  @override
+  bool get hasJS => base.hasJS;
+
+  @override
+  bool get hasLiteral => base.hasLiteral;
+
+  @override
+  bool get hasMustCallSuper => base.hasMustCallSuper;
+
+  @override
+  bool get hasNonVirtual => base.hasNonVirtual;
+
+  @override
+  bool get hasOptionalTypeArgs => base.hasOptionalTypeArgs;
+
+  @override
+  bool get hasOverride => base.hasOverride;
+
+  @override
+  bool get hasProtected => base.hasProtected;
+
+  @override
+  bool get hasRequired => base.hasRequired;
+
+  @override
+  bool get hasSealed => base.hasSealed;
+
+  @override
+  bool get hasUseResult => base.hasUseResult;
+
+  @override
+  bool get hasVisibleForOverriding => base.hasVisibleForOverriding;
+
+  @override
+  bool get hasVisibleForTemplate => base.hasVisibleForTemplate;
+
+  @override
+  bool get hasVisibleForTesting => base.hasVisibleForTesting;
+
+  @override
+  int get id => base.id;
+
+  @override
+  bool get isPrivate => base.isPrivate;
+
+  @override
+  bool get isPublic => base.isPublic;
+
+  @override
+  bool get isSynthetic => base.isSynthetic;
+
+  @override
+  ElementKind get kind => base.kind;
+
+  @override
+  LibraryElementImpl get library => base.library;
+
+  @override
+  Source get librarySource => base.librarySource;
+
+  @override
+  ElementLocation get location => base.location;
+
+  @override
+  List<ElementAnnotation> get metadata => base.metadata;
+
+  @override
+  String? get name => base.name;
+
+  @override
+  int get nameLength => base.nameLength;
+
+  @override
+  int get nameOffset => base.nameOffset;
+
+  @override
+  Element get nonSynthetic => this;
+
+  @override
+  AnalysisSession? get session => base.session;
+
+  @override
+  Source get source => base.source;
+
+  @override
+  bool operator ==(Object other) {
+    return identical(this, other);
+  }
+
+  @override
+  String getDisplayString(
+      {required bool withNullability, bool multiline = false}) {
+    return base.getDisplayString(
+      withNullability: withNullability,
+      multiline: multiline,
+    );
+  }
+
+  @override
+  String getExtendedDisplayName(String? shortName) {
+    return base.getExtendedDisplayName(shortName);
+  }
+
+  @Deprecated('Use isAccessibleIn2() instead')
+  @override
+  bool isAccessibleIn(LibraryElement? library) {
+    return base.isAccessibleIn(library);
+  }
+
+  @override
+  bool isAccessibleIn2(LibraryElement library) {
+    return base.isAccessibleIn2(library);
+  }
+
+  @override
+  E thisOrAncestorMatching<E extends Element>(
+      bool Function(Element p1) predicate) {
+    return base.thisOrAncestorMatching(predicate) as E;
+  }
+
+  @override
+  E? thisOrAncestorOfType<E extends Element>() {
+    return base.thisOrAncestorOfType();
+  }
+
+  @override
+  void visitChildren(ElementVisitor visitor) {
+    base.visitChildren(visitor);
+  }
+}
+
 abstract class _ExistingElementImpl extends ElementImpl with _HasLibraryMixin {
   _ExistingElementImpl(super.name, super.offset, {super.reference});
 }
@@ -6528,7 +6634,7 @@
 class _Sentinel {
   static final List<ConstructorElement> constructorElement =
       List.unmodifiable([]);
-  static final List<ExportElement> exportElement = List.unmodifiable([]);
+  static final List<ExportElement2> exportElement2 = List.unmodifiable([]);
   static final List<FieldElement> fieldElement = List.unmodifiable([]);
   static final List<AugmentationImportElement> augmentationImportElement =
       List.unmodifiable([]);
diff --git a/pkg/analyzer/lib/src/dart/element/scope.dart b/pkg/analyzer/lib/src/dart/element/scope.dart
index 1fab302..d9755fd 100644
--- a/pkg/analyzer/lib/src/dart/element/scope.dart
+++ b/pkg/analyzer/lib/src/dart/element/scope.dart
@@ -284,7 +284,7 @@
   ) {
     if (exportedReference is ExportedReferenceExported) {
       for (final exportIndex in exportedReference.indexes) {
-        final export = importedLibrary.exports[exportIndex];
+        final export = importedLibrary.exports2[exportIndex];
         if (!export.hasDeprecated) {
           return false;
         }
diff --git a/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart
index 5e0f754..ea681e1 100644
--- a/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart
@@ -891,7 +891,7 @@
   /// Returns the 'type' of `this`, when accessed as a "reference", not
   /// immediately followed by parentheses and arguments.
   ///
-  /// For all elements that don't have a type (for example, [ExportElement]),
+  /// For all elements that don't have a type (for example, [ExportElement2]),
   /// `null` is returned. For [PropertyAccessorElement], the return value is
   /// returned. For all other elements, their `type` property is returned.
   DartType? get referenceType {
diff --git a/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart b/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
index 5f94025..0c0a941 100644
--- a/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
@@ -432,8 +432,8 @@
 
   @override
   void visitExportDirective(ExportDirective node) {
-    var element = node.element;
-    if (element is ExportElementImpl) {
+    var element = node.element2;
+    if (element is ExportElement2Impl) {
       _setOrCreateMetadataElements(element, node.metadata);
     }
 
diff --git a/pkg/analyzer/lib/src/dart/resolver/scope.dart b/pkg/analyzer/lib/src/dart/resolver/scope.dart
index 79865a7..61e69b7 100644
--- a/pkg/analyzer/lib/src/dart/resolver/scope.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/scope.dart
@@ -135,7 +135,7 @@
 class NamespaceBuilder {
   /// Create a namespace representing the export namespace of the given
   /// [element].
-  Namespace createExportNamespaceForDirective(ExportElement element) {
+  Namespace createExportNamespaceForDirective(ExportElement2 element) {
     var exportedLibrary = element.exportedLibrary;
     if (exportedLibrary == null) {
       //
diff --git a/pkg/analyzer/lib/src/error/best_practices_verifier.dart b/pkg/analyzer/lib/src/error/best_practices_verifier.dart
index bd89227..c39393a 100644
--- a/pkg/analyzer/lib/src/error/best_practices_verifier.dart
+++ b/pkg/analyzer/lib/src/error/best_practices_verifier.dart
@@ -1071,7 +1071,7 @@
           [libraryElement.displayName]);
     }
     var exportNamespace =
-        NamespaceBuilder().createExportNamespaceForDirective(node.element!);
+        NamespaceBuilder().createExportNamespaceForDirective(node.element2!);
     exportNamespace.definedNames.forEach((String name, Element element) {
       if (element.hasInternal) {
         _errorReporter.reportErrorForNode(
diff --git a/pkg/analyzer/lib/src/error/dead_code_verifier.dart b/pkg/analyzer/lib/src/error/dead_code_verifier.dart
index 9339c45..ecb9a0f 100644
--- a/pkg/analyzer/lib/src/error/dead_code_verifier.dart
+++ b/pkg/analyzer/lib/src/error/dead_code_verifier.dart
@@ -47,7 +47,7 @@
 
   @override
   void visitExportDirective(ExportDirective node) {
-    ExportElement? exportElement = node.element;
+    final exportElement = node.element2;
     if (exportElement != null) {
       // The element is null when the URI is invalid.
       LibraryElement? library = exportElement.exportedLibrary;
diff --git a/pkg/analyzer/lib/src/generated/element_resolver.dart b/pkg/analyzer/lib/src/generated/element_resolver.dart
index 26fca88..b05920a 100644
--- a/pkg/analyzer/lib/src/generated/element_resolver.dart
+++ b/pkg/analyzer/lib/src/generated/element_resolver.dart
@@ -57,7 +57,7 @@
 /// 5. Every [ImportDirective] and [ExportDirective] should resolve to the
 ///    element representing the library being specified by the directive unless
 ///    the specified library does not exist (an [ImportElement2] or
-///    [ExportElement]).
+///    [ExportElement2]).
 /// 6. The identifier representing the prefix in an [ImportDirective] should
 ///    resolve to the element representing the prefix (a [PrefixElement]).
 /// 7. The identifiers in the hide and show combinators in [ImportDirective]s
@@ -188,7 +188,7 @@
   }
 
   void visitExportDirective(ExportDirective node) {
-    var exportElement = node.element;
+    var exportElement = node.element2;
     if (exportElement != null) {
       // The element is null when the URI is invalid
       // TODO(brianwilkerson) Figure out whether the element can ever be
diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart
index 28d5b16..4289ae3 100644
--- a/pkg/analyzer/lib/src/generated/error_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/error_verifier.dart
@@ -621,7 +621,7 @@
 
   @override
   void visitExportDirective(ExportDirective node) {
-    var exportElement = node.element;
+    var exportElement = node.element2;
     if (exportElement != null) {
       var exportedLibrary = exportElement.exportedLibrary;
       _checkForAmbiguousExport(node, exportElement, exportedLibrary);
@@ -1528,13 +1528,13 @@
 
   /// Verify that the export namespace of the given export [directive] does not
   /// export any name already exported by another export directive. The
-  /// [exportElement] is the [ExportElement] retrieved from the node. If the
+  /// [exportElement] is the [ExportElement2] retrieved from the node. If the
   /// element in the node was `null`, then this method is not called. The
   /// [exportedLibrary] is the library element containing the exported element.
   ///
   /// See [CompileTimeErrorCode.AMBIGUOUS_EXPORT].
   void _checkForAmbiguousExport(ExportDirective directive,
-      ExportElement exportElement, LibraryElement? exportedLibrary) {
+      ExportElement2 exportElement, LibraryElement? exportedLibrary) {
     if (exportedLibrary == null) {
       return;
     }
@@ -2495,12 +2495,12 @@
 
   /// Check that if the visiting library is not system, then any given library
   /// should not be SDK internal library. The [exportElement] is the
-  /// [ExportElement] retrieved from the node, if the element in the node was
+  /// [ExportElement2] retrieved from the node, if the element in the node was
   /// `null`, then this method is not called.
   ///
   /// See [CompileTimeErrorCode.EXPORT_INTERNAL_LIBRARY].
   void _checkForExportInternalLibrary(
-      ExportDirective directive, ExportElement exportElement) {
+      ExportDirective directive, ExportElement2 exportElement) {
     if (_isInSystemLibrary) {
       return;
     }
@@ -2537,7 +2537,7 @@
       return;
     }
 
-    var element = node.element!;
+    var element = node.element2!;
     // TODO(scheglov) Expose from ExportElement.
     var namespace =
         NamespaceBuilder().createExportNamespaceForDirective(element);
diff --git a/pkg/analyzer/lib/src/generated/testing/element_factory.dart b/pkg/analyzer/lib/src/generated/testing/element_factory.dart
index 49121ab4..8cdade2 100644
--- a/pkg/analyzer/lib/src/generated/testing/element_factory.dart
+++ b/pkg/analyzer/lib/src/generated/testing/element_factory.dart
@@ -136,14 +136,6 @@
           [List<DartType> argumentTypes = const []]) =>
       constructorElement(definingClass, name, false, argumentTypes);
 
-  static ExportElementImpl exportFor(LibraryElement exportedLibrary,
-      [List<NamespaceCombinator> combinators = const <NamespaceCombinator>[]]) {
-    ExportElementImpl spec = ExportElementImpl(-1);
-    spec.exportedLibrary = exportedLibrary;
-    spec.combinators = combinators;
-    return spec;
-  }
-
   static FieldElementImpl fieldElement(
       String name, bool isStatic, bool isFinal, bool isConst, DartType type,
       {Expression? initializer}) {
diff --git a/pkg/analyzer/lib/src/summary2/bundle_reader.dart b/pkg/analyzer/lib/src/summary2/bundle_reader.dart
index 268706f..88a738e 100644
--- a/pkg/analyzer/lib/src/summary2/bundle_reader.dart
+++ b/pkg/analyzer/lib/src/summary2/bundle_reader.dart
@@ -381,12 +381,15 @@
       }
     }
 
-    for (var export in element.exports) {
-      export as ExportElementImpl;
+    for (var export in element.exports2) {
+      export as ExportElement2Impl;
       export.metadata = reader._readAnnotationList(
         unitElement: unitElement,
       );
-      export.exportedLibrary = reader.readElement() as LibraryElementImpl?;
+      final uri = export.uri;
+      if (uri is DirectiveUriWithLibraryImpl) {
+        uri.library = reader.libraryOfUri(uri.source.uri);
+      }
     }
 
     for (final part in element.parts2) {
@@ -453,7 +456,11 @@
         libraryElement: libraryElement,
       );
     });
-    libraryElement.exports = _reader.readTypedList(_readExportElement);
+    libraryElement.exports2 = _reader.readTypedList(() {
+      return _readExportElement(
+        libraryElement: libraryElement,
+      );
+    });
     LibraryElementFlags.read(_reader, libraryElement);
 
     for (final import in libraryElement.imports2) {
@@ -728,10 +735,19 @@
     }
   }
 
-  ExportElementImpl _readExportElement() {
-    var element = ExportElementImpl(-1);
-    element.uri = _reader.readOptionalStringReference();
-    element.combinators = _reader.readTypedList(_readNamespaceCombinator);
+  ExportElement2Impl _readExportElement({
+    required LibraryElementImpl libraryElement,
+  }) {
+    final uri = _readDirectiveUri(
+      libraryElement: libraryElement,
+    );
+    // TODO(scheglov) pass to the constructor
+    final combinators = _reader.readTypedList(_readNamespaceCombinator);
+
+    final element = ExportElement2Impl(
+      exportKeywordOffset: -1,
+      uri: uri,
+    )..combinators = combinators;
     return element;
   }
 
diff --git a/pkg/analyzer/lib/src/summary2/bundle_writer.dart b/pkg/analyzer/lib/src/summary2/bundle_writer.dart
index 1d6844a..8ff8bbd 100644
--- a/pkg/analyzer/lib/src/summary2/bundle_writer.dart
+++ b/pkg/analyzer/lib/src/summary2/bundle_writer.dart
@@ -103,7 +103,7 @@
     _writeLanguageVersion(libraryElement.languageVersion);
     _resolutionSink._writeAnnotationList(libraryElement.metadata);
     _writeList(libraryElement.imports2, _writeImportElement);
-    _writeList(libraryElement.exports, _writeExportElement);
+    _writeList(libraryElement.exports2, _writeExportElement);
     for (final partElement in libraryElement.parts2) {
       _resolutionSink._writeAnnotationList(partElement.metadata);
     }
@@ -254,11 +254,11 @@
     });
   }
 
-  void _writeExportElement(ExportElement element) {
-    _sink._writeOptionalStringReference(element.uri);
-    _sink.writeList(element.combinators, _writeNamespaceCombinator);
+  void _writeExportElement(ExportElement2 element) {
+    element as ExportElement2Impl;
     _resolutionSink._writeAnnotationList(element.metadata);
-    _resolutionSink.writeElement(element.exportedLibrary);
+    _writeDirectiveUri(element.uri);
+    _sink.writeList(element.combinators, _writeNamespaceCombinator);
   }
 
   void _writeExtensionElement(ExtensionElement element) {
diff --git a/pkg/analyzer/lib/src/summary2/element_builder.dart b/pkg/analyzer/lib/src/summary2/element_builder.dart
index da83e3f..a4aace3 100644
--- a/pkg/analyzer/lib/src/summary2/element_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/element_builder.dart
@@ -12,21 +12,19 @@
 import 'package:analyzer/src/dart/ast/token.dart';
 import 'package:analyzer/src/dart/element/element.dart';
 import 'package:analyzer/src/dart/element/type.dart';
-import 'package:analyzer/src/generated/utilities_dart.dart';
 import 'package:analyzer/src/summary2/ast_binary_tokens.dart';
 import 'package:analyzer/src/summary2/library_builder.dart';
 import 'package:analyzer/src/summary2/link.dart';
 import 'package:analyzer/src/summary2/reference.dart';
 import 'package:analyzer/src/util/comment.dart';
-import 'package:analyzer/src/util/uri.dart';
 import 'package:collection/collection.dart';
 
 class ElementBuilder extends ThrowingAstVisitor<void> {
   final LibraryBuilder _libraryBuilder;
   final CompilationUnitElementImpl _unitElement;
 
-  final _exports = <ExportElement>[];
   var _isFirstLibraryDirective = true;
+  var _exportDirectiveIndex = 0;
   var _importDirectiveIndex = 0;
   var _partDirectiveIndex = 0;
 
@@ -63,8 +61,6 @@
   void buildLibraryElementChildren(CompilationUnit unit) {
     unit.directives.accept(this);
 
-    _libraryElement.exports = _exports;
-
     if (_isFirstLibraryDirective) {
       _isFirstLibraryDirective = false;
       var firstDirective = unit.directives.firstOrNull;
@@ -369,20 +365,11 @@
 
   @override
   void visitExportDirective(covariant ExportDirectiveImpl node) {
-    var element = ExportElementImpl(node.exportKeyword.offset);
-    element.combinators = _buildCombinators(node.combinators);
-
-    try {
-      element.exportedLibrary = _selectLibrary(node);
-    } on ArgumentError {
-      // TODO(scheglov) Remove this when using `ExportDirectiveState`.
-    }
-
-    element.metadata = _buildAnnotations(node.metadata);
-    element.uri = node.uri.stringValue;
-
-    node.element = element;
-    _exports.add(element);
+    final index = _exportDirectiveIndex++;
+    final exportElement = _libraryElement.exports2[index];
+    exportElement as ExportElement2Impl;
+    exportElement.metadata = _buildAnnotations(node.metadata);
+    node.element = exportElement;
   }
 
   @override
@@ -1173,51 +1160,6 @@
     }
   }
 
-  Uri? _selectAbsoluteUri(NamespaceDirective directive) {
-    var relativeUriStr = _selectRelativeUri(
-      directive.configurations,
-      directive.uri.stringValue,
-    );
-    if (relativeUriStr == null) {
-      return null;
-    }
-
-    Uri relativeUri;
-    try {
-      relativeUri = Uri.parse(relativeUriStr);
-    } on FormatException {
-      return null;
-    }
-
-    var absoluteUri = resolveRelativeUri(_libraryBuilder.uri, relativeUri);
-
-    var sourceFactory = _linker.analysisContext.sourceFactory;
-    return rewriteToCanonicalUri(sourceFactory, absoluteUri);
-  }
-
-  LibraryElement? _selectLibrary(NamespaceDirective node) {
-    var uri = _selectAbsoluteUri(node);
-    if (uri == null) {
-      return null;
-    } else {
-      return _linker.elementFactory.libraryOfUri(uri);
-    }
-  }
-
-  String? _selectRelativeUri(
-    List<Configuration> configurations,
-    String? defaultUri,
-  ) {
-    for (var configuration in configurations) {
-      var name = configuration.name.components.join('.');
-      var value = configuration.value?.stringValue ?? 'true';
-      if (_linker.declaredVariables.get(name) == value) {
-        return configuration.uri.stringValue;
-      }
-    }
-    return defaultUri;
-  }
-
   bool _shouldBeConstField(FieldDeclaration node) {
     var fields = node.fields;
     return fields.isConst ||
@@ -1276,24 +1218,6 @@
     return annotations;
   }
 
-  static List<NamespaceCombinator> _buildCombinators(
-    List<Combinator> combinators,
-  ) {
-    return combinators.map((node) {
-      if (node is HideCombinator) {
-        return HideElementCombinatorImpl()
-          ..hiddenNames = node.hiddenNames.nameList;
-      }
-      if (node is ShowCombinator) {
-        return ShowElementCombinatorImpl()
-          ..offset = node.keyword.offset
-          ..end = node.end
-          ..shownNames = node.shownNames.nameList;
-      }
-      throw UnimplementedError('${node.runtimeType}');
-    }).toList();
-  }
-
   static void _setCodeRange(ElementImpl element, AstNode node) {
     var parent = node.parent;
     if (node is FormalParameter && parent is DefaultFormalParameter) {
@@ -1455,9 +1379,3 @@
     return reference;
   }
 }
-
-extension on Iterable<SimpleIdentifier> {
-  List<String> get nameList {
-    return map((e) => e.name).toList();
-  }
-}
diff --git a/pkg/analyzer/lib/src/summary2/informative_data.dart b/pkg/analyzer/lib/src/summary2/informative_data.dart
index b684e30..26451c7 100644
--- a/pkg/analyzer/lib/src/summary2/informative_data.dart
+++ b/pkg/analyzer/lib/src/summary2/informative_data.dart
@@ -464,11 +464,11 @@
       },
     );
 
-    forCorrespondingPairs<ExportElement, _InfoExport>(
+    forCorrespondingPairs<ExportElement2, _InfoExport>(
       element.exports_unresolved,
       info.exports,
       (element, info) {
-        element as ExportElementImpl;
+        element as ExportElement2Impl;
         element.nameOffset = info.nameOffset;
         _applyToCombinators(element.combinators, info.combinators);
       },
@@ -488,7 +488,7 @@
       (applier) {
         applier.applyToMetadata(element);
         applier.applyToImports(element.imports2);
-        applier.applyToDirectives(element.exports);
+        applier.applyToExports(element.exports2);
         applier.applyToPartDirectives(element.parts2);
       },
     );
@@ -1671,18 +1671,18 @@
     }
   }
 
-  void applyToDirectives(List<UriReferencedElement> elements) {
-    for (var element in elements) {
-      applyToMetadata(element);
-    }
-  }
-
   void applyToEnumConstants(List<FieldElement> constants) {
     for (var constant in constants) {
       applyToMetadata(constant);
     }
   }
 
+  void applyToExports(List<ExportElement2> elements) {
+    for (var element in elements) {
+      applyToMetadata(element);
+    }
+  }
+
   void applyToFormalParameters(List<ParameterElement> formalParameters) {
     for (var parameter in formalParameters) {
       applyToMetadata(parameter);
diff --git a/pkg/analyzer/lib/src/summary2/library_builder.dart b/pkg/analyzer/lib/src/summary2/library_builder.dart
index 2e9b765..9af3b1b 100644
--- a/pkg/analyzer/lib/src/summary2/library_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/library_builder.dart
@@ -9,6 +9,7 @@
 import 'package:analyzer/dart/element/visitor.dart';
 import 'package:analyzer/src/dart/analysis/file_state.dart' hide DirectiveUri;
 import 'package:analyzer/src/dart/analysis/file_state.dart' as file_state;
+import 'package:analyzer/src/dart/analysis/unlinked_data.dart';
 import 'package:analyzer/src/dart/ast/ast.dart' as ast;
 import 'package:analyzer/src/dart/ast/mixin_super_invoked_names.dart';
 import 'package:analyzer/src/dart/element/element.dart';
@@ -89,7 +90,7 @@
   }
 
   void addExporters() {
-    final exportElements = element.exports;
+    final exportElements = element.exports2;
     for (var i = 0; i < exportElements.length; i++) {
       final exportElement = exportElements[i];
 
@@ -132,6 +133,7 @@
   /// Build elements for declarations in the library units, add top-level
   /// declarations to the local scope, for combining into export scopes.
   void buildElements() {
+    element.exports2 = kind.exports.map(_buildExport).toList();
     element.imports2 = kind.imports.map(_buildImport).toList();
 
     for (var linkingUnit in units) {
@@ -404,6 +406,89 @@
     }
   }
 
+  List<NamespaceCombinator> _buildCombinators(
+    List<UnlinkedCombinator> combinators2,
+  ) {
+    return combinators2.map((unlinked) {
+      if (unlinked.isShow) {
+        return ShowElementCombinatorImpl()
+          ..offset = unlinked.keywordOffset
+          ..end = unlinked.endOffset
+          ..shownNames = unlinked.names;
+      } else {
+        // TODO(scheglov) Why no offsets?
+        return HideElementCombinatorImpl()..hiddenNames = unlinked.names;
+      }
+    }).toList();
+  }
+
+  ExportElement2Impl _buildExport(ExportDirectiveState state) {
+    final combinators = _buildCombinators(
+      state.directive.combinators,
+    );
+
+    final DirectiveUri uri;
+    if (state is ExportDirectiveWithFile) {
+      final exportedLibraryKind = state.exportedLibrary;
+      if (exportedLibraryKind != null) {
+        final exportedFile = exportedLibraryKind.file;
+        final exportedUri = exportedFile.uri;
+        final elementFactory = linker.elementFactory;
+        final exportedLibrary = elementFactory.libraryOfUri2(exportedUri);
+        uri = DirectiveUriWithLibraryImpl(
+          relativeUriString: state.selectedUri.relativeUriStr,
+          relativeUri: state.selectedUri.relativeUri,
+          source: exportedLibrary.source,
+          library: exportedLibrary,
+        );
+      } else {
+        uri = DirectiveUriWithSourceImpl(
+          relativeUriString: state.selectedUri.relativeUriStr,
+          relativeUri: state.selectedUri.relativeUri,
+          source: state.exportedSource,
+        );
+      }
+    } else if (state is ExportDirectiveWithInSummarySource) {
+      final exportedLibrarySource = state.exportedLibrarySource;
+      if (exportedLibrarySource != null) {
+        final exportedUri = exportedLibrarySource.uri;
+        final elementFactory = linker.elementFactory;
+        final exportedLibrary = elementFactory.libraryOfUri2(exportedUri);
+        uri = DirectiveUriWithLibraryImpl(
+          relativeUriString: state.selectedUri.relativeUriStr,
+          relativeUri: state.selectedUri.relativeUri,
+          source: exportedLibrary.source,
+          library: exportedLibrary,
+        );
+      } else {
+        uri = DirectiveUriWithSourceImpl(
+          relativeUriString: state.selectedUri.relativeUriStr,
+          relativeUri: state.selectedUri.relativeUri,
+          source: state.exportedSource,
+        );
+      }
+    } else {
+      final selectedUri = state.selectedUri;
+      if (selectedUri is file_state.DirectiveUriWithUri) {
+        uri = DirectiveUriWithRelativeUriImpl(
+          relativeUriString: selectedUri.relativeUriStr,
+          relativeUri: selectedUri.relativeUri,
+        );
+      } else if (selectedUri is file_state.DirectiveUriWithString) {
+        uri = DirectiveUriWithRelativeUriStringImpl(
+          relativeUriString: selectedUri.relativeUriStr,
+        );
+      } else {
+        uri = DirectiveUriImpl();
+      }
+    }
+
+    return ExportElement2Impl(
+      exportKeywordOffset: state.directive.exportKeywordOffset,
+      uri: uri,
+    )..combinators = combinators;
+  }
+
   ImportElement2Impl _buildImport(ImportDirectiveState state) {
     final importPrefix = state.directive.prefix.mapOrNull((unlinked) {
       if (unlinked.deferredOffset != null) {
@@ -423,17 +508,9 @@
       }
     });
 
-    final combinators = state.directive.combinators.map((unlinked) {
-      if (unlinked.isShow) {
-        return ShowElementCombinatorImpl()
-          ..offset = unlinked.keywordOffset
-          ..end = unlinked.endOffset
-          ..shownNames = unlinked.names;
-      } else {
-        // TODO(scheglov) Why no offsets?
-        return HideElementCombinatorImpl()..hiddenNames = unlinked.names;
-      }
-    }).toList();
+    final combinators = _buildCombinators(
+      state.directive.combinators,
+    );
 
     final DirectiveUri uri;
     if (state is ImportDirectiveWithFile) {
diff --git a/pkg/analyzer/lib/src/test_utilities/find_element.dart b/pkg/analyzer/lib/src/test_utilities/find_element.dart
index 3d7b0c3..d104ed3 100644
--- a/pkg/analyzer/lib/src/test_utilities/find_element.dart
+++ b/pkg/analyzer/lib/src/test_utilities/find_element.dart
@@ -18,10 +18,10 @@
   @override
   CompilationUnitElement get unitElement => unit.declaredElement!;
 
-  ExportElement export(String targetUri) {
-    ExportElement? result;
+  ExportElement2 export(String targetUri) {
+    ExportElement2? result;
 
-    for (var export in libraryElement.exports) {
+    for (var export in libraryElement.exports2) {
       var exportedUri = export.exportedLibrary?.source.uri.toString();
       if (exportedUri == targetUri) {
         if (result != null) {
diff --git a/pkg/analyzer/test/generated/element_resolver_test.dart b/pkg/analyzer/test/generated/element_resolver_test.dart
index af43c44..d34a268 100644
--- a/pkg/analyzer/test/generated/element_resolver_test.dart
+++ b/pkg/analyzer/test/generated/element_resolver_test.dart
@@ -373,7 +373,7 @@
     await assertNoErrorsInCode('''
 export 'dart:math';
 ''');
-    expect(findNode.export('dart:math').element!.exportedLibrary!.name,
+    expect(findNode.export('dart:math').element2!.exportedLibrary!.name,
         'dart.math');
   }
 
diff --git a/pkg/analyzer/test/generated/resolver_test_case.dart b/pkg/analyzer/test/generated/resolver_test_case.dart
index d0f7199..4a3c9563 100644
--- a/pkg/analyzer/test/generated/resolver_test_case.dart
+++ b/pkg/analyzer/test/generated/resolver_test_case.dart
@@ -87,7 +87,7 @@
 
   @override
   void visitExportDirective(ExportDirective node) {
-    _checkResolved(node, node.element, (node) => node is ExportElement);
+    _checkResolved(node, node.element2, (node) => node is ExportElement2);
   }
 
   @override
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart
index b2fac8c..d35edce 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart
@@ -7755,7 +7755,7 @@
     final cImport = unit.declaredElement!.library.imports2[1];
 
     LibraryElement bLibrary = bImport.importedLibrary!;
-    LibraryElement aLibrary = bLibrary.exports[0].exportedLibrary!;
+    LibraryElement aLibrary = bLibrary.exports2[0].exportedLibrary!;
     ClassElement aClass = aLibrary.getType('A')!;
 
     {
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
index 5226986..559ed04 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
@@ -2090,8 +2090,8 @@
     ResolvedUnitResult result = await driver.getResultValid(testFile);
     expect(result.path, testFile);
     // Has only exports for valid URIs.
-    List<ExportElement> imports = result.libraryElement.exports;
-    expect(imports.map((import) {
+    final exports = result.libraryElement.exports2;
+    expect(exports.map((import) {
       return import.exportedLibrary?.source.uri.toString();
     }), ['dart:async', null, 'dart:math']);
   }
diff --git a/pkg/analyzer/test/src/summary/element_text.dart b/pkg/analyzer/test/src/summary/element_text.dart
index 1177e37..0ca1f33 100644
--- a/pkg/analyzer/test/src/summary/element_text.dart
+++ b/pkg/analyzer/test/src/summary/element_text.dart
@@ -163,7 +163,7 @@
           .toList();
       _writeElements('imports', imports, _writeImportElement);
 
-      _writeElements('exports', e.exports, _writeExportElement);
+      _writeElements('exports', e.exports2, _writeExportElement);
 
       _writelnWithIndent('definingUnit');
       _withIndent(() {
@@ -496,9 +496,9 @@
     }
   }
 
-  void _writeExportElement(ExportElement e) {
+  void _writeExportElement(ExportElement2 e) {
     _writeIndentedLine(() {
-      _writeUri(e.exportedLibrary?.source);
+      _writeDirectiveUri(e.uri);
     });
 
     _withIndent(() {
@@ -979,19 +979,6 @@
     );
     _writeElements('functions', e.functions, _writeFunctionElement);
   }
-
-  void _writeUri(Source? source) {
-    if (source != null) {
-      Uri uri = source.uri;
-      String uriStr = uri.toString();
-      if (uri.isScheme('file')) {
-        uriStr = uri.pathSegments.last;
-      }
-      buffer.write(uriStr);
-    } else {
-      buffer.write('<unresolved>');
-    }
-  }
 }
 
 class _Replacement {
diff --git a/pkg/analyzer/test/src/summary/elements_test.dart b/pkg/analyzer/test/src/summary/elements_test.dart
index 91fbd41..309f16f 100644
--- a/pkg/analyzer/test/src/summary/elements_test.dart
+++ b/pkg/analyzer/test/src/summary/elements_test.dart
@@ -20038,7 +20038,7 @@
     A: package:test/foo.dart;A
 ''',
         withExportScope: true);
-    expect(library.exports[0].exportedLibrary!.source.shortName, 'foo.dart');
+    expect(library.exports2[0].exportedLibrary!.source.shortName, 'foo.dart');
   }
 
   test_export_configurations_useFirst() async {
@@ -20067,7 +20067,8 @@
     A: package:test/foo_io.dart;A
 ''',
         withExportScope: true);
-    expect(library.exports[0].exportedLibrary!.source.shortName, 'foo_io.dart');
+    expect(
+        library.exports2[0].exportedLibrary!.source.shortName, 'foo_io.dart');
   }
 
   test_export_configurations_useSecond() async {
@@ -20096,7 +20097,7 @@
     A: package:test/foo_html.dart;A
 ''',
         withExportScope: true);
-    ExportElement export = library.exports[0];
+    final export = library.exports2[0];
     expect(export.exportedLibrary!.source.shortName, 'foo_html.dart');
   }
 
@@ -20357,7 +20358,9 @@
     var library = await buildLibrary('''
 export 'foo.dart';
 ''');
-    expect(library.exports[0].uri, 'foo.dart');
+
+    final uri = library.exports2[0].uri as DirectiveUriWithLibrary;
+    expect(uri.relativeUriString, 'foo.dart');
   }
 
   test_export_variable() async {
@@ -25355,46 +25358,6 @@
 ''');
   }
 
-  test_invalidUris() async {
-    var library = await buildLibrary(r'''
-import ':[invaliduri]';
-import ':[invaliduri]:foo.dart';
-import 'a1.dart';
-import ':[invaliduri]';
-import ':[invaliduri]:foo.dart';
-
-export ':[invaliduri]';
-export ':[invaliduri]:foo.dart';
-export 'a2.dart';
-export ':[invaliduri]';
-export ':[invaliduri]:foo.dart';
-
-part ':[invaliduri]';
-part 'a3.dart';
-part ':[invaliduri]';
-''');
-    checkElementText(library, r'''
-library
-  imports
-    relativeUriString ':[invaliduri]'
-    relativeUriString ':[invaliduri]:foo.dart'
-    package:test/a1.dart
-    relativeUriString ':[invaliduri]'
-    relativeUriString ':[invaliduri]:foo.dart'
-  exports
-    <unresolved>
-    <unresolved>
-    package:test/a2.dart
-    <unresolved>
-    <unresolved>
-  definingUnit
-  parts
-    relativeUriString ':[invaliduri]'
-    source 'package:test/a3.dart'
-    relativeUriString ':[invaliduri]'
-''');
-  }
-
   test_library() async {
     var library = await buildLibrary('');
     checkElementText(library, r'''
@@ -25434,6 +25397,96 @@
 ''');
   }
 
+  test_library_exports_noRelativeUriStr() async {
+    final library = await buildLibrary(r'''
+export '${'foo'}.dart';
+''');
+    checkElementText(library, r'''
+library
+  exports
+    noRelativeUriString
+  definingUnit
+''');
+  }
+
+  test_library_exports_withRelativeUri_emptyUriSelf() async {
+    final library = await buildLibrary(r'''
+export '';
+''');
+    checkElementText(library, r'''
+library
+  exports
+    package:test/test.dart
+  definingUnit
+''');
+  }
+
+  test_library_exports_withRelativeUri_noSource() async {
+    final library = await buildLibrary(r'''
+export 'foo:bar';
+''');
+    checkElementText(library, r'''
+library
+  exports
+    relativeUri 'foo:bar'
+  definingUnit
+''');
+  }
+
+  test_library_exports_withRelativeUri_notExists() async {
+    final library = await buildLibrary(r'''
+export 'a.dart';
+''');
+    checkElementText(library, r'''
+library
+  exports
+    package:test/a.dart
+  definingUnit
+''');
+  }
+
+  test_library_exports_withRelativeUri_notLibrary_augmentation() async {
+    newFile('$testPackageLibPath/a.dart', r'''
+library augment 'test.dart';
+''');
+    final library = await buildLibrary(r'''
+export 'a.dart';
+''');
+    checkElementText(library, r'''
+library
+  exports
+    source 'package:test/a.dart'
+  definingUnit
+''');
+  }
+
+  test_library_exports_withRelativeUri_notLibrary_part() async {
+    newFile('$testPackageLibPath/a.dart', r'''
+part of other.lib;
+''');
+    final library = await buildLibrary(r'''
+export 'a.dart';
+''');
+    checkElementText(library, r'''
+library
+  exports
+    source 'package:test/a.dart'
+  definingUnit
+''');
+  }
+
+  test_library_exports_withRelativeUriString() async {
+    final library = await buildLibrary(r'''
+export ':';
+''');
+    checkElementText(library, r'''
+library
+  exports
+    relativeUriString ':'
+  definingUnit
+''');
+  }
+
   test_library_imports_noRelativeUriStr() async {
     final library = await buildLibrary(r'''
 import '${'foo'}.dart';
diff --git a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
index c88cc6a..52d0d26 100644
--- a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
+++ b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
@@ -398,7 +398,7 @@
     _writeln('ExportDirective');
     _withIndent(() {
       _writeNamedChildEntities(node);
-      _writeElement('element', node.element);
+      _writeElement('element', node.element2);
       _writeSource('selectedSource', node.selectedSource);
       _writeRaw('selectedUriContent', node.selectedUriContent);
       _writeRaw('uriContent', node.uriContent);
diff --git a/pkg/analyzer/test/util/element_type_matchers.dart b/pkg/analyzer/test/util/element_type_matchers.dart
index f05ab87..e03fa53 100644
--- a/pkg/analyzer/test/util/element_type_matchers.dart
+++ b/pkg/analyzer/test/util/element_type_matchers.dart
@@ -15,7 +15,7 @@
 
 const isExecutableElement = TypeMatcher<ExecutableElement>();
 
-const isExportElement = TypeMatcher<ExportElement>();
+const isExportElement = TypeMatcher<ExportElement2>();
 
 const isFieldElement = TypeMatcher<FieldElement>();
 
diff --git a/pkg/analyzer_plugin/lib/utilities/navigation/navigation_dart.dart b/pkg/analyzer_plugin/lib/utilities/navigation/navigation_dart.dart
index 23df1dd..de32a21 100644
--- a/pkg/analyzer_plugin/lib/utilities/navigation/navigation_dart.dart
+++ b/pkg/analyzer_plugin/lib/utilities/navigation/navigation_dart.dart
@@ -344,7 +344,7 @@
 
   @override
   void visitExportDirective(ExportDirective node) {
-    var exportElement = node.element;
+    var exportElement = node.element2;
     if (exportElement != null) {
       Element? libraryElement = exportElement.exportedLibrary;
       _addUriDirectiveRegion(node, libraryElement);
diff --git a/pkg/compiler/lib/src/compiler.dart b/pkg/compiler/lib/src/compiler.dart
index 2c08f76..0789bff 100644
--- a/pkg/compiler/lib/src/compiler.dart
+++ b/pkg/compiler/lib/src/compiler.dart
@@ -698,7 +698,9 @@
     DumpInfoStateData dumpInfoState;
     dumpInfoTask.reportSize(programSize);
     if (options.features.newDumpInfo.isEnabled) {
-      assert(untrimmedComponentForDumpInfo != null);
+      if (untrimmedComponentForDumpInfo == null) {
+        untrimmedComponentForDumpInfo = (await produceKernel()).component;
+      }
       dumpInfoState = await dumpInfoTask.dumpInfoNew(
           untrimmedComponentForDumpInfo,
           closedWorld,
diff --git a/pkg/compiler/lib/src/enqueue.dart b/pkg/compiler/lib/src/enqueue.dart
index 7618902..e792b70 100644
--- a/pkg/compiler/lib/src/enqueue.dart
+++ b/pkg/compiler/lib/src/enqueue.dart
@@ -141,5 +141,5 @@
 
 /// Interface for creating work items for enqueued member entities.
 abstract class WorkItemBuilder {
-  WorkItem createWorkItem(covariant MemberEntity entity);
+  WorkItem? createWorkItem(covariant MemberEntity entity);
 }
diff --git a/pkg/compiler/lib/src/js/rewrite_async.dart b/pkg/compiler/lib/src/js/rewrite_async.dart
index a1b5bb2..619c755 100644
--- a/pkg/compiler/lib/src/js/rewrite_async.dart
+++ b/pkg/compiler/lib/src/js/rewrite_async.dart
@@ -1984,7 +1984,7 @@
   /// Called with the stream to yield from.
   final js.Expression yieldStarExpression;
 
-  /// Used by sync* functions to throw exeptions.
+  /// Used by sync* functions to throw exceptions.
   final js.Expression uncaughtErrorExpression;
 
   SyncStarRewriter(DiagnosticReporter diagnosticListener, spannable,
diff --git a/pkg/compiler/lib/src/js_backend/annotations.dart b/pkg/compiler/lib/src/js_backend/annotations.dart
index 8460a64..677a87e 100644
--- a/pkg/compiler/lib/src/js_backend/annotations.dart
+++ b/pkg/compiler/lib/src/js_backend/annotations.dart
@@ -317,14 +317,6 @@
   /// annotation.
   bool hasNoSideEffects(MemberEntity member);
 
-  /// Calls [f] for all functions with a `@pragma('dart2js:noInline')`
-  /// annotation.
-  void forEachNoInline(void f(FunctionEntity function));
-
-  /// Calls [f] for all functions with a `@pragma('dart2js:tryInline')`
-  /// annotation.
-  void forEachTryInline(void f(FunctionEntity function));
-
   /// Calls [f] for all functions with a `@pragma('dart2js:noThrows')`
   /// annotation.
   void forEachNoThrows(void f(FunctionEntity function));
@@ -451,26 +443,6 @@
       _hasPragma(member, PragmaAnnotation.noSideEffects);
 
   @override
-  void forEachNoInline(void f(FunctionEntity function)) {
-    pragmaAnnotations
-        .forEach((MemberEntity member, EnumSet<PragmaAnnotation> set) {
-      if (set.contains(PragmaAnnotation.noInline)) {
-        f(member as FunctionEntity);
-      }
-    });
-  }
-
-  @override
-  void forEachTryInline(void f(FunctionEntity function)) {
-    pragmaAnnotations
-        .forEach((MemberEntity member, EnumSet<PragmaAnnotation> set) {
-      if (set.contains(PragmaAnnotation.tryInline)) {
-        f(member as FunctionEntity);
-      }
-    });
-  }
-
-  @override
   void forEachNoThrows(void f(FunctionEntity function)) {
     pragmaAnnotations
         .forEach((MemberEntity member, EnumSet<PragmaAnnotation> set) {
diff --git a/pkg/compiler/lib/src/js_backend/backend.dart b/pkg/compiler/lib/src/js_backend/backend.dart
index b8f099c..fc21a9c 100644
--- a/pkg/compiler/lib/src/js_backend/backend.dart
+++ b/pkg/compiler/lib/src/js_backend/backend.dart
@@ -46,19 +46,11 @@
   static const int _canInlineInLoopMayInlineOutside = 3;
   static const int _canInline = 4;
 
+  final AnnotationsData _annotationsData;
+
   final Map<FunctionEntity, int> _cachedDecisions = {};
 
-  final Set<FunctionEntity> _noInlineFunctions = {};
-  final Set<FunctionEntity> _tryInlineFunctions = {};
-
-  FunctionInlineCache(AnnotationsData annotationsData) {
-    annotationsData.forEachNoInline((FunctionEntity function) {
-      markAsNoInline(function);
-    });
-    annotationsData.forEachTryInline((FunctionEntity function) {
-      markAsTryInline(function);
-    });
-  }
+  FunctionInlineCache(this._annotationsData) {}
 
   /// Checks that [method] is the canonical representative for this method.
   ///
@@ -237,24 +229,14 @@
     }
   }
 
-  void markAsNoInline(FunctionEntity element) {
-    assert(checkFunction(element), failedAt(element));
-    _noInlineFunctions.add(element);
-  }
-
   bool markedAsNoInline(FunctionEntity element) {
     assert(checkFunction(element), failedAt(element));
-    return _noInlineFunctions.contains(element);
-  }
-
-  void markAsTryInline(FunctionEntity element) {
-    assert(checkFunction(element), failedAt(element));
-    _tryInlineFunctions.add(element);
+    return _annotationsData.hasNoInline(element);
   }
 
   bool markedAsTryInline(FunctionEntity element) {
     assert(checkFunction(element), failedAt(element));
-    return _tryInlineFunctions.contains(element);
+    return _annotationsData.hasTryInline(element);
   }
 }
 
diff --git a/pkg/compiler/lib/src/js_backend/enqueuer.dart b/pkg/compiler/lib/src/js_backend/enqueuer.dart
index 9238540..7dfad22 100644
--- a/pkg/compiler/lib/src/js_backend/enqueuer.dart
+++ b/pkg/compiler/lib/src/js_backend/enqueuer.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// @dart = 2.10
-
 library dart2js.js.enqueue;
 
 import 'dart:collection' show Queue;
@@ -16,7 +14,7 @@
 import '../elements/types.dart';
 import '../enqueue.dart';
 import '../js_backend/annotations.dart';
-import '../universe/codegen_world_builder.dart';
+import '../universe/codegen_world_builder_interfaces.dart';
 import '../universe/member_usage.dart';
 import '../universe/use.dart'
     show
@@ -34,7 +32,7 @@
   final String name;
   final Set<ClassEntity> _recentClasses = Setlet();
   bool _recentConstants = false;
-  final CodegenWorldBuilderImpl worldBuilder;
+  final CodegenWorldBuilderImplForEnqueuer worldBuilder;
   final WorkItemBuilder _workItemBuilder;
 
   @override
@@ -52,7 +50,7 @@
 
   // If not `null` this is called when the queue has been emptied. It allows for
   // applying additional impacts before re-emptying the queue.
-  void Function() onEmptyForTesting;
+  void Function()? onEmptyForTesting;
 
   CodegenEnqueuer(this.task, this.worldBuilder, this._workItemBuilder,
       this.listener, this._annotationsData)
@@ -77,7 +75,7 @@
   void _addToWorkList(MemberEntity entity) {
     if (_processedEntities.contains(entity)) return;
 
-    WorkItem workItem = _workItemBuilder.createWorkItem(entity);
+    final workItem = _workItemBuilder.createWorkItem(entity);
     if (workItem == null) return;
 
     if (queueIsClosed) {
@@ -134,7 +132,7 @@
       _addToWorkList(member);
     }
     if (useSet.contains(MemberUse.CLOSURIZE_INSTANCE)) {
-      _registerClosurizedMember(member);
+      _registerClosurizedMember(member as FunctionEntity);
     }
     if (useSet.contains(MemberUse.CLOSURIZE_STATIC)) {
       applyImpact(listener.registerGetOfStaticFunction());
@@ -149,17 +147,17 @@
   }
 
   @override
-  void processStaticUse(MemberEntity member, StaticUse staticUse) {
+  void processStaticUse(MemberEntity? member, StaticUse staticUse) {
     task.measureSubtask('codegen.staticUse', () {
       worldBuilder.registerStaticUse(staticUse, _applyMemberUse);
       switch (staticUse.kind) {
         case StaticUseKind.CONSTRUCTOR_INVOKE:
         case StaticUseKind.CONST_CONSTRUCTOR_INVOKE:
-          processTypeUse(member, TypeUse.instantiation(staticUse.type));
+          processTypeUse(member, TypeUse.instantiation(staticUse.type!));
           break;
         case StaticUseKind.INLINING:
           // TODO(johnniwinther): Should this be tracked with _MemberUsage ?
-          listener.registerUsedElement(staticUse.element);
+          listener.registerUsedElement(staticUse.element as MemberEntity);
           break;
         default:
           break;
@@ -168,14 +166,14 @@
   }
 
   @override
-  void processTypeUse(MemberEntity member, TypeUse typeUse) {
+  void processTypeUse(MemberEntity? member, TypeUse typeUse) {
     DartType type = typeUse.type;
     switch (typeUse.kind) {
       case TypeUseKind.INSTANTIATION:
-        _registerInstantiatedType(type);
+        _registerInstantiatedType(type as InterfaceType);
         break;
       case TypeUseKind.NATIVE_INSTANTIATION:
-        _registerInstantiatedType(type, nativeUsage: true);
+        _registerInstantiatedType(type as InterfaceType, nativeUsage: true);
         break;
       case TypeUseKind.IS_CHECK:
       case TypeUseKind.CATCH_TYPE:
@@ -209,14 +207,13 @@
         worldBuilder.registerTypeArgument(type);
         break;
       case TypeUseKind.CONSTRUCTOR_REFERENCE:
-        worldBuilder.registerConstructorReference(type);
+        worldBuilder.registerConstructorReference(type as InterfaceType);
         break;
       case TypeUseKind.CONST_INSTANTIATION:
         failedAt(CURRENT_ELEMENT_SPANNABLE, "Unexpected type use: $typeUse.");
-        break;
       case TypeUseKind.NAMED_TYPE_VARIABLE_NEW_RTI:
-        assert(type is TypeVariableType);
-        _registerNamedTypeVariableNewRti(type);
+        _registerNamedTypeVariableNewRti(type as TypeVariableType);
+        break;
     }
   }
 
@@ -267,7 +264,7 @@
   void forEach(void f(WorkItem work)) {
     _forEach(f);
     if (onEmptyForTesting != null) {
-      onEmptyForTesting();
+      onEmptyForTesting!();
       _forEach(f);
     }
   }
diff --git a/pkg/compiler/lib/src/resolution/enqueuer.dart b/pkg/compiler/lib/src/resolution/enqueuer.dart
index ecc794c..3a27e62 100644
--- a/pkg/compiler/lib/src/resolution/enqueuer.dart
+++ b/pkg/compiler/lib/src/resolution/enqueuer.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// @dart = 2.10
-
 import 'dart:collection' show Queue;
 
 import '../common.dart';
@@ -15,7 +13,7 @@
 import '../elements/types.dart';
 import '../js_backend/annotations.dart';
 import '../universe/member_usage.dart';
-import '../universe/resolution_world_builder.dart';
+import '../universe/resolution_world_builder_interfaces.dart';
 import '../universe/use.dart'
     show
         ConstantUse,
@@ -37,8 +35,8 @@
 
   final Set<ClassEntity> _recentClasses = Setlet<ClassEntity>();
   bool _recentConstants = false;
-  final ResolutionWorldBuilder worldBuilder;
-  WorkItemBuilder _workItemBuilder;
+  final ResolutionWorldBuilderForEnqueuer worldBuilder;
+  WorkItemBuilder? _workItemBuilder;
   final DiagnosticReporter _reporter;
   final AnnotationsData _annotationsData;
 
@@ -49,7 +47,7 @@
 
   // If not `null` this is called when the queue has been emptied. It allows for
   // applying additional impacts before re-emptying the queue.
-  void Function() onEmptyForTesting;
+  void Function()? onEmptyForTesting;
 
   ResolutionEnqueuer(this.task, this._reporter, this.listener,
       this.worldBuilder, this._workItemBuilder, this._annotationsData,
@@ -70,7 +68,7 @@
   }
 
   void _registerInstantiatedType(InterfaceType type,
-      {ConstructorEntity constructor,
+      {ConstructorEntity? constructor,
       bool nativeUsage = false,
       bool globalDependency = false}) {
     task.measureSubtask('resolution.typeUse', () {
@@ -102,10 +100,10 @@
   /// Callback for applying the use of a [member].
   void _applyMemberUse(Entity member, EnumSet<MemberUse> useSet) {
     if (useSet.contains(MemberUse.NORMAL)) {
-      _addToWorkList(member);
+      _addToWorkList(member as MemberEntity);
     }
     if (useSet.contains(MemberUse.CLOSURIZE_INSTANCE)) {
-      _registerClosurizedMember(member);
+      _registerClosurizedMember(member as FunctionEntity);
     }
     if (useSet.contains(MemberUse.CLOSURIZE_STATIC)) {
       applyImpact(listener.registerGetOfStaticFunction());
@@ -145,7 +143,7 @@
   }
 
   @override
-  void processStaticUse(MemberEntity member, StaticUse staticUse) {
+  void processStaticUse(MemberEntity? member, StaticUse staticUse) {
     task.measureSubtask('resolution.staticUse', () {
       worldBuilder.registerStaticUse(staticUse, _applyMemberUse);
       // TODO(johnniwinther): Add `ResolutionWorldBuilder.registerConstructorUse`
@@ -153,8 +151,9 @@
       switch (staticUse.kind) {
         case StaticUseKind.CONSTRUCTOR_INVOKE:
         case StaticUseKind.CONST_CONSTRUCTOR_INVOKE:
-          _registerInstantiatedType(staticUse.type,
-              constructor: staticUse.element, globalDependency: false);
+          _registerInstantiatedType(staticUse.type!,
+              constructor: staticUse.element as ConstructorEntity?,
+              globalDependency: false);
           break;
         default:
           break;
@@ -163,15 +162,16 @@
   }
 
   @override
-  void processTypeUse(MemberEntity member, TypeUse typeUse) {
+  void processTypeUse(MemberEntity? member, TypeUse typeUse) {
     DartType type = typeUse.type;
     switch (typeUse.kind) {
       case TypeUseKind.INSTANTIATION:
       case TypeUseKind.CONST_INSTANTIATION:
-        _registerInstantiatedType(type, globalDependency: false);
+        _registerInstantiatedType(type as InterfaceType,
+            globalDependency: false);
         break;
       case TypeUseKind.NATIVE_INSTANTIATION:
-        _registerInstantiatedType(type,
+        _registerInstantiatedType(type as InterfaceType,
             nativeUsage: true, globalDependency: true);
         break;
       case TypeUseKind.IS_CHECK:
@@ -203,10 +203,8 @@
       case TypeUseKind.TYPE_ARGUMENT:
       case TypeUseKind.CONSTRUCTOR_REFERENCE:
         failedAt(CURRENT_ELEMENT_SPANNABLE, "Unexpected type use: $typeUse.");
-        break;
       case TypeUseKind.NAMED_TYPE_VARIABLE_NEW_RTI:
-        assert(type is TypeVariableType);
-        _registerNamedTypeVariableNewRti(type);
+        _registerNamedTypeVariableNewRti(type as TypeVariableType);
         break;
     }
   }
@@ -219,7 +217,7 @@
     worldBuilder.registerNamedTypeVariableNewRti(type);
   }
 
-  void _registerClosurizedMember(MemberEntity element) {
+  void _registerClosurizedMember(FunctionEntity element) {
     assert(element.isInstanceMember);
     applyImpact(listener.registerClosurizedMember(element));
     worldBuilder.registerClosurizedMember(element);
@@ -249,7 +247,7 @@
   void forEach(void f(WorkItem work)) {
     _forEach(f);
     if (onEmptyForTesting != null) {
-      onEmptyForTesting();
+      onEmptyForTesting!();
       _forEach(f);
     }
   }
@@ -284,7 +282,7 @@
   /// already been processed.
   void _addToWorkList(MemberEntity entity) {
     if (worldBuilder.isMemberProcessed(entity)) return;
-    WorkItem workItem = _workItemBuilder.createWorkItem(entity);
+    final workItem = _workItemBuilder!.createWorkItem(entity);
     if (workItem == null) return;
 
     if (queueIsClosed) {
diff --git a/pkg/compiler/lib/src/ssa/builder.dart b/pkg/compiler/lib/src/ssa/builder.dart
index 69e979b..67b995a 100644
--- a/pkg/compiler/lib/src/ssa/builder.dart
+++ b/pkg/compiler/lib/src/ssa/builder.dart
@@ -1211,7 +1211,7 @@
     _closeFunction();
   }
 
-  /// Builds a SSA graph for FunctionNodes, found in FunctionExpressions and
+  /// Builds an SSA graph for FunctionNodes, found in FunctionExpressions and
   /// Procedures.
   void _buildFunctionNode(
       FunctionEntity function, ir.FunctionNode functionNode) {
@@ -1253,7 +1253,7 @@
         isStatement: true));
   }
 
-  /// Builds a SSA graph for a sync*/async/async* generator.  We generate a
+  /// Builds an SSA graph for a sync*/async/async* generator.  We generate a
   /// entry function which tail-calls a body function. The entry contains
   /// per-invocation checks and the body, which is later transformed, contains
   /// the re-entrant 'state machine' code.
@@ -1324,7 +1324,7 @@
     _closeFunction();
   }
 
-  /// Builds a SSA graph for a sync*/async/async* generator body.
+  /// Builds an SSA graph for a sync*/async/async* generator body.
   void _buildGeneratorBody(
       JGeneratorBody function, ir.FunctionNode functionNode) {
     FunctionEntity entry = function.function;
@@ -1473,7 +1473,7 @@
     return _isNonNullableByDefault(node.parent);
   }
 
-  /// Builds a SSA graph for FunctionNodes of external methods. This produces a
+  /// Builds an SSA graph for FunctionNodes of external methods. This produces a
   /// graph for a method with Dart calling conventions that forwards to the
   /// actual external method.
   void _buildExternalFunctionNode(
diff --git a/pkg/compiler/lib/src/universe/codegen_world_builder.dart b/pkg/compiler/lib/src/universe/codegen_world_builder.dart
index 73a25f6..9ddc907 100644
--- a/pkg/compiler/lib/src/universe/codegen_world_builder.dart
+++ b/pkg/compiler/lib/src/universe/codegen_world_builder.dart
@@ -21,6 +21,7 @@
 import '../util/util.dart';
 import '../world.dart';
 import 'call_structure.dart';
+import 'codegen_world_builder_interfaces.dart' as interfaces;
 import 'member_usage.dart';
 import 'selector.dart' show Selector;
 import 'use.dart'
@@ -30,7 +31,8 @@
 /// World builder specific to codegen.
 ///
 /// This adds additional access to liveness of selectors and elements.
-abstract class CodegenWorldBuilder {
+abstract class CodegenWorldBuilder
+    implements interfaces.CodegenWorldBuilderImplForEnqueuer {
   /// Register [constant] as needed for emission.
   void addCompileTimeConstantForEmission(ConstantValue constant);
 
@@ -172,6 +174,7 @@
       .where((cls) => _processedClasses[cls].isInstantiated);
 
   // TODO(johnniwinther): Improve semantic precision.
+  @override
   Iterable<ClassEntity> get directlyInstantiatedClasses {
     return _directlyInstantiatedClasses;
   }
@@ -180,6 +183,7 @@
   // TODO(johnniwinther): Fully enforce the separation between exact, through
   // subclass and through subtype instantiated types/classes.
   // TODO(johnniwinther): Support unknown type arguments for generic types.
+  @override
   void registerTypeInstantiation(
       InterfaceType type, ClassUsedCallback classUsed) {
     ClassEntity cls = type.element;
@@ -251,6 +255,7 @@
         _invokedSetters[member.name], member, _closedWorld);
   }
 
+  @override
   void registerDynamicUse(
       DynamicUse dynamicUse, MemberUsedCallback memberUsed) {
     Selector selector = dynamicUse.selector;
@@ -319,14 +324,17 @@
     return constraints.addReceiverConstraint(constraint);
   }
 
+  @override
   void registerIsCheck(covariant DartType type) {
     _isChecks.add(type);
   }
 
+  @override
   void registerNamedTypeVariableNewRti(TypeVariableType type) {
     _namedTypeVariablesNewRti.add(type);
   }
 
+  @override
   void registerStaticUse(StaticUse staticUse, MemberUsedCallback memberUsed) {
     MemberEntity element = staticUse.element;
     EnumSet<MemberUse> useSet = EnumSet();
@@ -409,6 +417,7 @@
     }
   }
 
+  @override
   void processClassMembers(ClassEntity cls, MemberUsedCallback memberUsed,
       {bool checkEnqueuerConsistency = false}) {
     _elementEnvironment.forEachClassMember(cls,
@@ -559,19 +568,23 @@
 
   /// Register the constant [use] with this world builder. Returns `true` if
   /// the constant use was new to the world.
+  @override
   bool registerConstantUse(ConstantUse use) {
     addCompileTimeConstantForEmission(use.value);
     return _constantValues.add(use.value);
   }
 
+  @override
   void registerConstTypeLiteral(DartType type) {
     _constTypeLiterals.add(type);
   }
 
+  @override
   void registerTypeArgument(DartType type) {
     _liveTypeArguments.add(type);
   }
 
+  @override
   void registerConstructorReference(InterfaceType type) {
     _constructorReferences.add(type.element);
   }
diff --git a/pkg/compiler/lib/src/universe/codegen_world_builder_interfaces.dart b/pkg/compiler/lib/src/universe/codegen_world_builder_interfaces.dart
new file mode 100644
index 0000000..65499cf
--- /dev/null
+++ b/pkg/compiler/lib/src/universe/codegen_world_builder_interfaces.dart
@@ -0,0 +1,36 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import '../elements/entities.dart';
+import '../elements/types.dart';
+import '../universe/use.dart';
+import 'member_usage.dart';
+
+abstract class CodegenWorldBuilderImplForEnqueuer {
+  Iterable<ClassEntity> get directlyInstantiatedClasses;
+
+  void registerTypeInstantiation(
+      InterfaceType type, ClassUsedCallback classUsed);
+
+  void processClassMembers(ClassEntity cls, MemberUsedCallback memberUsed,
+      {bool checkEnqueuerConsistency = false});
+
+  void registerDynamicUse(DynamicUse dynamicUse, MemberUsedCallback memberUsed);
+
+  void registerStaticUse(StaticUse staticUse, MemberUsedCallback memberUsed);
+
+  void registerTypeVariableTypeLiteral(TypeVariableType typeVariable);
+
+  void registerConstTypeLiteral(DartType type);
+
+  void registerTypeArgument(DartType type);
+
+  void registerConstructorReference(InterfaceType type);
+
+  bool registerConstantUse(ConstantUse use);
+
+  void registerIsCheck(covariant DartType type);
+
+  void registerNamedTypeVariableNewRti(TypeVariableType type);
+}
diff --git a/pkg/compiler/lib/src/universe/resolution_world_builder.dart b/pkg/compiler/lib/src/universe/resolution_world_builder.dart
index fb2955b..a49196d 100644
--- a/pkg/compiler/lib/src/universe/resolution_world_builder.dart
+++ b/pkg/compiler/lib/src/universe/resolution_world_builder.dart
@@ -30,6 +30,7 @@
 import 'class_hierarchy.dart' show ClassHierarchyBuilder;
 import 'class_set.dart';
 import 'member_usage.dart';
+import 'resolution_world_builder_interfaces.dart' as interfaces;
 import 'selector.dart' show Selector;
 import 'use.dart'
     show ConstantUse, DynamicUse, DynamicUseKind, StaticUse, StaticUseKind;
@@ -191,7 +192,8 @@
   }
 }
 
-class ResolutionWorldBuilder extends WorldBuilder implements World {
+class ResolutionWorldBuilder extends WorldBuilder
+    implements World, interfaces.ResolutionWorldBuilderForEnqueuer {
   /// Instantiation information for all classes with instantiated types.
   ///
   /// Invariant: Elements are declaration elements.
@@ -302,13 +304,16 @@
   Iterable<ClassEntity> get processedClasses => _processedClasses.keys
       .where((cls) => _processedClasses[cls].isInstantiated);
 
+  @override
   bool isMemberProcessed(MemberEntity member) =>
       _processedMembers.contains(member);
 
+  @override
   void registerProcessedMember(MemberEntity member) {
     _processedMembers.add(member);
   }
 
+  @override
   Iterable<MemberEntity> get processedMembers => _processedMembers;
 
   /// The closed world computed by this world builder.
@@ -323,6 +328,7 @@
   }
 
   // TODO(johnniwinther): Improve semantic precision.
+  @override
   Iterable<ClassEntity> get directlyInstantiatedClasses {
     Set<ClassEntity> classes = {};
     getInstantiationMap().forEach((ClassEntity cls, InstantiationInfo info) {
@@ -334,6 +340,7 @@
   }
 
   /// Registers that [element] has been closurized.
+  @override
   void registerClosurizedMember(MemberEntity element) {
     FunctionType type = _elementEnvironment.getFunctionType(element);
     if (type.containsTypeVariables) {
@@ -345,6 +352,7 @@
   // TODO(johnniwinther): Fully enforce the separation between exact, through
   // subclass and through subtype instantiated types/classes.
   // TODO(johnniwinther): Support unknown type arguments for generic types.
+  @override
   void registerTypeInstantiation(
       InterfaceType type, ClassUsedCallback classUsed,
       {ConstructorEntity constructor}) {
@@ -434,6 +442,7 @@
 
   /// Applies the [dynamicUse] to applicable instance members. Calls
   /// [membersUsed] with the usage changes for each member.
+  @override
   void registerDynamicUse(
       DynamicUse dynamicUse, MemberUsedCallback memberUsed) {
     Selector selector = dynamicUse.selector;
@@ -512,22 +521,26 @@
   }
 
   /// Registers that [type] is checked in this world builder.
+  @override
   void registerIsCheck(covariant DartType type) {
     _isChecks.add(type);
   }
 
+  @override
   void registerNamedTypeVariableNewRti(TypeVariableType type) {
     _namedTypeVariablesNewRti.add(type);
   }
 
   /// Register the constant [use] with this world builder. Returns `true` if
   /// the constant use was new to the world.
+  @override
   bool registerConstantUse(ConstantUse use) {
     return _constantValues.add(use.value);
   }
 
   /// Applies the [staticUse] to applicable members. Calls [membersUsed] with
   /// the usage changes for each member.
+  @override
   void registerStaticUse(StaticUse staticUse, MemberUsedCallback memberUsed) {
     if (staticUse.kind == StaticUseKind.CLOSURE) {
       Local /*!*/ localFunction = staticUse.element;
@@ -663,6 +676,7 @@
   /// If [checkEnqueuerConsistency] is `true` we check that no new member
   /// usage can be found. This check is performed without changing the already
   /// collected member usage.
+  @override
   void processClassMembers(ClassEntity cls, MemberUsedCallback memberUsed,
       {bool checkEnqueuerConsistency = false}) {
     _elementEnvironment.forEachClassMember(cls,
@@ -835,6 +849,7 @@
     }
   }
 
+  @override
   void registerUsedElement(MemberEntity element) {
     if (element.isInstanceMember && !element.isAbstract) {
       _liveInstanceMembers.add(element);
@@ -888,6 +903,7 @@
     return assignedInstanceMembers;
   }
 
+  @override
   void registerClass(ClassEntity cls) {
     _classHierarchyBuilder.registerClass(cls);
   }
diff --git a/pkg/compiler/lib/src/universe/resolution_world_builder_interfaces.dart b/pkg/compiler/lib/src/universe/resolution_world_builder_interfaces.dart
new file mode 100644
index 0000000..6c31592
--- /dev/null
+++ b/pkg/compiler/lib/src/universe/resolution_world_builder_interfaces.dart
@@ -0,0 +1,43 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import '../elements/entities.dart';
+import '../elements/types.dart';
+import 'member_usage.dart';
+import 'use.dart';
+
+abstract class ResolutionWorldBuilderForEnqueuer {
+  Iterable<ClassEntity> get directlyInstantiatedClasses;
+
+  Iterable<MemberEntity> get processedMembers;
+
+  void registerTypeInstantiation(
+      InterfaceType type, ClassUsedCallback classUsed,
+      {ConstructorEntity? constructor});
+
+  void processClassMembers(ClassEntity cls, MemberUsedCallback memberUsed,
+      {bool checkEnqueuerConsistency = false});
+
+  void registerDynamicUse(DynamicUse dynamicUse, MemberUsedCallback memberUsed);
+
+  bool registerConstantUse(ConstantUse use);
+
+  void registerStaticUse(StaticUse staticUse, MemberUsedCallback memberUsed);
+
+  void registerTypeVariableTypeLiteral(TypeVariableType typeVariable);
+
+  void registerIsCheck(covariant DartType type);
+
+  void registerNamedTypeVariableNewRti(TypeVariableType type);
+
+  void registerClosurizedMember(MemberEntity element);
+
+  bool isMemberProcessed(MemberEntity member);
+
+  void registerProcessedMember(MemberEntity member);
+
+  void registerUsedElement(MemberEntity element);
+
+  void registerClass(ClassEntity cls);
+}
diff --git a/pkg/compiler/tool/null_safety/candidates.dart b/pkg/compiler/tool/null_safety/candidates.dart
index 6dc4dde..bc2208d 100644
--- a/pkg/compiler/tool/null_safety/candidates.dart
+++ b/pkg/compiler/tool/null_safety/candidates.dart
@@ -4,9 +4,17 @@
 
 /// Script to identify good opportunities for null safety migration.
 ///
-/// This script sorts libraries based on a "migratable" order. We compute
-/// this order by counting how many of a library's dependencies have been
-/// migrated.
+/// This script prints metadata about the migration status of libraries. Counts
+/// how many of a library's dependencies have been migrated and how many files
+/// are blocked by each un-migrated file.
+///
+/// Prints only un-migrated files by default. The list of migrated files can be
+/// included using the `-i` flag.
+///
+/// The default sort order for the printed libraries is by number of migrated
+/// dependencies (i.e. readiness for migration). By passing the `-b` flag the
+/// libraries can be sorted by number of blocking files
+/// (i.e. impact of migration).
 
 import 'dart:io';
 
@@ -15,6 +23,7 @@
 import 'package:_fe_analyzer_shared/src/scanner/io.dart'
     show readBytesFromFileSync;
 import 'package:_fe_analyzer_shared/src/scanner/scanner.dart';
+import 'package:args/args.dart';
 import 'package:front_end/src/api_prototype/front_end.dart';
 import 'package:front_end/src/api_prototype/language_version.dart';
 import 'package:front_end/src/api_prototype/terminal_color_support.dart'
@@ -28,7 +37,15 @@
 import 'package:vm/target/vm.dart' show VmTarget;
 
 void main(List<String> args) async {
-  var prefix = args.isEmpty ? 'pkg/compiler/' : args.first;
+  final argParser = ArgParser();
+  argParser.addFlag('sort-blocking', abbr: 'b');
+  argParser.addFlag('include-migrated', abbr: 'i');
+  final argResults = argParser.parse(args);
+  final sortByBlocking = argResults['sort-blocking'];
+  final includeMigrated = argResults['include-migrated'];
+
+  var prefix =
+      argResults.rest.isEmpty ? 'pkg/compiler/' : argResults.rest.first;
   var files = <Uri, List<int>>{};
   var isLegacy = <Uri>{};
   var isNullSafe = <Uri>{};
@@ -55,43 +72,60 @@
     }
   }
 
-  var fileSummary = <Uri, FileData>{};
+  var fileDepSummary = <Uri, FileData>{};
+  final fileBlockingCount = <Uri, int>{};
   for (var file in files.keys) {
     if (!file.path.contains(prefix)) continue;
     var directives = extractDirectiveUris(files[file]!)
         .map(file.resolve)
         .where((uri) => uri.path.contains('pkg/compiler/'));
-    var migrated = directives.where(isNullSafe.contains).length;
+    var migrated = 0;
     var total = directives.length;
-    fileSummary[file] = FileData(isNullSafe.contains(file), total, migrated);
+    for (final dep in directives) {
+      if (isNullSafe.contains(dep)) {
+        migrated++;
+        continue;
+      }
+      fileBlockingCount.update(dep, (value) => value + 1, ifAbsent: () => 1);
+    }
+    fileDepSummary[file] = FileData(isNullSafe.contains(file), total, migrated);
   }
 
-  var keys = fileSummary.keys.toList();
+  var keys = fileDepSummary.keys.toList();
+
   keys.sort((a, b) {
-    var fa = fileSummary[a]!;
-    var fb = fileSummary[b]!;
+    var fa = fileDepSummary[a]!;
+    var fb = fileDepSummary[b]!;
     if (fa.isNullSafe && !fb.isNullSafe) return -1;
     if (fb.isNullSafe && !fa.isNullSafe) return 1;
     if (fa.totalDependencies == 0 && fb.totalDependencies != 0) return -1;
     if (fb.totalDependencies == 0 && fa.totalDependencies != 0) return 1;
+    if (sortByBlocking) {
+      final blockingA = fileBlockingCount[a] ?? 0;
+      final blockingB = fileBlockingCount[b] ?? 0;
+      if (blockingA != blockingB) return blockingB.compareTo(blockingA);
+    }
     if (fa.ratio != fb.ratio) return fb.ratio.compareTo(fa.ratio);
-    return fb.migratedDependencies.compareTo(fb.migratedDependencies);
+    return fb.migratedDependencies.compareTo(fa.migratedDependencies);
   });
 
   for (var file in keys) {
-    var data = fileSummary[file]!;
+    var data = fileDepSummary[file]!;
+    if (data.isNullSafe && !includeMigrated) continue;
     String status;
     String text = shorten(file);
+    final blocking = fileBlockingCount[file] ?? 0;
     if (data.isNullSafe) {
       status = '\x1b[33mmigrated ---\x1b[0m | $text';
     } else if (data.totalDependencies == 0) {
-      status = '\x1b[32mready    ---\x1b[0m | $text';
+      status = '\x1b[32mready    ---\x1b[0m | $text | Blocking: $blocking';
     } else if (data.ratio == 1.0) {
-      status = '\x1b[32mready   100%\x1b[0m | $text';
+      status = '\x1b[32mready   100%\x1b[0m | $text | Blocking: $blocking';
     } else {
       var perc = (data.ratio * 100).toStringAsFixed(0).padLeft(3);
       status = '\x1b[31mwait    $perc%\x1b[0m'
-          ' | $text [${data.migratedDependencies} / ${data.totalDependencies}]';
+          ' | $text [${data.migratedDependencies} / ${data.totalDependencies}]'
+          ' | Blocking: $blocking';
     }
     print(status);
   }
@@ -103,6 +137,7 @@
   final int migratedDependencies;
 
   double get ratio => migratedDependencies / totalDependencies;
+
   FileData(this.isNullSafe, this.totalDependencies, this.migratedDependencies);
 }
 
diff --git a/pkg/dartdev/lib/dartdev.dart b/pkg/dartdev/lib/dartdev.dart
index acebbf7..11ddd06 100644
--- a/pkg/dartdev/lib/dartdev.dart
+++ b/pkg/dartdev/lib/dartdev.dart
@@ -59,7 +59,6 @@
   }
 
   // Finally, call the runner to execute the command; see DartdevRunner.
-
   final runner = DartdevRunner(args);
   int? exitCode = 1;
   try {
@@ -198,10 +197,9 @@
       }
     }
 
-    final Ansi ansi = Ansi(Ansi.terminalSupportsAnsi);
-    log = topLevelResults['diagnostics']
-        ? Logger.verbose(ansi: ansi)
-        : Logger.standard(ansi: ansi);
+    if (topLevelResults['diagnostics']) {
+      log = Logger.verbose(ansi: ansi);
+    }
 
     var command = topLevelResults.command;
     final commandNames = [];
diff --git a/pkg/dartdev/lib/src/commands/devtools.dart b/pkg/dartdev/lib/src/commands/devtools.dart
index 4163e0d..ecf7884 100644
--- a/pkg/dartdev/lib/src/commands/devtools.dart
+++ b/pkg/dartdev/lib/src/commands/devtools.dart
@@ -9,6 +9,7 @@
 
 import '../core.dart';
 import '../sdk.dart';
+import '../utils.dart';
 
 class DevToolsCommand extends DartdevCommand {
   DevToolsCommand({
@@ -17,6 +18,7 @@
   })  : _argParser = DevToolsServer.buildArgParser(
           verbose: verbose,
           includeHelpOption: false,
+          usageLineLength: dartdevUsageLineLength,
         ),
         super(
           'devtools',
diff --git a/pkg/dartdev/lib/src/core.dart b/pkg/dartdev/lib/src/core.dart
index de1b55e..dab9d59 100644
--- a/pkg/dartdev/lib/src/core.dart
+++ b/pkg/dartdev/lib/src/core.dart
@@ -15,7 +15,11 @@
 import 'sdk.dart';
 import 'utils.dart';
 
-late Logger log;
+// Initialize a default logger. We'll replace this with a verbose logger if
+// necessary once we start parsing.
+final Ansi ansi = Ansi(Ansi.terminalSupportsAnsi);
+Logger log = Logger.standard(ansi: ansi);
+
 bool isDiagnostics = false;
 
 /// When set, this function is executed from the [DartdevCommand] constructor to
diff --git a/pkg/dartdev/test/commands/flag_test.dart b/pkg/dartdev/test/commands/flag_test.dart
index 7c4b4fa5..7c803ce 100644
--- a/pkg/dartdev/test/commands/flag_test.dart
+++ b/pkg/dartdev/test/commands/flag_test.dart
@@ -14,6 +14,18 @@
   initGlobalState();
   group('command', command, timeout: longTimeout);
   group('flag', help, timeout: longTimeout);
+  group('invalid flags', invalidFlags, timeout: longTimeout);
+}
+
+void expectUsage(String msg) {
+  expect(msg, contains('Usage: dart <command|dart-file> [arguments]'));
+  expect(msg, contains('Global options:'));
+  expect(msg, contains('Available commands:'));
+  expect(msg, contains('analyze '));
+  expect(msg, contains('create '));
+  expect(msg, contains('compile '));
+  expect(msg, contains('format '));
+  expect(msg, contains('migrate '));
 }
 
 void command() {
@@ -65,15 +77,7 @@
     expect(result.exitCode, 0);
     expect(result.stderr, isEmpty);
     expect(result.stdout, contains(DartdevRunner.dartdevDescription));
-    expect(
-        result.stdout, contains('Usage: dart <command|dart-file> [arguments]'));
-    expect(result.stdout, contains('Global options:'));
-    expect(result.stdout, contains('Available commands:'));
-    expect(result.stdout, contains('analyze '));
-    expect(result.stdout, contains('create '));
-    expect(result.stdout, contains('compile '));
-    expect(result.stdout, contains('format '));
-    expect(result.stdout, contains('migrate '));
+    expectUsage(result.stdout);
   });
 
   test('--help --verbose', () async {
@@ -120,15 +124,7 @@
     expect(result.exitCode, 0);
     expect(result.stderr, isEmpty);
     expect(result.stdout, contains(DartdevRunner.dartdevDescription));
-    expect(
-        result.stdout, contains('Usage: dart <command|dart-file> [arguments]'));
-    expect(result.stdout, contains('Global options:'));
-    expect(result.stdout, contains('Available commands:'));
-    expect(result.stdout, contains('analyze '));
-    expect(result.stdout, contains('create '));
-    expect(result.stdout, contains('compile '));
-    expect(result.stdout, contains('format '));
-    expect(result.stdout, contains('migrate '));
+    expectUsage(result.stdout);
   });
 
   test('help --verbose', () async {
@@ -151,3 +147,18 @@
     expect(result.stdout, contains('migrate '));
   });
 }
+
+void invalidFlags() {
+  late TestProject p;
+
+  tearDown(() async => await p.dispose());
+
+  test('Regress #49437', () async {
+    // Regression test for https://github.com/dart-lang/sdk/issues/49437
+    p = project();
+    final result = await p.run(['-no-load-cse', 'hello.dart']);
+    expect(result.exitCode, 64);
+    expect(result.stdout, isNot(contains(DartdevRunner.dartdevDescription)));
+    expectUsage(result.stderr);
+  });
+}
diff --git a/pkg/dds/README.md b/pkg/dds/README.md
index 86d4e7c..3bab225 100644
--- a/pkg/dds/README.md
+++ b/pkg/dds/README.md
@@ -9,7 +9,7 @@
 
 # SSE Support
 
-For certain web clients it may be preferrable or required to communicate with DDS using server-sent events (SSE). DDS has a SSE handler listening for requests on `/$debugHandler`.
+For certain web clients it may be preferable or required to communicate with DDS using server-sent events (SSE). DDS has an SSE handler listening for requests on `/$debugHandler`.
 
 ## SSE and package:vm_service example
 
diff --git a/pkg/dds/lib/devtools_server.dart b/pkg/dds/lib/devtools_server.dart
index bd1e001..8949604 100644
--- a/pkg/dds/lib/devtools_server.dart
+++ b/pkg/dds/lib/devtools_server.dart
@@ -55,8 +55,11 @@
   static ArgParser buildArgParser({
     bool verbose = false,
     bool includeHelpOption = true,
+    int? usageLineLength,
   }) {
-    final argParser = ArgParser();
+    final argParser = ArgParser(
+      usageLineLength: usageLineLength,
+    );
 
     if (includeHelpOption) {
       argParser.addFlag(
diff --git a/pkg/dds/lib/src/cpu_samples_manager.dart b/pkg/dds/lib/src/cpu_samples_manager.dart
index aafb15d..71833fb 100644
--- a/pkg/dds/lib/src/cpu_samples_manager.dart
+++ b/pkg/dds/lib/src/cpu_samples_manager.dart
@@ -89,7 +89,7 @@
         if (!idToFunctionIndex.containsKey(key)) {
           idToFunctionIndex[key] = functions.length;
           // Keep track of the original index and the location of the function
-          // in the master function list so we can update the function indicies
+          // in the master function list so we can update the function indices
           // for each sample in this batch.
           indexMapping[i] = functions.length;
           functions.add(_buildProfileFunction(newFunctions[i]));
@@ -100,7 +100,7 @@
         }
       }
 
-      // Update the indicies into the function table for functions that were
+      // Update the indices into the function table for functions that were
       // newly processed in the most recent event.
       for (final sample in samples.samples!) {
         final stack = sample.stack!;
diff --git a/pkg/dds/lib/src/dap/adapters/dart.dart b/pkg/dds/lib/src/dap/adapters/dart.dart
index bbfd626..67f3368 100644
--- a/pkg/dds/lib/src/dap/adapters/dart.dart
+++ b/pkg/dds/lib/src/dap/adapters/dart.dart
@@ -1711,7 +1711,7 @@
               ? _converter.convertToRelativePath(path)
               : uri.toString())
           : null;
-      // Because we split on newlines, all items exept the last one need to
+      // Because we split on newlines, all items except the last one need to
       // have their trailing newlines added back.
       final output = i == lines.length - 1 ? line : '$line\n';
       events.add(
diff --git a/pkg/dds/lib/src/dap/isolate_manager.dart b/pkg/dds/lib/src/dap/isolate_manager.dart
index a926025..16eaf74 100644
--- a/pkg/dds/lib/src/dap/isolate_manager.dart
+++ b/pkg/dds/lib/src/dap/isolate_manager.dart
@@ -823,8 +823,8 @@
   /// sdk-path/lib/core/print.dart -> dart:core/print.dart
   ///
   /// This is required so that when the user sets a breakpoint in an SDK source
-  /// (which they may have nagivated to via the Analysis Server) we generate a
-  /// vaid URI that the VM would create a breakpoint for.
+  /// (which they may have navigated to via the Analysis Server) we generate a
+  /// valid URI that the VM would create a breakpoint for.
   Future<Uri?> resolvePathToUri(String filePath) async {
     // We don't currently need to call lookupPackageUris because the VM can
     // handle incoming file:/// URIs for packages, and also the org-dartlang-sdk
diff --git a/pkg/dds/lib/src/dap/protocol_common.dart b/pkg/dds/lib/src/dap/protocol_common.dart
index 9a20311..de38f0d 100644
--- a/pkg/dds/lib/src/dap/protocol_common.dart
+++ b/pkg/dds/lib/src/dap/protocol_common.dart
@@ -14,7 +14,7 @@
 ///
 /// Used to support custom events sent by the debug adapter such as 'dart.log'.
 ///
-/// The supplied [body] must be convertable to JSON.
+/// The supplied [body] must be convertible to JSON.
 class RawEventBody extends EventBody {
   final Object body;
 
diff --git a/pkg/dds/lib/src/dap/protocol_converter.dart b/pkg/dds/lib/src/dap/protocol_converter.dart
index 0bedd50..af06334 100644
--- a/pkg/dds/lib/src/dap/protocol_converter.dart
+++ b/pkg/dds/lib/src/dap/protocol_converter.dart
@@ -69,7 +69,7 @@
               thread,
               ref,
               // Quotes are handled below, so they can be wrapped around the
-              // elipsis.
+              // ellipsis.
               includeQuotesAroundString: false,
             )
           : null;
@@ -111,7 +111,7 @@
     }
   }
 
-  /// Converts a [vm.Instace] to a list of [dap.Variable]s, one for each
+  /// Converts a [vm.Instance] to a list of [dap.Variable]s, one for each
   /// field/member/element/association.
   ///
   /// If [startItem] and/or [numItems] are supplied, only a slice of the
diff --git a/pkg/dds/lib/src/devtools/memory_profile.dart b/pkg/dds/lib/src/devtools/memory_profile.dart
index 604346e..df02db5 100644
--- a/pkg/dds/lib/src/devtools/memory_profile.dart
+++ b/pkg/dds/lib/src/devtools/memory_profile.dart
@@ -143,7 +143,7 @@
       HeapSpace.parse(json['old'])!
     ];
     _updateGCEvent(event.isolate!.id!, heaps);
-    // TODO(terry): expose when GC occured as markers in memory timeline.
+    // TODO(terry): expose when GC occurred as markers in memory timeline.
   }
 
   void stopPolling() {
@@ -208,7 +208,7 @@
     return null;
   }
 
-  /// Poll Fultter engine's Raster Cache metrics.
+  /// Poll Flutter engine's Raster Cache metrics.
   /// @returns engine's rasterCache estimates or null.
   Future<RasterCache?> _fetchRasterCacheInfo(IsolateRef selectedIsolate) async {
     final response = await getRasterCacheMetrics(selectedIsolate);
diff --git a/pkg/dds/test/dap/integration/debug_breakpoints_test.dart b/pkg/dds/test/dap/integration/debug_breakpoints_test.dart
index 0c5ca76..f067468 100644
--- a/pkg/dds/test/dap/integration/debug_breakpoints_test.dart
+++ b/pkg/dds/test/dap/integration/debug_breakpoints_test.dart
@@ -390,7 +390,7 @@
       final breakpointLine = lineWith(testFile, breakpointMarker);
       final stepLine = lineWith(testFile, stepMarker);
 
-      // Start with debugSdkLibraryes _enabled_ and hit the breakpoint.
+      // Start with debugSdkLibraries _enabled_ and hit the breakpoint.
       final stop = await client.hitBreakpoint(
         testFile,
         breakpointLine,
diff --git a/pkg/dds/test/dap/integration/debug_test.dart b/pkg/dds/test/dap/integration/debug_test.dart
index b14966d..5eae24a 100644
--- a/pkg/dds/test/dap/integration/debug_test.dart
+++ b/pkg/dds/test/dap/integration/debug_test.dart
@@ -358,7 +358,7 @@
 /// the DAP server upon connection.
 Uri _extractVmServiceUri(OutputEventBody vmConnectionBanner) {
   // TODO(dantup): Change this to use the dart.debuggerUris custom event
-  //   if implemented (whch VS Code also needs).
+  //   if implemented (which VS Code also needs).
   final match = dapVmServiceBannerPattern.firstMatch(vmConnectionBanner.output);
   return Uri.parse(match!.group(1)!);
 }
diff --git a/pkg/dds/test/dap/integration/debug_variables_test.dart b/pkg/dds/test/dap/integration/debug_variables_test.dart
index e78ecd0..c740bc2 100644
--- a/pkg/dds/test/dap/integration/debug_variables_test.dart
+++ b/pkg/dds/test/dap/integration/debug_variables_test.dart
@@ -318,7 +318,7 @@
       expect(mapVariable.variablesReference, isPositive);
       final variables = await client.expectVariables(
         mapVariable.variablesReference,
-        // We don't expect an evaluteName because the key is not a simple type.
+        // We don't expect an evaluateName because the key is not a simple type.
         '''
             key: DateTime
             value: _Exception
@@ -381,7 +381,7 @@
 
     test('does not use toString() result if "Instance of Foo"', () async {
       // When evaluateToStringInDebugViews=true, we should discard the result of
-      // caling toString() when it's just 'Instance of Foo' because we're already
+      // calling toString() when it's just 'Instance of Foo' because we're already
       // showing the type, and otherwise we show:
       //
       //     myVariable: Foo (Instance of Foo)
diff --git a/pkg/dds/test/dap/integration/test_client.dart b/pkg/dds/test/dap/integration/test_client.dart
index 68ca595..2de616d 100644
--- a/pkg/dds/test/dap/integration/test_client.dart
+++ b/pkg/dds/test/dap/integration/test_client.dart
@@ -934,7 +934,7 @@
     return stack.stackFrames.first.id;
   }
 
-  /// Evalutes [expression] in frame [frameId] and expects a specific
+  /// Evaluates [expression] in frame [frameId] and expects a specific
   /// [expectedResult].
   Future<EvaluateResponseBody> expectEvalResult(
     int frameId,
diff --git a/pkg/dds/tool/dap/README.md b/pkg/dds/tool/dap/README.md
index ec49ac5..5275609 100644
--- a/pkg/dds/tool/dap/README.md
+++ b/pkg/dds/tool/dap/README.md
@@ -1,6 +1,6 @@
 # Debug Adapter Protocol
 
-Dart includes support for debugging using [the Debug Adapter Protocol](https://microsoft.github.io/debug-adapter-protocol/) as an alternative to using the [VM Service](https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md) directly, simplying the integration for new editors.
+Dart includes support for debugging using [the Debug Adapter Protocol](https://microsoft.github.io/debug-adapter-protocol/) as an alternative to using the [VM Service](https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md) directly, simplifying the integration for new editors.
 
 The debug adapters are started with the `dart debug_adapter` command and are intended to be consumed by DAP-compliant tools such as Dart-specific extensions for editors, or configured by users whose editors include generic configurable DAP clients.
 
diff --git a/pkg/dds/tool/dap/json_schema_extensions.dart b/pkg/dds/tool/dap/json_schema_extensions.dart
index 6e3bf69..2d8dd13 100644
--- a/pkg/dds/tool/dap/json_schema_extensions.dart
+++ b/pkg/dds/tool/dap/json_schema_extensions.dart
@@ -101,7 +101,7 @@
   }
 
   /// Whether this type is a simple type that needs no special handling for
-  /// deserialisation (such as `String`, `bool`, `int`, `Map<String, Object?>`).
+  /// deserialization (such as `String`, `bool`, `int`, `Map<String, Object?>`).
   bool get isSimple {
     const _dartSimpleTypes = {
       'bool',
diff --git a/pkg/js/proposal.md b/pkg/js/proposal.md
index 9e33aa4..8460195 100644
--- a/pkg/js/proposal.md
+++ b/pkg/js/proposal.md
@@ -697,7 +697,7 @@
 decide what runtime type information to attach. Tearoffs could get the
 statically visible type at the call site, or they could be treated like other
 JS functions, and be assignable to any function type. Untyped is advantageous
-for performance/simplicity, so it's probably preferrable, unless we find
+for performance/simplicity, so it's probably preferable, unless we find
 compelling examples.
 
 
diff --git a/pkg/vm_service/lib/src/vm_service.dart b/pkg/vm_service/lib/src/vm_service.dart
index de2a2ea..7d79815 100644
--- a/pkg/vm_service/lib/src/vm_service.dart
+++ b/pkg/vm_service/lib/src/vm_service.dart
@@ -3729,7 +3729,7 @@
   int? pid;
 
   /// A list of references to functions seen in the relevant samples. These
-  /// references can be looked up using the indicies provided in a `CpuSample`
+  /// references can be looked up using the indices provided in a `CpuSample`
   /// `stack` to determine which function was on the stack.
   List<dynamic>? functions;
 
diff --git a/runtime/bin/directory_android.cc b/runtime/bin/directory_android.cc
index 27e0f01..3bccd53 100644
--- a/runtime/bin/directory_android.cc
+++ b/runtime/bin/directory_android.cc
@@ -385,7 +385,7 @@
     if ((errno == EACCES) || (errno == EBADF) || (errno == EFAULT) ||
         (errno == ENOMEM) || (errno == EOVERFLOW)) {
       // Search permissions denied for one of the directories in the
-      // path or a low level error occured. We do not know if the
+      // path or a low level error occurred. We do not know if the
       // directory exists.
       return UNKNOWN;
     }
diff --git a/runtime/bin/directory_fuchsia.cc b/runtime/bin/directory_fuchsia.cc
index d37394a..282d2e3 100644
--- a/runtime/bin/directory_fuchsia.cc
+++ b/runtime/bin/directory_fuchsia.cc
@@ -264,7 +264,7 @@
     if ((errno == EACCES) || (errno == EBADF) || (errno == EFAULT) ||
         (errno == ENOMEM) || (errno == EOVERFLOW)) {
       // Search permissions denied for one of the directories in the
-      // path or a low level error occured. We do not know if the
+      // path or a low level error occurred. We do not know if the
       // directory exists.
       return UNKNOWN;
     }
diff --git a/runtime/bin/directory_linux.cc b/runtime/bin/directory_linux.cc
index a1065e3..d2af2c5 100644
--- a/runtime/bin/directory_linux.cc
+++ b/runtime/bin/directory_linux.cc
@@ -386,7 +386,7 @@
     if ((errno == EACCES) || (errno == EBADF) || (errno == EFAULT) ||
         (errno == ENOMEM) || (errno == EOVERFLOW)) {
       // Search permissions denied for one of the directories in the
-      // path or a low level error occured. We do not know if the
+      // path or a low level error occurred. We do not know if the
       // directory exists.
       return UNKNOWN;
     }
diff --git a/runtime/bin/directory_macos.cc b/runtime/bin/directory_macos.cc
index cce2154..09f9435 100644
--- a/runtime/bin/directory_macos.cc
+++ b/runtime/bin/directory_macos.cc
@@ -346,7 +346,7 @@
     if ((errno == EACCES) || (errno == EBADF) || (errno == EFAULT) ||
         (errno == ENOMEM) || (errno == EOVERFLOW)) {
       // Search permissions denied for one of the directories in the
-      // path or a low level error occured. We do not know if the
+      // path or a low level error occurred. We do not know if the
       // directory exists.
       return UNKNOWN;
     }
diff --git a/runtime/lib/isolate.cc b/runtime/lib/isolate.cc
index e921c25..2075d8b 100644
--- a/runtime/lib/isolate.cc
+++ b/runtime/lib/isolate.cc
@@ -880,7 +880,7 @@
   void FailedSpawn(const char* error, bool has_current_isolate = true) {
     ReportError(error != nullptr
                     ? error
-                    : "Unknown error occured during Isolate spawning.");
+                    : "Unknown error occurred during Isolate spawning.");
     // Destruction of [IsolateSpawnState] may cause destruction of [Message]
     // which make need to delete persistent handles (which requires a current
     // isolate group).
diff --git a/runtime/observatory/lib/src/elements/helpers/custom_element.dart b/runtime/observatory/lib/src/elements/helpers/custom_element.dart
index b3f93f2..acc0dfde 100644
--- a/runtime/observatory/lib/src/elements/helpers/custom_element.dart
+++ b/runtime/observatory/lib/src/elements/helpers/custom_element.dart
@@ -38,7 +38,7 @@
     while (!toBeAttached.isEmpty) {
       // Either this element will never be attached or it will be attached
       // after a turn of the outer event loop. Fire 'attached' in case it is
-      // the latter, since firing it out of order is preferrable to not firing
+      // the latter, since firing it out of order is preferable to not firing
       // it at all.
       CustomElement element = toBeAttached.removeLast();
       print("Warning: created but not in document: $element");
diff --git a/runtime/observatory_2/lib/src/elements/helpers/custom_element.dart b/runtime/observatory_2/lib/src/elements/helpers/custom_element.dart
index 2af0d6c..72fc1dd 100644
--- a/runtime/observatory_2/lib/src/elements/helpers/custom_element.dart
+++ b/runtime/observatory_2/lib/src/elements/helpers/custom_element.dart
@@ -37,7 +37,7 @@
     while (!toBeAttached.isEmpty) {
       // Either this element will never be attached or it will be attached
       // after a turn of the outer event loop. Fire 'attached' in case it is
-      // the latter, since firing it out of order is preferrable to not firing
+      // the latter, since firing it out of order is preferable to not firing
       // it at all.
       CustomElement element = toBeAttached.removeLast();
       print("Warning: created but not in document: $element");
diff --git a/runtime/observatory_2/lib/src/elements/helpers/tag.dart b/runtime/observatory_2/lib/src/elements/helpers/tag.dart
index 65c269a..342c521 100644
--- a/runtime/observatory_2/lib/src/elements/helpers/tag.dart
+++ b/runtime/observatory_2/lib/src/elements/helpers/tag.dart
@@ -37,7 +37,7 @@
     while (!toBeAttached.isEmpty) {
       // Either this element will never be attached or it will be attached
       // after a turn of the outer event loop. Fire 'attached' in case it is
-      // the latter, since firing it out of order is preferrable to not firing
+      // the latter, since firing it out of order is preferable to not firing
       // it at all.
       CustomElement element = toBeAttached.removeLast();
       print("Warning: created but not in document: $element");
diff --git a/runtime/tests/vm/dart/regress_b_238653741_test.dart b/runtime/tests/vm/dart/regress_b_238653741_test.dart
new file mode 100644
index 0000000..b6c5b4f
--- /dev/null
+++ b/runtime/tests/vm/dart/regress_b_238653741_test.dart
@@ -0,0 +1,25 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Regression test for b/238653741.
+//
+// Verifies that calling async function through dynamic invocation forwarder
+// does not result in a runtime error.
+
+import "package:expect/expect.dart";
+
+class A {
+  Future<int> foo(int arg) async => arg + 3;
+}
+
+class B {
+  Future<int> foo(String arg) async => int.parse(arg);
+}
+
+List<dynamic> objects = [A(), B(), 42];
+
+void main() async {
+  Expect.equals(7, await objects[0].foo(4));
+  Expect.equals(8, await objects[1].foo("8"));
+}
diff --git a/runtime/tests/vm/dart/regress_flutter51298_test.dart b/runtime/tests/vm/dart/regress_flutter51298_test.dart
index 9e7bb8c..68cddd9 100644
--- a/runtime/tests/vm/dart/regress_flutter51298_test.dart
+++ b/runtime/tests/vm/dart/regress_flutter51298_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// VMOptions=--async_igoto_threshold=0 --optimization_counter_threshold=10 --deterministic
+// VMOptions=--optimization_counter_threshold=10 --deterministic
 
 // Regression test for https://github.com/flutter/flutter/issues/51298.
 // This would cause a crash due to bad offsets causing entry to hit the pre-code
diff --git a/runtime/tests/vm/dart_2/regress_b_238653741_test.dart b/runtime/tests/vm/dart_2/regress_b_238653741_test.dart
new file mode 100644
index 0000000..6ae85d2
--- /dev/null
+++ b/runtime/tests/vm/dart_2/regress_b_238653741_test.dart
@@ -0,0 +1,27 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Regression test for b/238653741.
+//
+// Verifies that calling async function through dynamic invocation forwarder
+// does not result in a runtime error.
+
+// @dart=2.9
+
+import "package:expect/expect.dart";
+
+class A {
+  Future<int> foo(int arg) async => arg + 3;
+}
+
+class B {
+  Future<int> foo(String arg) async => int.parse(arg);
+}
+
+List<dynamic> objects = [A(), B(), 42];
+
+void main() async {
+  Expect.equals(7, await objects[0].foo(4));
+  Expect.equals(8, await objects[1].foo("8"));
+}
diff --git a/runtime/tests/vm/dart_2/regress_flutter51298_test.dart b/runtime/tests/vm/dart_2/regress_flutter51298_test.dart
index 6056dea..28f8bc1 100644
--- a/runtime/tests/vm/dart_2/regress_flutter51298_test.dart
+++ b/runtime/tests/vm/dart_2/regress_flutter51298_test.dart
@@ -4,7 +4,7 @@
 
 // @dart = 2.9
 
-// VMOptions=--async_igoto_threshold=0 --optimization_counter_threshold=10 --deterministic
+// VMOptions=--optimization_counter_threshold=10 --deterministic
 
 // Regression test for https://github.com/flutter/flutter/issues/51298.
 // This would cause a crash due to bad offsets causing entry to hit the pre-code
diff --git a/runtime/vm/code_descriptors.h b/runtime/vm/code_descriptors.h
index e268ff0..47ced6f 100644
--- a/runtime/vm/code_descriptors.h
+++ b/runtime/vm/code_descriptors.h
@@ -78,8 +78,8 @@
 
   explicit ExceptionHandlerList(const Function& function)
       : list_(),
-        has_async_handler_(function.IsCompactAsyncFunction() ||
-                           function.IsCompactAsyncStarFunction()) {}
+        has_async_handler_(function.IsAsyncFunction() ||
+                           function.IsAsyncGenerator()) {}
 
   intptr_t Length() const { return list_.length(); }
 
diff --git a/runtime/vm/compiler/aot/precompiler.cc b/runtime/vm/compiler/aot/precompiler.cc
index 6c6a023..f243e82 100644
--- a/runtime/vm/compiler/aot/precompiler.cc
+++ b/runtime/vm/compiler/aot/precompiler.cc
@@ -629,8 +629,6 @@
         IG->object_store()->set_simple_instance_of_true_function(null_function);
         IG->object_store()->set_simple_instance_of_false_function(
             null_function);
-        IG->object_store()->set_async_star_move_next_helper(null_function);
-        IG->object_store()->set_complete_on_async_return(null_function);
         IG->object_store()->set_async_star_stream_controller(null_class);
         DropMetadata();
         DropLibraryEntries();
@@ -1136,14 +1134,6 @@
     return;
   }
 
-  // Preserve parents for generated bodies in async/async*/sync* functions,
-  // since predicates like Function::IsAsyncClosure(), etc. need that info.
-  if (function.is_generated_body()) {
-    AddRetainReason(parent_function, RetainReasons::kIsSyncAsyncFunction);
-    AddTypesOf(parent_function);
-    return;
-  }
-
   // We're not retaining the parent due to this function, so wrap it with
   // a weak serialization reference.
   const auto& data = ClosureData::CheckedHandle(Z, function.data());
@@ -2983,10 +2973,6 @@
           ++codes_with_native_function_;
           return;
         }
-        if (function_.IsAsyncClosure() || function_.IsAsyncGenClosure()) {
-          ++codes_with_async_closure_function_;
-          return;
-        }
 
         // Retain Code objects corresponding to dynamically
         // called functions.
@@ -3040,8 +3026,6 @@
                 codes_with_pc_descriptors_);
       THR_Print("    %8" Pd " Codes with native functions\n",
                 codes_with_native_function_);
-      THR_Print("    %8" Pd " Codes with async closure functions\n",
-                codes_with_async_closure_function_);
       THR_Print("    %8" Pd " Codes with dynamically called functions\n",
                 codes_with_dynamically_called_function_);
       THR_Print("    %8" Pd " Codes with deferred functions\n",
@@ -3073,7 +3057,6 @@
     intptr_t codes_with_exception_handlers_ = 0;
     intptr_t codes_with_pc_descriptors_ = 0;
     intptr_t codes_with_native_function_ = 0;
-    intptr_t codes_with_async_closure_function_ = 0;
     intptr_t codes_with_dynamically_called_function_ = 0;
     intptr_t codes_with_deferred_function_ = 0;
     intptr_t codes_with_ffi_trampoline_function_ = 0;
diff --git a/runtime/vm/compiler/api/deopt_id.h b/runtime/vm/compiler/api/deopt_id.h
index c203e45..fee2d2b9 100644
--- a/runtime/vm/compiler/api/deopt_id.h
+++ b/runtime/vm/compiler/api/deopt_id.h
@@ -17,7 +17,7 @@
 // Note: any instruction that does a call has two deoptimization points,
 // one before the call and one after the call - so that we could deoptimize
 // to either before or after the call depending on whether the same call
-// already occured in the optimized code (and potentially produced
+// already occurred in the optimized code (and potentially produced
 // observable side-effects) or not.
 //
 // To simplify implementation we always allocate two deopt ids (one for before
diff --git a/runtime/vm/compiler/assembler/assembler_ia32.cc b/runtime/vm/compiler/assembler/assembler_ia32.cc
index 4dba074..51c1fa9 100644
--- a/runtime/vm/compiler/assembler/assembler_ia32.cc
+++ b/runtime/vm/compiler/assembler/assembler_ia32.cc
@@ -1147,7 +1147,7 @@
   EmitUint8(0x3A);
   EmitUint8(0x0B);
   EmitXmmRegisterOperand(dst, src);
-  // Mask precision exeption.
+  // Mask precision exception.
   EmitUint8(static_cast<uint8_t>(mode) | 0x8);
 }
 
diff --git a/runtime/vm/compiler/assembler/assembler_x64.cc b/runtime/vm/compiler/assembler/assembler_x64.cc
index f2a874a..bfed044 100644
--- a/runtime/vm/compiler/assembler/assembler_x64.cc
+++ b/runtime/vm/compiler/assembler/assembler_x64.cc
@@ -525,7 +525,7 @@
   EmitUint8(0x3A);
   EmitUint8(0x0B);
   EmitRegisterOperand(dst & 7, src);
-  // Mask precision exeption.
+  // Mask precision exception.
   EmitUint8(static_cast<uint8_t>(mode) | 0x8);
 }
 
diff --git a/runtime/vm/compiler/backend/il.cc b/runtime/vm/compiler/backend/il.cc
index ae1740f..b5f2e3e 100644
--- a/runtime/vm/compiler/backend/il.cc
+++ b/runtime/vm/compiler/backend/il.cc
@@ -6309,6 +6309,7 @@
     case kTypedDataUint64ArrayCid:
       return kUnboxedInt64;
     case kTypedDataFloat32ArrayCid:
+      return kUnboxedFloat;
     case kTypedDataFloat64ArrayCid:
       return kUnboxedDouble;
     case kTypedDataInt32x4ArrayCid:
@@ -6836,7 +6837,7 @@
 const Code& ReturnInstr::GetReturnStub(FlowGraphCompiler* compiler) const {
   const Function& function = compiler->parsed_function().function();
   ASSERT(function.IsSuspendableFunction());
-  if (function.IsCompactAsyncFunction()) {
+  if (function.IsAsyncFunction()) {
     if (!value()->Type()->CanBeFuture()) {
       return Code::ZoneHandle(compiler->zone(),
                               compiler->isolate_group()
@@ -6846,14 +6847,10 @@
     return Code::ZoneHandle(
         compiler->zone(),
         compiler->isolate_group()->object_store()->return_async_stub());
-  } else if (function.IsCompactAsyncStarFunction()) {
+  } else if (function.IsAsyncGenerator()) {
     return Code::ZoneHandle(
         compiler->zone(),
         compiler->isolate_group()->object_store()->return_async_star_stub());
-  } else if (function.IsCompactSyncStarFunction()) {
-    return Code::ZoneHandle(
-        compiler->zone(),
-        compiler->isolate_group()->object_store()->return_sync_star_stub());
   } else {
     UNREACHABLE();
   }
@@ -7356,8 +7353,11 @@
     case StubId::kYieldAsyncStar:
       stub = object_store->yield_async_star_stub();
       break;
-    case StubId::kYieldSyncStar:
-      stub = object_store->yield_sync_star_stub();
+    case StubId::kSuspendSyncStarAtStart:
+      stub = object_store->suspend_sync_star_at_start_stub();
+      break;
+    case StubId::kSuspendSyncStarAtYield:
+      stub = object_store->suspend_sync_star_at_yield_stub();
       break;
   }
   compiler->GenerateStubCall(source(), stub, UntaggedPcDescriptors::kOther,
diff --git a/runtime/vm/compiler/backend/il.h b/runtime/vm/compiler/backend/il.h
index ad51a54..5506aec 100644
--- a/runtime/vm/compiler/backend/il.h
+++ b/runtime/vm/compiler/backend/il.h
@@ -8628,13 +8628,7 @@
 
   virtual bool ComputeCanDeoptimize() const { return false; }
 
-  virtual Representation representation() const {
-    // This works since double is the representation that the typed array
-    // store expects.
-    // TODO(fschneider): Change this to a genuine float representation once it
-    // is supported.
-    return kUnboxedDouble;
-  }
+  virtual Representation representation() const { return kUnboxedFloat; }
 
   virtual Representation RequiredInputRepresentation(intptr_t idx) const {
     ASSERT(idx == 0);
@@ -8676,7 +8670,7 @@
 
   virtual Representation RequiredInputRepresentation(intptr_t idx) const {
     ASSERT(idx == 0);
-    return kUnboxedDouble;
+    return kUnboxedFloat;
   }
 
   virtual intptr_t DeoptimizationTarget() const { return GetDeoptId(); }
@@ -9626,7 +9620,8 @@
   enum class StubId {
     kAwait,
     kYieldAsyncStar,
-    kYieldSyncStar,
+    kSuspendSyncStarAtStart,
+    kSuspendSyncStarAtYield,
   };
 
   SuspendInstr(const InstructionSource& source,
diff --git a/runtime/vm/compiler/backend/il_arm.cc b/runtime/vm/compiler/backend/il_arm.cc
index 2775dde..ef4150c 100644
--- a/runtime/vm/compiler/backend/il_arm.cc
+++ b/runtime/vm/compiler/backend/il_arm.cc
@@ -484,7 +484,8 @@
     ASSERT(result == CallingConventions::kReturnFpuReg);
   }
 
-  if (compiler->parsed_function().function().IsSuspendableFunction()) {
+  if (compiler->parsed_function().function().IsAsyncFunction() ||
+      compiler->parsed_function().function().IsAsyncGenerator()) {
     ASSERT(compiler->flow_graph().graph_entry()->NeedsFrame());
     const Code& stub = GetReturnStub(compiler);
     compiler->EmitJumpToStub(stub);
@@ -1942,7 +1943,8 @@
 
   if (!directly_addressable) {
     kNumTemps += 1;
-    if (representation() == kUnboxedDouble) {
+    if ((representation() == kUnboxedFloat) ||
+        (representation() == kUnboxedDouble)) {
       kNumTemps += 1;
     }
   }
@@ -1958,7 +1960,8 @@
   } else {
     locs->set_in(1, Location::RequiresRegister());
   }
-  if ((representation() == kUnboxedDouble) ||
+  if ((representation() == kUnboxedFloat) ||
+      (representation() == kUnboxedDouble) ||
       (representation() == kUnboxedFloat32x4) ||
       (representation() == kUnboxedInt32x4) ||
       (representation() == kUnboxedFloat64x2)) {
@@ -1979,7 +1982,8 @@
   }
   if (!directly_addressable) {
     locs->set_temp(0, Location::RequiresRegister());
-    if (representation() == kUnboxedDouble) {
+    if ((representation() == kUnboxedFloat) ||
+        (representation() == kUnboxedDouble)) {
       locs->set_temp(1, Location::RequiresRegister());
     }
   }
@@ -2024,7 +2028,8 @@
     }
   }
 
-  if ((representation() == kUnboxedDouble) ||
+  if ((representation() == kUnboxedFloat) ||
+      (representation() == kUnboxedDouble) ||
       (representation() == kUnboxedFloat32x4) ||
       (representation() == kUnboxedInt32x4) ||
       (representation() == kUnboxedFloat64x2)) {
diff --git a/runtime/vm/compiler/backend/il_arm64.cc b/runtime/vm/compiler/backend/il_arm64.cc
index f0b8f86..8dae4ff 100644
--- a/runtime/vm/compiler/backend/il_arm64.cc
+++ b/runtime/vm/compiler/backend/il_arm64.cc
@@ -421,7 +421,8 @@
     ASSERT(result == CallingConventions::kReturnFpuReg);
   }
 
-  if (compiler->parsed_function().function().IsSuspendableFunction()) {
+  if (compiler->parsed_function().function().IsAsyncFunction() ||
+      compiler->parsed_function().function().IsAsyncGenerator()) {
     ASSERT(compiler->flow_graph().graph_entry()->NeedsFrame());
     const Code& stub = GetReturnStub(compiler);
     compiler->EmitJumpToStub(stub);
@@ -1806,7 +1807,8 @@
   } else {
     locs->set_in(1, Location::RequiresRegister());
   }
-  if ((representation() == kUnboxedDouble) ||
+  if ((representation() == kUnboxedFloat) ||
+      (representation() == kUnboxedDouble) ||
       (representation() == kUnboxedFloat32x4) ||
       (representation() == kUnboxedInt32x4) ||
       (representation() == kUnboxedFloat64x2)) {
@@ -1830,7 +1832,8 @@
                         : __ ElementAddressForIntIndex(
                               IsExternal(), class_id(), index_scale(), array,
                               Smi::Cast(index.constant()).Value());
-  if ((representation() == kUnboxedDouble) ||
+  if ((representation() == kUnboxedFloat) ||
+      (representation() == kUnboxedDouble) ||
       (representation() == kUnboxedFloat32x4) ||
       (representation() == kUnboxedInt32x4) ||
       (representation() == kUnboxedFloat64x2)) {
diff --git a/runtime/vm/compiler/backend/il_ia32.cc b/runtime/vm/compiler/backend/il_ia32.cc
index 355c0c0..ee799ff 100644
--- a/runtime/vm/compiler/backend/il_ia32.cc
+++ b/runtime/vm/compiler/backend/il_ia32.cc
@@ -233,7 +233,8 @@
   Register result = locs()->in(0).reg();
   ASSERT(result == EAX);
 
-  if (compiler->parsed_function().function().IsSuspendableFunction()) {
+  if (compiler->parsed_function().function().IsAsyncFunction() ||
+      compiler->parsed_function().function().IsAsyncGenerator()) {
     ASSERT(compiler->flow_graph().graph_entry()->NeedsFrame());
     const Code& stub = GetReturnStub(compiler);
     compiler->EmitJumpToStub(stub);
@@ -1525,7 +1526,8 @@
     locs->set_in(1, (index_scale() == 1) ? Location::WritableRegister()
                                          : Location::RequiresRegister());
   }
-  if ((representation() == kUnboxedDouble) ||
+  if ((representation() == kUnboxedFloat) ||
+      (representation() == kUnboxedDouble) ||
       (representation() == kUnboxedFloat32x4) ||
       (representation() == kUnboxedInt32x4) ||
       (representation() == kUnboxedFloat64x2)) {
@@ -1562,7 +1564,8 @@
     }
   }
 
-  if ((representation() == kUnboxedDouble) ||
+  if ((representation() == kUnboxedFloat) ||
+      (representation() == kUnboxedDouble) ||
       (representation() == kUnboxedFloat32x4) ||
       (representation() == kUnboxedInt32x4) ||
       (representation() == kUnboxedFloat64x2)) {
diff --git a/runtime/vm/compiler/backend/il_printer.cc b/runtime/vm/compiler/backend/il_printer.cc
index 96b12f4..10f9fa5 100644
--- a/runtime/vm/compiler/backend/il_printer.cc
+++ b/runtime/vm/compiler/backend/il_printer.cc
@@ -1394,8 +1394,11 @@
     case StubId::kYieldAsyncStar:
       name = "YieldAsyncStar";
       break;
-    case StubId::kYieldSyncStar:
-      name = "YieldSyncStar";
+    case StubId::kSuspendSyncStarAtStart:
+      name = "SuspendSyncStarAtStart";
+      break;
+    case StubId::kSuspendSyncStarAtYield:
+      name = "SuspendSyncStarAtYield";
       break;
   }
   f->Printf("%s(", name);
diff --git a/runtime/vm/compiler/backend/il_riscv.cc b/runtime/vm/compiler/backend/il_riscv.cc
index 140c21d..f53a822 100644
--- a/runtime/vm/compiler/backend/il_riscv.cc
+++ b/runtime/vm/compiler/backend/il_riscv.cc
@@ -496,7 +496,8 @@
     ASSERT(result == CallingConventions::kReturnFpuReg);
   }
 
-  if (compiler->parsed_function().function().IsSuspendableFunction()) {
+  if (compiler->parsed_function().function().IsAsyncFunction() ||
+      compiler->parsed_function().function().IsAsyncGenerator()) {
     ASSERT(compiler->flow_graph().graph_entry()->NeedsFrame());
     const Code& stub = GetReturnStub(compiler);
     compiler->EmitJumpToStub(stub);
@@ -2012,7 +2013,8 @@
   } else {
     locs->set_in(1, Location::RequiresRegister());
   }
-  if ((representation() == kUnboxedDouble) ||
+  if ((representation() == kUnboxedFloat) ||
+      (representation() == kUnboxedDouble) ||
       (representation() == kUnboxedFloat32x4) ||
       (representation() == kUnboxedInt32x4) ||
       (representation() == kUnboxedFloat64x2)) {
@@ -2043,7 +2045,8 @@
                         : __ ElementAddressForIntIndex(
                               IsExternal(), class_id(), index_scale(), array,
                               Smi::Cast(index.constant()).Value());
-  if ((representation() == kUnboxedDouble) ||
+  if ((representation() == kUnboxedFloat) ||
+      (representation() == kUnboxedDouble) ||
       (representation() == kUnboxedFloat32x4) ||
       (representation() == kUnboxedInt32x4) ||
       (representation() == kUnboxedFloat64x2)) {
diff --git a/runtime/vm/compiler/backend/il_x64.cc b/runtime/vm/compiler/backend/il_x64.cc
index 8364d7a..eb53681 100644
--- a/runtime/vm/compiler/backend/il_x64.cc
+++ b/runtime/vm/compiler/backend/il_x64.cc
@@ -338,7 +338,8 @@
     ASSERT(result == CallingConventions::kReturnFpuReg);
   }
 
-  if (compiler->parsed_function().function().IsSuspendableFunction()) {
+  if (compiler->parsed_function().function().IsAsyncFunction() ||
+      compiler->parsed_function().function().IsAsyncGenerator()) {
     ASSERT(compiler->flow_graph().graph_entry()->NeedsFrame());
     const Code& stub = GetReturnStub(compiler);
     compiler->EmitJumpToStub(stub);
@@ -1732,7 +1733,8 @@
              ? Location::Constant(index()->definition()->AsConstant())
              : (need_writable_index_register ? Location::WritableRegister()
                                              : Location::RequiresRegister()));
-  if ((representation() == kUnboxedDouble) ||
+  if ((representation() == kUnboxedFloat) ||
+      (representation() == kUnboxedDouble) ||
       (representation() == kUnboxedFloat32x4) ||
       (representation() == kUnboxedInt32x4) ||
       (representation() == kUnboxedFloat64x2)) {
@@ -1779,10 +1781,11 @@
                                IsExternal(), class_id(), index_scale, array,
                                Smi::Cast(index.constant()).Value());
 
-  if (representation() == kUnboxedDouble ||
-      representation() == kUnboxedFloat32x4 ||
-      representation() == kUnboxedInt32x4 ||
-      representation() == kUnboxedFloat64x2) {
+  if ((representation() == kUnboxedFloat) ||
+      (representation() == kUnboxedDouble) ||
+      (representation() == kUnboxedFloat32x4) ||
+      (representation() == kUnboxedInt32x4) ||
+      (representation() == kUnboxedFloat64x2)) {
     XmmRegister result = locs()->out(0).fpu_reg();
     if (class_id() == kTypedDataFloat32ArrayCid) {
       // Load single precision float.
diff --git a/runtime/vm/compiler/backend/linearscan.cc b/runtime/vm/compiler/backend/linearscan.cc
index 0dafbb87..68e5b3e 100644
--- a/runtime/vm/compiler/backend/linearscan.cc
+++ b/runtime/vm/compiler/backend/linearscan.cc
@@ -103,7 +103,7 @@
       vreg_count_(flow_graph.max_virtual_register_number()),
       live_ranges_(flow_graph.max_virtual_register_number()),
       unallocated_cpu_(),
-      unallocated_xmm_(),
+      unallocated_fpu_(),
       cpu_regs_(),
       fpu_regs_(),
       blocked_cpu_registers_(),
@@ -2767,7 +2767,7 @@
       break;
 
     case Location::kFpuRegister:
-      AddToSortedListOfRanges(&unallocated_xmm_, range);
+      AddToSortedListOfRanges(&unallocated_fpu_, range);
       break;
 
     default:
@@ -3351,7 +3351,7 @@
   untagged_spill_slots_.Clear();
 
   PrepareForAllocation(Location::kFpuRegister, kNumberOfFpuRegisters,
-                       unallocated_xmm_, fpu_regs_, blocked_fpu_registers_);
+                       unallocated_fpu_, fpu_regs_, blocked_fpu_registers_);
   AllocateUnallocatedRanges();
 
   GraphEntryInstr* entry = block_order_[0]->AsGraphEntry();
diff --git a/runtime/vm/compiler/backend/linearscan.h b/runtime/vm/compiler/backend/linearscan.h
index 8256a1a..ea3fb9c 100644
--- a/runtime/vm/compiler/backend/linearscan.h
+++ b/runtime/vm/compiler/backend/linearscan.h
@@ -317,7 +317,7 @@
   GrowableArray<LiveRange*> live_ranges_;
 
   GrowableArray<LiveRange*> unallocated_cpu_;
-  GrowableArray<LiveRange*> unallocated_xmm_;
+  GrowableArray<LiveRange*> unallocated_fpu_;
 
   LiveRange* cpu_regs_[kNumberOfCpuRegisters];
   LiveRange* fpu_regs_[kNumberOfFpuRegisters];
diff --git a/runtime/vm/compiler/compiler_pass.h b/runtime/vm/compiler/compiler_pass.h
index bac28af..d9159e0 100644
--- a/runtime/vm/compiler/compiler_pass.h
+++ b/runtime/vm/compiler/compiler_pass.h
@@ -85,7 +85,7 @@
   // Maps inline_id_to_function[inline_id] -> function. Top scope
   // function has inline_id 0. The map is populated by the inliner.
   GrowableArray<const Function*> inline_id_to_function;
-  // Token position where inlining occured.
+  // Token position where inlining occurred.
   GrowableArray<TokenPosition> inline_id_to_token_pos;
   // For a given inlining-id(index) specifies the caller's inlining-id.
   GrowableArray<intptr_t> caller_inline_id;
diff --git a/runtime/vm/compiler/compiler_state.cc b/runtime/vm/compiler/compiler_state.cc
index dde29ec..c50e82d 100644
--- a/runtime/vm/compiler/compiler_state.cc
+++ b/runtime/vm/compiler/compiler_state.cc
@@ -130,7 +130,7 @@
 }
 
 void CompilerState::ReportCrash() {
-  OS::PrintErr("=== Crash occured when compiling %s in %s mode in %s pass\n",
+  OS::PrintErr("=== Crash occurred when compiling %s in %s mode in %s pass\n",
                function() != nullptr ? function()->ToFullyQualifiedCString()
                                      : "unknown function",
                is_aot()          ? "AOT"
diff --git a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
index db660b5..ef1b9a0 100644
--- a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
+++ b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
@@ -482,11 +482,6 @@
   if (dart_function.IsClosureFunction() &&
       dart_function.NumParentTypeArguments() > 0) {
     LocalVariable* closure = parsed_function()->ParameterVariable(0);
-
-    // Function with yield points can not be generic itself but the outer
-    // function can be.
-    ASSERT(yield_continuations().is_empty() || !dart_function.IsGeneric());
-
     LocalVariable* fn_type_args = parsed_function()->function_type_arguments();
     ASSERT(fn_type_args != nullptr && closure != nullptr);
 
@@ -518,111 +513,6 @@
   return prologue;
 }
 
-Fragment StreamingFlowGraphBuilder::CompleteBodyWithYieldContinuations(
-    Fragment body) {
-  // The code we are building will be executed right after we enter
-  // the function and before any nested contexts are allocated.
-  // Reset current context_depth_ to match this.
-  const intptr_t current_context_depth = B->context_depth_;
-  B->context_depth_ = scopes()->yield_jump_variable->owner()->context_level();
-
-  // Prepend an entry corresponding to normal entry to the function.
-  yield_continuations().InsertAt(
-      0,
-      YieldContinuation(new (Z) DropTempsInstr(0, nullptr), kInvalidTryIndex));
-  yield_continuations()[0].entry->LinkTo(body.entry);
-
-  // Load :await_jump_var into a temporary.
-  Fragment dispatch;
-  dispatch += LoadLocal(scopes()->yield_jump_variable);
-  dispatch += StoreLocal(TokenPosition::kNoSource, scopes()->switch_variable);
-  dispatch += Drop();
-
-  const intptr_t continuation_count = yield_continuations().length();
-
-  IndirectGotoInstr* indirect_goto;
-  if (FLAG_async_igoto_threshold >= 0 &&
-      continuation_count >= FLAG_async_igoto_threshold) {
-    dispatch += LoadLocal(scopes()->switch_variable);
-    dispatch += IndirectGoto(continuation_count);
-    indirect_goto = dispatch.current->AsIndirectGoto();
-
-    for (intptr_t i = 0; i < continuation_count; i++) {
-      if (i >= 1) {
-        Fragment resumption;
-        // Every continuation after the first is not a normal entry but a
-        // resumption.
-        // Restore :current_context_var from :await_ctx_var.
-        // Note: after this point context_depth_ does not match current context
-        // depth so we should not access any local variables anymore.
-        resumption += LoadLocal(scopes()->yield_context_variable);
-        resumption += StoreLocal(TokenPosition::kNoSource,
-                                 parsed_function()->current_context_var());
-        resumption += Drop();
-
-        Instruction* next = yield_continuations()[i].entry->next();
-        yield_continuations()[i].entry->LinkTo(resumption.entry);
-        resumption <<= next;
-      }
-
-      IndirectEntryInstr* indirect_entry = B->BuildIndirectEntry(
-          /*indirect_id=*/i, yield_continuations()[i].try_index);
-      indirect_entry->LinkTo(yield_continuations()[i].entry->next());
-
-      TargetEntryInstr* target = B->BuildTargetEntry();
-      Fragment(target) + Goto(indirect_entry);
-
-      indirect_goto->AddSuccessor(target);
-    }
-  } else {
-    BlockEntryInstr* block = nullptr;
-    for (intptr_t i = 0; i < continuation_count; i++) {
-      if (i == 1) {
-        // This is not a normal entry but a resumption.  Restore
-        // :current_context_var from :await_ctx_var.
-        // Note: after this point context_depth_ does not match current context
-        // depth so we should not access any local variables anymore.
-        dispatch += LoadLocal(scopes()->yield_context_variable);
-        dispatch += StoreLocal(TokenPosition::kNoSource,
-                               parsed_function()->current_context_var());
-        dispatch += Drop();
-      }
-      if (i == (continuation_count - 1)) {
-        // We reached the last possibility, no need to build more ifs.
-        // Continue to the last continuation.
-        // Note: continuations start with nop DropTemps instruction
-        // which acts like an anchor, so we need to skip it.
-        block->set_try_index(yield_continuations()[i].try_index);
-        dispatch <<= yield_continuations()[i].entry->next();
-        break;
-      }
-
-      // Build comparison:
-      //
-      //   if (:await_jump_var == i) {
-      //     -> yield_continuations()[i]
-      //   } else ...
-      //
-      TargetEntryInstr* then;
-      TargetEntryInstr* otherwise;
-      dispatch += LoadLocal(scopes()->switch_variable);
-      dispatch += IntConstant(i);
-      dispatch += B->BranchIfStrictEqual(&then, &otherwise);
-
-      // True branch is linked to appropriate continuation point.
-      // Note: continuations start with nop DropTemps instruction
-      // which acts like an anchor, so we need to skip it.
-      then->LinkTo(yield_continuations()[i].entry->next());
-      then->set_try_index(yield_continuations()[i].try_index);
-      // False branch will contain the next comparison.
-      dispatch = Fragment(dispatch.entry, otherwise);
-      block = otherwise;
-    }
-  }
-  B->context_depth_ = current_context_depth;
-  return dispatch;
-}
-
 Fragment StreamingFlowGraphBuilder::CheckStackOverflowInPrologue(
     const Function& dart_function) {
   if (dart_function.is_native()) return {};
@@ -669,7 +559,7 @@
 Fragment StreamingFlowGraphBuilder::InitSuspendableFunction(
     const Function& dart_function) {
   Fragment body;
-  if (dart_function.IsCompactAsyncFunction()) {
+  if (dart_function.IsAsyncFunction()) {
     const auto& result_type =
         AbstractType::Handle(Z, dart_function.result_type());
     auto& type_args = TypeArguments::ZoneHandle(Z);
@@ -684,7 +574,7 @@
     body += B->Call1ArgStub(TokenPosition::kNoSource,
                             Call1ArgStubInstr::StubId::kInitAsync);
     body += Drop();
-  } else if (dart_function.IsCompactAsyncStarFunction()) {
+  } else if (dart_function.IsAsyncGenerator()) {
     const auto& result_type =
         AbstractType::Handle(Z, dart_function.result_type());
     auto& type_args = TypeArguments::ZoneHandle(Z);
@@ -702,7 +592,7 @@
     body += B->Suspend(TokenPosition::kNoSource,
                        SuspendInstr::StubId::kYieldAsyncStar);
     body += Drop();
-  } else if (dart_function.IsCompactSyncStarFunction()) {
+  } else if (dart_function.IsSyncGenerator()) {
     const auto& result_type =
         AbstractType::Handle(Z, dart_function.result_type());
     auto& type_args = TypeArguments::ZoneHandle(Z);
@@ -718,7 +608,7 @@
     body += Drop();
     body += NullConstant();
     body += B->Suspend(TokenPosition::kNoSource,
-                       SuspendInstr::StubId::kYieldSyncStar);
+                       SuspendInstr::StubId::kSuspendSyncStarAtStart);
     body += Drop();
     // Clone context if there are any captured parameter variables, so
     // each invocation of .iterator would get its own copy of parameters.
@@ -796,7 +686,12 @@
   }
 
   if (body.is_open()) {
-    body += NullConstant();
+    if (parsed_function()->function().IsSyncGenerator()) {
+      // Return false from sync* function to indicate the end of iteration.
+      body += Constant(Bool::False());
+    } else {
+      body += NullConstant();
+    }
     body += Return(dart_function.end_token_pos());
   }
 
@@ -957,63 +852,46 @@
       every_time_prologue, type_args_handling);
 
   Fragment function(instruction_cursor);
-  if (yield_continuations().is_empty()) {
-    FunctionEntryInstr* extra_entry = nullptr;
-    switch (extra_entry_point_style) {
-      case UncheckedEntryPointStyle::kNone: {
-        function += every_time_prologue + first_time_prologue +
-                    type_args_handling + implicit_type_checks +
-                    explicit_type_checks + body;
-        break;
-      }
-      case UncheckedEntryPointStyle::kSeparate: {
-        ASSERT(instruction_cursor == normal_entry);
-        ASSERT(first_time_prologue.is_empty());
-        ASSERT(type_args_handling.is_empty());
-
-        const Fragment prologue_copy = BuildEveryTimePrologue(
-            dart_function, token_position, type_parameters_offset);
-
-        extra_entry = B->BuildSeparateUncheckedEntryPoint(
-            normal_entry,
-            /*normal_prologue=*/every_time_prologue + implicit_type_checks,
-            /*extra_prologue=*/prologue_copy,
-            /*shared_prologue=*/explicit_type_checks,
-            /*body=*/body);
-        break;
-      }
-      case UncheckedEntryPointStyle::kSharedWithVariable: {
-        Fragment prologue(normal_entry, instruction_cursor);
-        prologue += every_time_prologue;
-        prologue += first_time_prologue;
-        prologue += type_args_handling;
-        prologue += explicit_type_checks;
-        extra_entry = B->BuildSharedUncheckedEntryPoint(
-            /*shared_prologue_linked_in=*/prologue,
-            /*skippable_checks=*/implicit_type_checks,
-            /*redefinitions_if_skipped=*/implicit_redefinitions,
-            /*body=*/body);
-        break;
-      }
+  FunctionEntryInstr* extra_entry = nullptr;
+  switch (extra_entry_point_style) {
+    case UncheckedEntryPointStyle::kNone: {
+      function += every_time_prologue + first_time_prologue +
+                  type_args_handling + implicit_type_checks +
+                  explicit_type_checks + body;
+      break;
     }
-    if (extra_entry != nullptr) {
-      B->RecordUncheckedEntryPoint(graph_entry, extra_entry);
+    case UncheckedEntryPointStyle::kSeparate: {
+      ASSERT(instruction_cursor == normal_entry);
+      ASSERT(first_time_prologue.is_empty());
+      ASSERT(type_args_handling.is_empty());
+
+      const Fragment prologue_copy = BuildEveryTimePrologue(
+          dart_function, token_position, type_parameters_offset);
+
+      extra_entry = B->BuildSeparateUncheckedEntryPoint(
+          normal_entry,
+          /*normal_prologue=*/every_time_prologue + implicit_type_checks,
+          /*extra_prologue=*/prologue_copy,
+          /*shared_prologue=*/explicit_type_checks,
+          /*body=*/body);
+      break;
     }
-  } else {
-    // If the function's body contains any yield points, build switch statement
-    // that selects a continuation point based on the value of :await_jump_var.
-    ASSERT(explicit_type_checks.is_empty());
-
-    // If the function is generic, type_args_handling might require access to
-    // (possibly captured) 'this' for preparing default type arguments, in which
-    // case we can't run it before the 'first_time_prologue'.
-    ASSERT(!dart_function.IsGeneric());
-
-    // TODO(#34162): We can probably ignore the implicit checks
-    // here as well since the arguments are passed from generated code.
-    function += every_time_prologue + type_args_handling +
-                CompleteBodyWithYieldContinuations(first_time_prologue +
-                                                   implicit_type_checks + body);
+    case UncheckedEntryPointStyle::kSharedWithVariable: {
+      Fragment prologue(normal_entry, instruction_cursor);
+      prologue += every_time_prologue;
+      prologue += first_time_prologue;
+      prologue += type_args_handling;
+      prologue += explicit_type_checks;
+      extra_entry = B->BuildSharedUncheckedEntryPoint(
+          /*shared_prologue_linked_in=*/prologue,
+          /*skippable_checks=*/implicit_type_checks,
+          /*redefinitions_if_skipped=*/implicit_redefinitions,
+          /*body=*/body);
+      break;
+    }
+  }
+  if (extra_entry != nullptr) {
+    B->RecordUncheckedEntryPoint(graph_entry, extra_entry);
   }
 
   // When compiling for OSR, use a depth first search to find the OSR
@@ -1517,11 +1395,6 @@
   return flow_graph_builder_->breakable_block_;
 }
 
-GrowableArray<YieldContinuation>&
-StreamingFlowGraphBuilder::yield_continuations() {
-  return flow_graph_builder_->yield_continuations_;
-}
-
 Value* StreamingFlowGraphBuilder::stack() {
   return flow_graph_builder_->stack_;
 }
@@ -4390,8 +4263,8 @@
 
 Fragment StreamingFlowGraphBuilder::BuildAwaitExpression(
     TokenPosition* position) {
-  ASSERT(parsed_function()->function().IsCompactAsyncFunction() ||
-         parsed_function()->function().IsCompactAsyncStarFunction());
+  ASSERT(parsed_function()->function().IsAsyncFunction() ||
+         parsed_function()->function().IsAsyncGenerator());
   Fragment instructions;
 
   const TokenPosition pos = ReadPosition();  // read file offset.
@@ -5040,9 +4913,19 @@
 
   bool inside_try_finally = try_finally_block() != nullptr;
 
-  Fragment instructions = tag == kNothing
-                              ? NullConstant()
-                              : BuildExpression();  // read rest of expression.
+  Fragment instructions;
+  if (parsed_function()->function().IsSyncGenerator()) {
+    // Return false from sync* function to indicate the end of iteration.
+    instructions += Constant(Bool::False());
+    if (tag != kNothing) {
+      ASSERT(PeekTag() == kNullLiteral);
+      SkipExpression();
+    }
+  } else {
+    instructions +=
+        (tag == kNothing ? NullConstant()
+                         : BuildExpression());  // read rest of expression.
+  }
 
   if (instructions.is_open()) {
     if (inside_try_finally) {
@@ -5323,7 +5206,7 @@
     instructions += DebugStepCheck(pos);
   }
 
-  if (parsed_function()->function().IsCompactAsyncStarFunction()) {
+  if (parsed_function()->function().IsAsyncGenerator()) {
     // In the async* functions, generate the following code for yield <expr>:
     //
     // _AsyncStarStreamController controller = :suspend_state._functionData;
@@ -5377,7 +5260,7 @@
       instructions += Drop();
     }
 
-  } else if (parsed_function()->function().IsCompactSyncStarFunction()) {
+  } else if (parsed_function()->function().IsSyncGenerator()) {
     // In the sync* functions, generate the following code for yield <expr>:
     //
     // _SyncStarIterator iterator = :suspend_state._functionData;
@@ -5397,8 +5280,9 @@
       field = IG->object_store()->sync_star_iterator_current();
     }
     instructions += B->StoreInstanceFieldGuarded(field);
-    instructions += NullConstant();
-    instructions += B->Suspend(pos, SuspendInstr::StubId::kYieldSyncStar);
+    instructions += B->Constant(Bool::True());
+    instructions +=
+        B->Suspend(pos, SuspendInstr::StubId::kSuspendSyncStarAtYield);
     instructions += Drop();
   } else {
     UNREACHABLE();
@@ -5568,62 +5452,24 @@
 
         if (function_node_helper.async_marker_ == FunctionNodeHelper::kAsync) {
           function.set_modifier(UntaggedFunction::kAsync);
-          function.set_is_debuggable(true);
           function.set_is_inlinable(false);
-          function.set_is_visible(true);
-          ASSERT(function.IsCompactAsyncFunction());
+          ASSERT(function.IsAsyncFunction());
         } else if (function_node_helper.async_marker_ ==
                    FunctionNodeHelper::kAsyncStar) {
           function.set_modifier(UntaggedFunction::kAsyncGen);
-          function.set_is_debuggable(true);
           function.set_is_inlinable(false);
-          function.set_is_visible(true);
-          ASSERT(function.IsCompactAsyncStarFunction());
+          ASSERT(function.IsAsyncGenerator());
         } else if (function_node_helper.async_marker_ ==
                    FunctionNodeHelper::kSyncStar) {
           function.set_modifier(UntaggedFunction::kSyncGen);
-          function.set_is_debuggable(true);
           function.set_is_inlinable(false);
-          function.set_is_visible(true);
-          ASSERT(function.IsCompactSyncStarFunction());
+          ASSERT(function.IsSyncGenerator());
         } else {
           ASSERT(function_node_helper.async_marker_ ==
                  FunctionNodeHelper::kSync);
-          function.set_is_debuggable(function_node_helper.dart_async_marker_ ==
-                                     FunctionNodeHelper::kSync);
-          switch (function_node_helper.dart_async_marker_) {
-            case FunctionNodeHelper::kSyncStar:
-              function.set_modifier(UntaggedFunction::kSyncGen);
-              break;
-            case FunctionNodeHelper::kAsync:
-              function.set_modifier(UntaggedFunction::kAsync);
-              break;
-            case FunctionNodeHelper::kAsyncStar:
-              function.set_modifier(UntaggedFunction::kAsyncGen);
-              break;
-            default:
-              // no special modifier
-              break;
-          }
-          function.set_is_generated_body(false);
-          // sync* functions contain two nested synthetic functions,
-          // the first of which (sync_op_gen) is a regular sync function so we
-          // need to manually label it generated:
-          if (function.parent_function() != Function::null()) {
-            const auto& parent = Function::Handle(function.parent_function());
-            if (parent.IsSyncGenerator() &&
-                !parent.IsCompactSyncStarFunction()) {
-              function.set_is_generated_body(true);
-            }
-          }
-          // Note: Is..() methods use the modifiers set above, so order
-          // matters.
-          if (function.IsAsyncClosure() || function.IsAsyncGenClosure()) {
-            function.set_is_inlinable(false);
-          }
-          ASSERT(!function.IsCompactAsyncFunction());
-          ASSERT(!function.IsCompactAsyncStarFunction());
-          ASSERT(!function.IsCompactSyncStarFunction());
+          ASSERT(!function.IsAsyncFunction());
+          ASSERT(!function.IsAsyncGenerator());
+          ASSERT(!function.IsSyncGenerator());
         }
 
         // If the start token position is synthetic, the end token position
diff --git a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.h b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.h
index feb6d48..bf95ac2 100644
--- a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.h
+++ b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.h
@@ -98,7 +98,6 @@
   Fragment ShortcutForUserDefinedEquals(const Function& dart_function,
                                         LocalVariable* first_parameter);
   Fragment TypeArgumentsHandling(const Function& dart_function);
-  Fragment CompleteBodyWithYieldContinuations(Fragment body);
 
   static UncheckedEntryPointStyle ChooseEntryPointStyle(
       const Function& dart_function,
@@ -131,7 +130,6 @@
   TryFinallyBlock* try_finally_block();
   SwitchBlock* switch_block();
   BreakableBlock* breakable_block();
-  GrowableArray<YieldContinuation>& yield_continuations();
   Value* stack();
   void set_stack(Value* top);
   void Push(Definition* definition);
diff --git a/runtime/vm/compiler/frontend/kernel_to_il.h b/runtime/vm/compiler/frontend/kernel_to_il.h
index fcb4245..b184503 100644
--- a/runtime/vm/compiler/frontend/kernel_to_il.h
+++ b/runtime/vm/compiler/frontend/kernel_to_il.h
@@ -35,16 +35,6 @@
 class TryCatchBlock;
 class TryFinallyBlock;
 
-struct YieldContinuation {
-  Instruction* entry;
-  intptr_t try_index;
-
-  YieldContinuation(Instruction* entry, intptr_t try_index)
-      : entry(entry), try_index(try_index) {}
-
-  YieldContinuation() : entry(NULL), try_index(kInvalidTryIndex) {}
-};
-
 enum class TypeChecksToBuild {
   kCheckAllTypeParameterBounds,
   kCheckNonCovariantTypeParameterBounds,
@@ -604,8 +594,6 @@
 
   ScopeBuildingResult* scopes_;
 
-  GrowableArray<YieldContinuation> yield_continuations_;
-
   LocalVariable* CurrentException() {
     return scopes_->exception_variables[catch_depth_ - 1];
   }
diff --git a/runtime/vm/compiler/frontend/scope_builder.cc b/runtime/vm/compiler/frontend/scope_builder.cc
index 3e7f2f8..7844ac4 100644
--- a/runtime/vm/compiler/frontend/scope_builder.cc
+++ b/runtime/vm/compiler/frontend/scope_builder.cc
@@ -206,17 +206,7 @@
 
       ParameterTypeCheckMode type_check_mode =
           kTypeCheckForNonDynamicallyInvokedMethod;
-      if (function.IsSyncGenClosure()) {
-        // Don't type check the parameter of sync-yielding since these calls are
-        // all synthetic and types should always match.
-        ASSERT_EQUAL(
-            function.NumParameters() - function.NumImplicitParameters(), 3);
-        ASSERT(
-            Class::Handle(
-                AbstractType::Handle(function.ParameterTypeAt(1)).type_class())
-                .ScrubbedName() == Symbols::_SyncIterator().ptr());
-        type_check_mode = kTypeCheckForStaticFunction;
-      } else if (function.is_static()) {
+      if (function.is_static()) {
         // In static functions we don't check anything.
         type_check_mode = kTypeCheckForStaticFunction;
       } else if (function.IsImplicitClosureFunction()) {
@@ -1325,17 +1315,7 @@
     variable->set_late_init_offset(initializer_offset);
   }
 
-  // Lift the special async vars out of the function body scope, into the
-  // outer function declaration scope.
-  // This way we can allocate them in the outermost context at fixed indices,
-  // allowing support for async stack traces implementation to find awaiters.
-  if (name.Equals(Symbols::AwaitJumpVar()) ||
-      name.Equals(Symbols::AsyncFuture()) || name.Equals(Symbols::is_sync()) ||
-      name.Equals(Symbols::Controller())) {
-    scope_->parent()->AddVariable(variable);
-  } else {
-    scope_->AddVariable(variable);
-  }
+  scope_->AddVariable(variable);
   result_->locals.Insert(helper_.data_program_offset_ + kernel_offset_no_tag,
                          variable);
 }
diff --git a/runtime/vm/compiler/recognized_methods_list.h b/runtime/vm/compiler/recognized_methods_list.h
index 726488f..9fab3a3 100644
--- a/runtime/vm/compiler/recognized_methods_list.h
+++ b/runtime/vm/compiler/recognized_methods_list.h
@@ -280,7 +280,6 @@
   V(::, _asExternalTypedDataDouble, FfiAsExternalTypedDataDouble, 0x40cdd9e1)  \
   V(::, _getNativeField, GetNativeField, 0xa0139b85)                           \
   V(::, reachabilityFence, ReachabilityFence, 0x730f2b7f)                      \
-  V(::, _asyncThenWrapperHelper, AsyncThenWrapperHelper, 0x0c17f838)           \
   V(_Utf8Decoder, _scan, Utf8DecoderScan, 0xf296c901)                          \
   V(_Future, timeout, FutureTimeout, 0xa7cb3294)                               \
   V(Future, wait, FutureWait, 0xb0b596bd)                                      \
diff --git a/runtime/vm/compiler/runtime_api.h b/runtime/vm/compiler/runtime_api.h
index fb828f0..0d77869 100644
--- a/runtime/vm/compiler/runtime_api.h
+++ b/runtime/vm/compiler/runtime_api.h
@@ -1212,7 +1212,6 @@
   static word return_async_not_future_stub_offset();
   static word return_async_star_stub_offset();
   static word return_async_stub_offset();
-  static word return_sync_star_stub_offset();
   static word stack_overflow_shared_without_fpu_regs_entry_point_offset();
   static word stack_overflow_shared_without_fpu_regs_stub_offset();
   static word stack_overflow_shared_with_fpu_regs_entry_point_offset();
@@ -1262,8 +1261,7 @@
   static word suspend_state_return_async_star_entry_point_offset();
 
   static word suspend_state_init_sync_star_entry_point_offset();
-  static word suspend_state_yield_sync_star_entry_point_offset();
-  static word suspend_state_return_sync_star_entry_point_offset();
+  static word suspend_state_suspend_sync_star_at_start_entry_point_offset();
 
   static word suspend_state_handle_exception_entry_point_offset();
 
@@ -1300,9 +1298,8 @@
   static word suspend_state_return_async_offset();
   static word suspend_state_return_async_not_future_offset();
   static word suspend_state_return_async_star_offset();
-  static word suspend_state_return_sync_star_offset();
+  static word suspend_state_suspend_sync_star_at_start_offset();
   static word suspend_state_yield_async_star_offset();
-  static word suspend_state_yield_sync_star_offset();
 };
 
 class Isolate : public AllStatic {
diff --git a/runtime/vm/compiler/runtime_offsets_extracted.h b/runtime/vm/compiler/runtime_offsets_extracted.h
index fe183da..fd7de86 100644
--- a/runtime/vm/compiler/runtime_offsets_extracted.h
+++ b/runtime/vm/compiler/runtime_offsets_extracted.h
@@ -230,27 +230,25 @@
 static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
     112;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_await_offset = 508;
+    ObjectStore_suspend_state_await_offset = 492;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_handle_exception_offset = 544;
+    ObjectStore_suspend_state_handle_exception_offset = 524;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_offset = 504;
+    ObjectStore_suspend_state_init_async_offset = 488;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_star_offset = 520;
+    ObjectStore_suspend_state_init_async_star_offset = 504;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_sync_star_offset = 532;
+    ObjectStore_suspend_state_init_sync_star_offset = 516;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_offset = 512;
+    ObjectStore_suspend_state_return_async_offset = 496;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_not_future_offset = 516;
+    ObjectStore_suspend_state_return_async_not_future_offset = 500;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_star_offset = 528;
+    ObjectStore_suspend_state_return_async_star_offset = 512;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_sync_star_offset = 540;
+    ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 520;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_async_star_offset = 524;
-static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_sync_star_offset = 536;
+    ObjectStore_suspend_state_yield_async_star_offset = 508;
 static constexpr dart::compiler::target::word OneByteString_data_offset = 12;
 static constexpr dart::compiler::target::word PointerBase_data_offset = 4;
 static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8;
@@ -282,115 +280,115 @@
 static constexpr dart::compiler::target::word
     SuspendState_then_callback_offset = 20;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 404;
+    Thread_AllocateArray_entry_point_offset = 400;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    836;
+    828;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    840;
+    832;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 296;
+    Thread_array_write_barrier_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 304;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_with_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 308;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 304;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_without_fpu_regs_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 312;
+    Thread_allocate_object_entry_point_offset = 308;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 316;
+    Thread_allocate_object_parameterized_entry_point_offset = 312;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_parameterized_stub_offset = 196;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 320;
+    Thread_allocate_object_slow_entry_point_offset = 316;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_slow_stub_offset = 200;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 876;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 868;
 static constexpr dart::compiler::target::word
     Thread_async_exception_handler_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 368;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 364;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 120;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 360;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 356;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 300;
+    Thread_call_to_runtime_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
     Thread_call_to_runtime_stub_offset = 140;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 904;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 896;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 880;
+    Thread_double_truncate_round_supported_offset = 872;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 908;
+    Thread_service_extension_stream_offset = 900;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    340;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 252;
+    336;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    344;
+    340;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    256;
+    252;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    384;
+    380;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 380;
+    Thread_double_negate_address_offset = 376;
 static constexpr dart::compiler::target::word Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 276;
+    Thread_enter_safepoint_stub_offset = 272;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    856;
+    848;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 280;
+    Thread_exit_safepoint_stub_offset = 276;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 284;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 288;
+    Thread_call_native_through_safepoint_stub_offset = 284;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 348;
+    Thread_call_native_through_safepoint_entry_point_offset = 344;
 static constexpr dart::compiler::target::word
     Thread_fix_allocation_stub_code_offset = 132;
 static constexpr dart::compiler::target::word
     Thread_fix_callers_target_code_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 396;
+    Thread_float_absolute_address_offset = 392;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 392;
+    Thread_float_negate_address_offset = 388;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    388;
+    384;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 400;
+    Thread_float_zerow_address_offset = 396;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    844;
+    836;
 static constexpr dart::compiler::target::word
     Thread_invoke_dart_code_stub_offset = 136;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    872;
+    864;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
-static constexpr dart::compiler::target::word Thread_isolate_group_offset = 912;
+static constexpr dart::compiler::target::word Thread_isolate_group_offset = 904;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     64;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 260;
+    Thread_lazy_deopt_from_return_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 264;
+    Thread_lazy_deopt_from_throw_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 272;
+    Thread_lazy_specialize_type_test_stub_offset = 268;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 332;
+    Thread_megamorphic_call_checked_entry_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 336;
+    Thread_switchable_call_miss_entry_offset = 332;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 236;
+    Thread_switchable_call_miss_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 364;
+    Thread_no_scope_native_wrapper_entry_point_offset = 360;
 static constexpr dart::compiler::target::word
     Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
@@ -418,57 +416,53 @@
     Thread_return_async_star_stub_offset = 220;
 static constexpr dart::compiler::target::word Thread_return_async_stub_offset =
     212;
-static constexpr dart::compiler::target::word
-    Thread_return_sync_star_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 372;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 848;
+    Thread_predefined_symbols_address_offset = 368;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 840;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 852;
+    Thread_saved_shadow_call_stack_offset = 844;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    860;
+    852;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 268;
+    Thread_slow_type_test_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 356;
+    Thread_slow_type_test_entry_point_offset = 352;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 28;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 328;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 324;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 232;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 228;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 324;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 228;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     76;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_await_entry_point_offset = 796;
+    Thread_suspend_state_await_entry_point_offset = 792;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_entry_point_offset = 792;
+    Thread_suspend_state_init_async_entry_point_offset = 788;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_entry_point_offset = 800;
+    Thread_suspend_state_return_async_entry_point_offset = 796;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_not_future_entry_point_offset = 804;
+    Thread_suspend_state_return_async_not_future_entry_point_offset = 800;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_star_entry_point_offset = 808;
+    Thread_suspend_state_init_async_star_entry_point_offset = 804;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_async_star_entry_point_offset = 812;
+    Thread_suspend_state_yield_async_star_entry_point_offset = 808;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_star_entry_point_offset = 816;
+    Thread_suspend_state_return_async_star_entry_point_offset = 812;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_sync_star_entry_point_offset = 820;
+    Thread_suspend_state_init_sync_star_entry_point_offset = 816;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_sync_star_entry_point_offset = 824;
+    Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 820;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_sync_star_entry_point_offset = 828;
-static constexpr dart::compiler::target::word
-    Thread_suspend_state_handle_exception_entry_point_offset = 832;
+    Thread_suspend_state_handle_exception_entry_point_offset = 824;
 static constexpr dart::compiler::target::word
     Thread_top_exit_frame_info_offset = 72;
 static constexpr dart::compiler::target::word Thread_top_offset = 48;
@@ -479,17 +473,17 @@
     Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 292;
+    Thread_write_barrier_entry_point_offset = 288;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     32;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 36;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 864;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 856;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 868;
-static constexpr dart::compiler::target::word Thread_random_offset = 888;
+    Thread_callback_stack_return_offset = 860;
+static constexpr dart::compiler::target::word Thread_random_offset = 880;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 352;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 896;
+    Thread_jump_to_frame_entry_point_offset = 348;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 888;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -582,7 +576,7 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        760, 764, 768, 772, 776, -1, 780, -1, 784, 788, -1, -1, -1, -1, -1, -1};
+        756, 760, 764, 768, 772, -1, 776, -1, 780, 784, -1, -1, -1, -1, -1, -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 8;
 static constexpr dart::compiler::target::word Array_header_size = 12;
@@ -896,27 +890,25 @@
 static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_await_offset = 1016;
+    ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_handle_exception_offset = 1088;
+    ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_offset = 1008;
+    ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_star_offset = 1040;
+    ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_offset = 1024;
+    ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_star_offset = 1056;
+    ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
 static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
 static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -949,117 +941,117 @@
 static constexpr dart::compiler::target::word
     SuspendState_then_callback_offset = 40;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 784;
+    Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1672;
+    1656;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1680;
+    1664;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 568;
+    Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 600;
+    Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 608;
+    Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 616;
+    Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1752;
+    1736;
 static constexpr dart::compiler::target::word
     Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 576;
+    Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     Thread_call_to_runtime_stub_offset = 256;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1792;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1776;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1760;
+    Thread_double_truncate_round_supported_offset = 1744;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1800;
+    Thread_service_extension_stream_offset = 1784;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    656;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
+    648;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    664;
+    656;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    488;
+    480;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    744;
+    736;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 736;
+    Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 528;
+    Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1712;
+    1696;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 536;
+    Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 552;
+    Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 672;
+    Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 768;
+    Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 760;
+    Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    752;
+    744;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 776;
+    Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1688;
+    1672;
 static constexpr dart::compiler::target::word
     Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1744;
+    1728;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1808;
+    1792;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 496;
+    Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 504;
+    Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 520;
+    Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 640;
+    Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 648;
+    Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 448;
+    Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -1087,57 +1079,53 @@
     Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word Thread_return_async_stub_offset =
     400;
-static constexpr dart::compiler::target::word
-    Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 720;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1696;
+    Thread_predefined_symbols_address_offset = 712;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1680;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1704;
+    Thread_saved_shadow_call_stack_offset = 1688;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1720;
+    1704;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 512;
+    Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 688;
+    Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_await_entry_point_offset = 1592;
+    Thread_suspend_state_await_entry_point_offset = 1584;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_entry_point_offset = 1584;
+    Thread_suspend_state_init_async_entry_point_offset = 1576;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_entry_point_offset = 1600;
+    Thread_suspend_state_return_async_entry_point_offset = 1592;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_not_future_entry_point_offset = 1608;
+    Thread_suspend_state_return_async_not_future_entry_point_offset = 1600;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_star_entry_point_offset = 1616;
+    Thread_suspend_state_init_async_star_entry_point_offset = 1608;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_async_star_entry_point_offset = 1624;
+    Thread_suspend_state_yield_async_star_entry_point_offset = 1616;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_star_entry_point_offset = 1632;
+    Thread_suspend_state_return_async_star_entry_point_offset = 1624;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_sync_star_entry_point_offset = 1640;
+    Thread_suspend_state_init_sync_star_entry_point_offset = 1632;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_sync_star_entry_point_offset = 1648;
+    Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1640;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_sync_star_entry_point_offset = 1656;
-static constexpr dart::compiler::target::word
-    Thread_suspend_state_handle_exception_entry_point_offset = 1664;
+    Thread_suspend_state_handle_exception_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
     Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -1148,18 +1136,18 @@
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 560;
+    Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1728;
+    1712;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1736;
-static constexpr dart::compiler::target::word Thread_random_offset = 1768;
+    Thread_callback_stack_return_offset = 1720;
+static constexpr dart::compiler::target::word Thread_random_offset = 1752;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 680;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1776;
+    Thread_jump_to_frame_entry_point_offset = 672;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1760;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -1254,8 +1242,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1496, 1504, 1512, 1520, -1,   -1,   1528, 1536,
-        1544, 1552, 1560, -1,   1568, 1576, -1,   -1};
+        1488, 1496, 1504, 1512, -1,   -1,   1520, 1528,
+        1536, 1544, 1552, -1,   1560, 1568, -1,   -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 24;
@@ -1567,27 +1555,25 @@
 static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
     112;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_await_offset = 508;
+    ObjectStore_suspend_state_await_offset = 492;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_handle_exception_offset = 544;
+    ObjectStore_suspend_state_handle_exception_offset = 524;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_offset = 504;
+    ObjectStore_suspend_state_init_async_offset = 488;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_star_offset = 520;
+    ObjectStore_suspend_state_init_async_star_offset = 504;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_sync_star_offset = 532;
+    ObjectStore_suspend_state_init_sync_star_offset = 516;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_offset = 512;
+    ObjectStore_suspend_state_return_async_offset = 496;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_not_future_offset = 516;
+    ObjectStore_suspend_state_return_async_not_future_offset = 500;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_star_offset = 528;
+    ObjectStore_suspend_state_return_async_star_offset = 512;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_sync_star_offset = 540;
+    ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 520;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_async_star_offset = 524;
-static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_sync_star_offset = 536;
+    ObjectStore_suspend_state_yield_async_star_offset = 508;
 static constexpr dart::compiler::target::word OneByteString_data_offset = 12;
 static constexpr dart::compiler::target::word PointerBase_data_offset = 4;
 static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8;
@@ -1619,115 +1605,115 @@
 static constexpr dart::compiler::target::word
     SuspendState_then_callback_offset = 20;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 404;
+    Thread_AllocateArray_entry_point_offset = 400;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    804;
+    796;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    808;
+    800;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 296;
+    Thread_array_write_barrier_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 304;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_with_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 308;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 304;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_without_fpu_regs_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 312;
+    Thread_allocate_object_entry_point_offset = 308;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 316;
+    Thread_allocate_object_parameterized_entry_point_offset = 312;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_parameterized_stub_offset = 196;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 320;
+    Thread_allocate_object_slow_entry_point_offset = 316;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_slow_stub_offset = 200;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 844;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 836;
 static constexpr dart::compiler::target::word
     Thread_async_exception_handler_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 368;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 364;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 120;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 360;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 356;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 300;
+    Thread_call_to_runtime_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
     Thread_call_to_runtime_stub_offset = 140;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 872;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 864;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 848;
+    Thread_double_truncate_round_supported_offset = 840;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 876;
+    Thread_service_extension_stream_offset = 868;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    340;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 252;
+    336;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    344;
+    340;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    256;
+    252;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    384;
+    380;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 380;
+    Thread_double_negate_address_offset = 376;
 static constexpr dart::compiler::target::word Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 276;
+    Thread_enter_safepoint_stub_offset = 272;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    824;
+    816;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 280;
+    Thread_exit_safepoint_stub_offset = 276;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 284;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 288;
+    Thread_call_native_through_safepoint_stub_offset = 284;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 348;
+    Thread_call_native_through_safepoint_entry_point_offset = 344;
 static constexpr dart::compiler::target::word
     Thread_fix_allocation_stub_code_offset = 132;
 static constexpr dart::compiler::target::word
     Thread_fix_callers_target_code_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 396;
+    Thread_float_absolute_address_offset = 392;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 392;
+    Thread_float_negate_address_offset = 388;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    388;
+    384;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 400;
+    Thread_float_zerow_address_offset = 396;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    812;
+    804;
 static constexpr dart::compiler::target::word
     Thread_invoke_dart_code_stub_offset = 136;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    840;
+    832;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
-static constexpr dart::compiler::target::word Thread_isolate_group_offset = 880;
+static constexpr dart::compiler::target::word Thread_isolate_group_offset = 872;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     64;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 260;
+    Thread_lazy_deopt_from_return_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 264;
+    Thread_lazy_deopt_from_throw_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 272;
+    Thread_lazy_specialize_type_test_stub_offset = 268;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 332;
+    Thread_megamorphic_call_checked_entry_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 336;
+    Thread_switchable_call_miss_entry_offset = 332;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 236;
+    Thread_switchable_call_miss_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 364;
+    Thread_no_scope_native_wrapper_entry_point_offset = 360;
 static constexpr dart::compiler::target::word
     Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
@@ -1755,57 +1741,53 @@
     Thread_return_async_star_stub_offset = 220;
 static constexpr dart::compiler::target::word Thread_return_async_stub_offset =
     212;
-static constexpr dart::compiler::target::word
-    Thread_return_sync_star_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 372;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 816;
+    Thread_predefined_symbols_address_offset = 368;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 808;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 820;
+    Thread_saved_shadow_call_stack_offset = 812;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    828;
+    820;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 268;
+    Thread_slow_type_test_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 356;
+    Thread_slow_type_test_entry_point_offset = 352;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 28;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 328;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 324;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 232;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 228;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 324;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 228;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     76;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_await_entry_point_offset = 764;
+    Thread_suspend_state_await_entry_point_offset = 760;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_entry_point_offset = 760;
+    Thread_suspend_state_init_async_entry_point_offset = 756;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_entry_point_offset = 768;
+    Thread_suspend_state_return_async_entry_point_offset = 764;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_not_future_entry_point_offset = 772;
+    Thread_suspend_state_return_async_not_future_entry_point_offset = 768;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_star_entry_point_offset = 776;
+    Thread_suspend_state_init_async_star_entry_point_offset = 772;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_async_star_entry_point_offset = 780;
+    Thread_suspend_state_yield_async_star_entry_point_offset = 776;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_star_entry_point_offset = 784;
+    Thread_suspend_state_return_async_star_entry_point_offset = 780;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_sync_star_entry_point_offset = 788;
+    Thread_suspend_state_init_sync_star_entry_point_offset = 784;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_sync_star_entry_point_offset = 792;
+    Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 788;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_sync_star_entry_point_offset = 796;
-static constexpr dart::compiler::target::word
-    Thread_suspend_state_handle_exception_entry_point_offset = 800;
+    Thread_suspend_state_handle_exception_entry_point_offset = 792;
 static constexpr dart::compiler::target::word
     Thread_top_exit_frame_info_offset = 72;
 static constexpr dart::compiler::target::word Thread_top_offset = 48;
@@ -1816,17 +1798,17 @@
     Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 292;
+    Thread_write_barrier_entry_point_offset = 288;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     32;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 36;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 832;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 824;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 836;
-static constexpr dart::compiler::target::word Thread_random_offset = 856;
+    Thread_callback_stack_return_offset = 828;
+static constexpr dart::compiler::target::word Thread_random_offset = 848;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 352;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 864;
+    Thread_jump_to_frame_entry_point_offset = 348;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 856;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -2230,27 +2212,25 @@
 static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_await_offset = 1016;
+    ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_handle_exception_offset = 1088;
+    ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_offset = 1008;
+    ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_star_offset = 1040;
+    ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_offset = 1024;
+    ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_star_offset = 1056;
+    ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
 static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
 static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -2283,117 +2263,117 @@
 static constexpr dart::compiler::target::word
     SuspendState_then_callback_offset = 40;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 784;
+    Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1736;
+    1720;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1744;
+    1728;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 568;
+    Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 600;
+    Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 608;
+    Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 616;
+    Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1816;
+    1800;
 static constexpr dart::compiler::target::word
     Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 576;
+    Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     Thread_call_to_runtime_stub_offset = 256;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1856;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1840;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1824;
+    Thread_double_truncate_round_supported_offset = 1808;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1864;
+    Thread_service_extension_stream_offset = 1848;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    656;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
+    648;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    664;
+    656;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    488;
+    480;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    744;
+    736;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 736;
+    Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 528;
+    Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1776;
+    1760;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 536;
+    Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 552;
+    Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 672;
+    Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 768;
+    Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 760;
+    Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    752;
+    744;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 776;
+    Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1752;
+    1736;
 static constexpr dart::compiler::target::word
     Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1808;
+    1792;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1872;
+    1856;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 496;
+    Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 504;
+    Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 520;
+    Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 640;
+    Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 648;
+    Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 448;
+    Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -2421,57 +2401,53 @@
     Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word Thread_return_async_stub_offset =
     400;
-static constexpr dart::compiler::target::word
-    Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 720;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1760;
+    Thread_predefined_symbols_address_offset = 712;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1744;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1768;
+    Thread_saved_shadow_call_stack_offset = 1752;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1784;
+    1768;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 512;
+    Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 688;
+    Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_await_entry_point_offset = 1656;
+    Thread_suspend_state_await_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_entry_point_offset = 1648;
+    Thread_suspend_state_init_async_entry_point_offset = 1640;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_entry_point_offset = 1664;
+    Thread_suspend_state_return_async_entry_point_offset = 1656;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_not_future_entry_point_offset = 1672;
+    Thread_suspend_state_return_async_not_future_entry_point_offset = 1664;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_star_entry_point_offset = 1680;
+    Thread_suspend_state_init_async_star_entry_point_offset = 1672;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_async_star_entry_point_offset = 1688;
+    Thread_suspend_state_yield_async_star_entry_point_offset = 1680;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_star_entry_point_offset = 1696;
+    Thread_suspend_state_return_async_star_entry_point_offset = 1688;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_sync_star_entry_point_offset = 1704;
+    Thread_suspend_state_init_sync_star_entry_point_offset = 1696;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_sync_star_entry_point_offset = 1712;
+    Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1704;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_sync_star_entry_point_offset = 1720;
-static constexpr dart::compiler::target::word
-    Thread_suspend_state_handle_exception_entry_point_offset = 1728;
+    Thread_suspend_state_handle_exception_entry_point_offset = 1712;
 static constexpr dart::compiler::target::word
     Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -2482,18 +2458,18 @@
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 560;
+    Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1792;
+    1776;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1800;
-static constexpr dart::compiler::target::word Thread_random_offset = 1832;
+    Thread_callback_stack_return_offset = 1784;
+static constexpr dart::compiler::target::word Thread_random_offset = 1816;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 680;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1840;
+    Thread_jump_to_frame_entry_point_offset = 672;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1824;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -2588,9 +2564,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1496, 1504, 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568, 1576,
-        1584, 1592, 1600, 1608, -1,   -1,   -1,   -1,   1616, 1624, -1,
-        -1,   1632, 1640, 1648, -1,   -1,   -1,   -1,   -1,   -1};
+        1488, 1496, 1504, 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568,
+        1576, 1584, 1592, 1600, -1,   -1,   -1,   -1,   1608, 1616, -1,
+        -1,   1624, 1632, 1640, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 24;
@@ -2902,27 +2878,25 @@
 static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_await_offset = 1016;
+    ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_handle_exception_offset = 1088;
+    ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_offset = 1008;
+    ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_star_offset = 1040;
+    ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_offset = 1024;
+    ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_star_offset = 1056;
+    ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
 static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
 static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -2955,117 +2929,117 @@
 static constexpr dart::compiler::target::word
     SuspendState_then_callback_offset = 36;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 784;
+    Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1672;
+    1656;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1680;
+    1664;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 568;
+    Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 600;
+    Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 608;
+    Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 616;
+    Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1752;
+    1736;
 static constexpr dart::compiler::target::word
     Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 576;
+    Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     Thread_call_to_runtime_stub_offset = 256;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1792;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1776;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1760;
+    Thread_double_truncate_round_supported_offset = 1744;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1800;
+    Thread_service_extension_stream_offset = 1784;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    656;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
+    648;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    664;
+    656;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    488;
+    480;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    744;
+    736;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 736;
+    Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 528;
+    Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1712;
+    1696;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 536;
+    Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 552;
+    Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 672;
+    Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 768;
+    Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 760;
+    Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    752;
+    744;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 776;
+    Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1688;
+    1672;
 static constexpr dart::compiler::target::word
     Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1744;
+    1728;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1808;
+    1792;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 496;
+    Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 504;
+    Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 520;
+    Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 640;
+    Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 648;
+    Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 448;
+    Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -3093,57 +3067,53 @@
     Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word Thread_return_async_stub_offset =
     400;
-static constexpr dart::compiler::target::word
-    Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 720;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1696;
+    Thread_predefined_symbols_address_offset = 712;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1680;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1704;
+    Thread_saved_shadow_call_stack_offset = 1688;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1720;
+    1704;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 512;
+    Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 688;
+    Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_await_entry_point_offset = 1592;
+    Thread_suspend_state_await_entry_point_offset = 1584;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_entry_point_offset = 1584;
+    Thread_suspend_state_init_async_entry_point_offset = 1576;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_entry_point_offset = 1600;
+    Thread_suspend_state_return_async_entry_point_offset = 1592;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_not_future_entry_point_offset = 1608;
+    Thread_suspend_state_return_async_not_future_entry_point_offset = 1600;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_star_entry_point_offset = 1616;
+    Thread_suspend_state_init_async_star_entry_point_offset = 1608;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_async_star_entry_point_offset = 1624;
+    Thread_suspend_state_yield_async_star_entry_point_offset = 1616;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_star_entry_point_offset = 1632;
+    Thread_suspend_state_return_async_star_entry_point_offset = 1624;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_sync_star_entry_point_offset = 1640;
+    Thread_suspend_state_init_sync_star_entry_point_offset = 1632;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_sync_star_entry_point_offset = 1648;
+    Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1640;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_sync_star_entry_point_offset = 1656;
-static constexpr dart::compiler::target::word
-    Thread_suspend_state_handle_exception_entry_point_offset = 1664;
+    Thread_suspend_state_handle_exception_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
     Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -3154,18 +3124,18 @@
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 560;
+    Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1728;
+    1712;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1736;
-static constexpr dart::compiler::target::word Thread_random_offset = 1768;
+    Thread_callback_stack_return_offset = 1720;
+static constexpr dart::compiler::target::word Thread_random_offset = 1752;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 680;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1776;
+    Thread_jump_to_frame_entry_point_offset = 672;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1760;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -3260,8 +3230,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1496, 1504, 1512, 1520, -1,   -1,   1528, 1536,
-        1544, 1552, 1560, -1,   1568, 1576, -1,   -1};
+        1488, 1496, 1504, 1512, -1,   -1,   1520, 1528,
+        1536, 1544, 1552, -1,   1560, 1568, -1,   -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 16;
@@ -3573,27 +3543,25 @@
 static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_await_offset = 1016;
+    ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_handle_exception_offset = 1088;
+    ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_offset = 1008;
+    ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_star_offset = 1040;
+    ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_offset = 1024;
+    ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_star_offset = 1056;
+    ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
 static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
 static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -3626,117 +3594,117 @@
 static constexpr dart::compiler::target::word
     SuspendState_then_callback_offset = 36;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 784;
+    Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1736;
+    1720;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1744;
+    1728;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 568;
+    Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 600;
+    Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 608;
+    Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 616;
+    Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1816;
+    1800;
 static constexpr dart::compiler::target::word
     Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 576;
+    Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     Thread_call_to_runtime_stub_offset = 256;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1856;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1840;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1824;
+    Thread_double_truncate_round_supported_offset = 1808;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1864;
+    Thread_service_extension_stream_offset = 1848;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    656;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
+    648;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    664;
+    656;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    488;
+    480;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    744;
+    736;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 736;
+    Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 528;
+    Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1776;
+    1760;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 536;
+    Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 552;
+    Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 672;
+    Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 768;
+    Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 760;
+    Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    752;
+    744;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 776;
+    Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1752;
+    1736;
 static constexpr dart::compiler::target::word
     Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1808;
+    1792;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1872;
+    1856;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 496;
+    Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 504;
+    Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 520;
+    Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 640;
+    Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 648;
+    Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 448;
+    Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -3764,57 +3732,53 @@
     Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word Thread_return_async_stub_offset =
     400;
-static constexpr dart::compiler::target::word
-    Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 720;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1760;
+    Thread_predefined_symbols_address_offset = 712;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1744;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1768;
+    Thread_saved_shadow_call_stack_offset = 1752;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1784;
+    1768;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 512;
+    Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 688;
+    Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_await_entry_point_offset = 1656;
+    Thread_suspend_state_await_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_entry_point_offset = 1648;
+    Thread_suspend_state_init_async_entry_point_offset = 1640;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_entry_point_offset = 1664;
+    Thread_suspend_state_return_async_entry_point_offset = 1656;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_not_future_entry_point_offset = 1672;
+    Thread_suspend_state_return_async_not_future_entry_point_offset = 1664;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_star_entry_point_offset = 1680;
+    Thread_suspend_state_init_async_star_entry_point_offset = 1672;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_async_star_entry_point_offset = 1688;
+    Thread_suspend_state_yield_async_star_entry_point_offset = 1680;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_star_entry_point_offset = 1696;
+    Thread_suspend_state_return_async_star_entry_point_offset = 1688;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_sync_star_entry_point_offset = 1704;
+    Thread_suspend_state_init_sync_star_entry_point_offset = 1696;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_sync_star_entry_point_offset = 1712;
+    Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1704;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_sync_star_entry_point_offset = 1720;
-static constexpr dart::compiler::target::word
-    Thread_suspend_state_handle_exception_entry_point_offset = 1728;
+    Thread_suspend_state_handle_exception_entry_point_offset = 1712;
 static constexpr dart::compiler::target::word
     Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -3825,18 +3789,18 @@
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 560;
+    Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1792;
+    1776;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1800;
-static constexpr dart::compiler::target::word Thread_random_offset = 1832;
+    Thread_callback_stack_return_offset = 1784;
+static constexpr dart::compiler::target::word Thread_random_offset = 1816;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 680;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1840;
+    Thread_jump_to_frame_entry_point_offset = 672;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1824;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -3931,9 +3895,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1496, 1504, 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568, 1576,
-        1584, 1592, 1600, 1608, -1,   -1,   -1,   -1,   1616, 1624, -1,
-        -1,   1632, 1640, 1648, -1,   -1,   -1,   -1,   -1,   -1};
+        1488, 1496, 1504, 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568,
+        1576, 1584, 1592, 1600, -1,   -1,   -1,   -1,   1608, 1616, -1,
+        -1,   1624, 1632, 1640, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 16;
@@ -4245,27 +4209,25 @@
 static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
     112;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_await_offset = 508;
+    ObjectStore_suspend_state_await_offset = 492;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_handle_exception_offset = 544;
+    ObjectStore_suspend_state_handle_exception_offset = 524;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_offset = 504;
+    ObjectStore_suspend_state_init_async_offset = 488;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_star_offset = 520;
+    ObjectStore_suspend_state_init_async_star_offset = 504;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_sync_star_offset = 532;
+    ObjectStore_suspend_state_init_sync_star_offset = 516;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_offset = 512;
+    ObjectStore_suspend_state_return_async_offset = 496;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_not_future_offset = 516;
+    ObjectStore_suspend_state_return_async_not_future_offset = 500;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_star_offset = 528;
+    ObjectStore_suspend_state_return_async_star_offset = 512;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_sync_star_offset = 540;
+    ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 520;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_async_star_offset = 524;
-static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_sync_star_offset = 536;
+    ObjectStore_suspend_state_yield_async_star_offset = 508;
 static constexpr dart::compiler::target::word OneByteString_data_offset = 12;
 static constexpr dart::compiler::target::word PointerBase_data_offset = 4;
 static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8;
@@ -4297,115 +4259,115 @@
 static constexpr dart::compiler::target::word
     SuspendState_then_callback_offset = 20;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 404;
+    Thread_AllocateArray_entry_point_offset = 400;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    876;
+    868;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    880;
+    872;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 296;
+    Thread_array_write_barrier_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 304;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_with_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 308;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 304;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_without_fpu_regs_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 312;
+    Thread_allocate_object_entry_point_offset = 308;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 316;
+    Thread_allocate_object_parameterized_entry_point_offset = 312;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_parameterized_stub_offset = 196;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 320;
+    Thread_allocate_object_slow_entry_point_offset = 316;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_slow_stub_offset = 200;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 916;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 908;
 static constexpr dart::compiler::target::word
     Thread_async_exception_handler_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 368;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 364;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 120;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 360;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 356;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 300;
+    Thread_call_to_runtime_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
     Thread_call_to_runtime_stub_offset = 140;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 944;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 936;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 920;
+    Thread_double_truncate_round_supported_offset = 912;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 948;
+    Thread_service_extension_stream_offset = 940;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    340;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 252;
+    336;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    344;
+    340;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    256;
+    252;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    384;
+    380;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 380;
+    Thread_double_negate_address_offset = 376;
 static constexpr dart::compiler::target::word Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 276;
+    Thread_enter_safepoint_stub_offset = 272;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    896;
+    888;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 280;
+    Thread_exit_safepoint_stub_offset = 276;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 284;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 288;
+    Thread_call_native_through_safepoint_stub_offset = 284;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 348;
+    Thread_call_native_through_safepoint_entry_point_offset = 344;
 static constexpr dart::compiler::target::word
     Thread_fix_allocation_stub_code_offset = 132;
 static constexpr dart::compiler::target::word
     Thread_fix_callers_target_code_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 396;
+    Thread_float_absolute_address_offset = 392;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 392;
+    Thread_float_negate_address_offset = 388;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    388;
+    384;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 400;
+    Thread_float_zerow_address_offset = 396;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    884;
+    876;
 static constexpr dart::compiler::target::word
     Thread_invoke_dart_code_stub_offset = 136;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    912;
+    904;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
-static constexpr dart::compiler::target::word Thread_isolate_group_offset = 952;
+static constexpr dart::compiler::target::word Thread_isolate_group_offset = 944;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     64;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 260;
+    Thread_lazy_deopt_from_return_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 264;
+    Thread_lazy_deopt_from_throw_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 272;
+    Thread_lazy_specialize_type_test_stub_offset = 268;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 332;
+    Thread_megamorphic_call_checked_entry_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 336;
+    Thread_switchable_call_miss_entry_offset = 332;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 236;
+    Thread_switchable_call_miss_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 364;
+    Thread_no_scope_native_wrapper_entry_point_offset = 360;
 static constexpr dart::compiler::target::word
     Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
@@ -4433,57 +4395,53 @@
     Thread_return_async_star_stub_offset = 220;
 static constexpr dart::compiler::target::word Thread_return_async_stub_offset =
     212;
-static constexpr dart::compiler::target::word
-    Thread_return_sync_star_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 372;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 888;
+    Thread_predefined_symbols_address_offset = 368;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 880;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 892;
+    Thread_saved_shadow_call_stack_offset = 884;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    900;
+    892;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 268;
+    Thread_slow_type_test_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 356;
+    Thread_slow_type_test_entry_point_offset = 352;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 28;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 328;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 324;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 232;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 228;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 324;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 228;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     76;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_await_entry_point_offset = 836;
+    Thread_suspend_state_await_entry_point_offset = 832;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_entry_point_offset = 832;
+    Thread_suspend_state_init_async_entry_point_offset = 828;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_entry_point_offset = 840;
+    Thread_suspend_state_return_async_entry_point_offset = 836;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_not_future_entry_point_offset = 844;
+    Thread_suspend_state_return_async_not_future_entry_point_offset = 840;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_star_entry_point_offset = 848;
+    Thread_suspend_state_init_async_star_entry_point_offset = 844;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_async_star_entry_point_offset = 852;
+    Thread_suspend_state_yield_async_star_entry_point_offset = 848;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_star_entry_point_offset = 856;
+    Thread_suspend_state_return_async_star_entry_point_offset = 852;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_sync_star_entry_point_offset = 860;
+    Thread_suspend_state_init_sync_star_entry_point_offset = 856;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_sync_star_entry_point_offset = 864;
+    Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 860;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_sync_star_entry_point_offset = 868;
-static constexpr dart::compiler::target::word
-    Thread_suspend_state_handle_exception_entry_point_offset = 872;
+    Thread_suspend_state_handle_exception_entry_point_offset = 864;
 static constexpr dart::compiler::target::word
     Thread_top_exit_frame_info_offset = 72;
 static constexpr dart::compiler::target::word Thread_top_offset = 48;
@@ -4494,17 +4452,17 @@
     Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 292;
+    Thread_write_barrier_entry_point_offset = 288;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     32;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 36;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 904;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 896;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 908;
-static constexpr dart::compiler::target::word Thread_random_offset = 928;
+    Thread_callback_stack_return_offset = 900;
+static constexpr dart::compiler::target::word Thread_random_offset = 920;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 352;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 936;
+    Thread_jump_to_frame_entry_point_offset = 348;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 928;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -4597,9 +4555,9 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        -1,  -1,  -1, -1, -1, 760, 764, 768, -1,  -1,  772,
-        776, 780, -1, -1, -1, 784, 788, 792, 796, 800, 804,
-        808, 812, -1, -1, -1, -1,  816, 820, 824, 828};
+        -1,  -1,  -1, -1, -1, 756, 760, 764, -1,  -1,  768,
+        772, 776, -1, -1, -1, 780, 784, 788, 792, 796, 800,
+        804, 808, -1, -1, -1, -1,  812, 816, 820, 824};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 8;
 static constexpr dart::compiler::target::word Array_header_size = 12;
@@ -4913,27 +4871,25 @@
 static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_await_offset = 1016;
+    ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_handle_exception_offset = 1088;
+    ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_offset = 1008;
+    ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_star_offset = 1040;
+    ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_offset = 1024;
+    ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_star_offset = 1056;
+    ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
 static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
 static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -4966,117 +4922,117 @@
 static constexpr dart::compiler::target::word
     SuspendState_then_callback_offset = 40;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 784;
+    Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1728;
+    1712;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1736;
+    1720;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 568;
+    Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 600;
+    Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 608;
+    Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 616;
+    Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1808;
+    1792;
 static constexpr dart::compiler::target::word
     Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 576;
+    Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     Thread_call_to_runtime_stub_offset = 256;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1848;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1832;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1816;
+    Thread_double_truncate_round_supported_offset = 1800;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1856;
+    Thread_service_extension_stream_offset = 1840;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    656;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
+    648;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    664;
+    656;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    488;
+    480;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    744;
+    736;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 736;
+    Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 528;
+    Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1768;
+    1752;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 536;
+    Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 552;
+    Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 672;
+    Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 768;
+    Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 760;
+    Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    752;
+    744;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 776;
+    Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1744;
+    1728;
 static constexpr dart::compiler::target::word
     Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1800;
+    1784;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1864;
+    1848;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 496;
+    Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 504;
+    Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 520;
+    Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 640;
+    Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 648;
+    Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 448;
+    Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -5104,57 +5060,53 @@
     Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word Thread_return_async_stub_offset =
     400;
-static constexpr dart::compiler::target::word
-    Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 720;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1752;
+    Thread_predefined_symbols_address_offset = 712;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1736;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1760;
+    Thread_saved_shadow_call_stack_offset = 1744;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1776;
+    1760;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 512;
+    Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 688;
+    Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_await_entry_point_offset = 1648;
+    Thread_suspend_state_await_entry_point_offset = 1640;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_entry_point_offset = 1640;
+    Thread_suspend_state_init_async_entry_point_offset = 1632;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_entry_point_offset = 1656;
+    Thread_suspend_state_return_async_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_not_future_entry_point_offset = 1664;
+    Thread_suspend_state_return_async_not_future_entry_point_offset = 1656;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_star_entry_point_offset = 1672;
+    Thread_suspend_state_init_async_star_entry_point_offset = 1664;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_async_star_entry_point_offset = 1680;
+    Thread_suspend_state_yield_async_star_entry_point_offset = 1672;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_star_entry_point_offset = 1688;
+    Thread_suspend_state_return_async_star_entry_point_offset = 1680;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_sync_star_entry_point_offset = 1696;
+    Thread_suspend_state_init_sync_star_entry_point_offset = 1688;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_sync_star_entry_point_offset = 1704;
+    Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1696;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_sync_star_entry_point_offset = 1712;
-static constexpr dart::compiler::target::word
-    Thread_suspend_state_handle_exception_entry_point_offset = 1720;
+    Thread_suspend_state_handle_exception_entry_point_offset = 1704;
 static constexpr dart::compiler::target::word
     Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -5165,18 +5117,18 @@
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 560;
+    Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1784;
+    1768;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1792;
-static constexpr dart::compiler::target::word Thread_random_offset = 1824;
+    Thread_callback_stack_return_offset = 1776;
+static constexpr dart::compiler::target::word Thread_random_offset = 1808;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 680;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1832;
+    Thread_jump_to_frame_entry_point_offset = 672;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1816;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -5271,9 +5223,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        -1,   -1,   -1, -1, -1, 1496, 1504, 1512, -1,   -1,   1520,
-        1528, 1536, -1, -1, -1, 1544, 1552, 1560, 1568, 1576, 1584,
-        1592, 1600, -1, -1, -1, -1,   1608, 1616, 1624, 1632};
+        -1,   -1,   -1, -1, -1, 1488, 1496, 1504, -1,   -1,   1512,
+        1520, 1528, -1, -1, -1, 1536, 1544, 1552, 1560, 1568, 1576,
+        1584, 1592, -1, -1, -1, -1,   1600, 1608, 1616, 1624};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 24;
@@ -5579,27 +5531,25 @@
 static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
     112;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_await_offset = 508;
+    ObjectStore_suspend_state_await_offset = 492;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_handle_exception_offset = 544;
+    ObjectStore_suspend_state_handle_exception_offset = 524;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_offset = 504;
+    ObjectStore_suspend_state_init_async_offset = 488;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_star_offset = 520;
+    ObjectStore_suspend_state_init_async_star_offset = 504;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_sync_star_offset = 532;
+    ObjectStore_suspend_state_init_sync_star_offset = 516;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_offset = 512;
+    ObjectStore_suspend_state_return_async_offset = 496;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_not_future_offset = 516;
+    ObjectStore_suspend_state_return_async_not_future_offset = 500;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_star_offset = 528;
+    ObjectStore_suspend_state_return_async_star_offset = 512;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_sync_star_offset = 540;
+    ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 520;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_async_star_offset = 524;
-static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_sync_star_offset = 536;
+    ObjectStore_suspend_state_yield_async_star_offset = 508;
 static constexpr dart::compiler::target::word OneByteString_data_offset = 12;
 static constexpr dart::compiler::target::word PointerBase_data_offset = 4;
 static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8;
@@ -5631,115 +5581,115 @@
 static constexpr dart::compiler::target::word
     SuspendState_then_callback_offset = 20;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 404;
+    Thread_AllocateArray_entry_point_offset = 400;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    836;
+    828;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    840;
+    832;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 296;
+    Thread_array_write_barrier_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 304;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_with_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 308;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 304;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_without_fpu_regs_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 312;
+    Thread_allocate_object_entry_point_offset = 308;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 316;
+    Thread_allocate_object_parameterized_entry_point_offset = 312;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_parameterized_stub_offset = 196;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 320;
+    Thread_allocate_object_slow_entry_point_offset = 316;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_slow_stub_offset = 200;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 876;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 868;
 static constexpr dart::compiler::target::word
     Thread_async_exception_handler_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 368;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 364;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 120;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 360;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 356;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 300;
+    Thread_call_to_runtime_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
     Thread_call_to_runtime_stub_offset = 140;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 904;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 896;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 880;
+    Thread_double_truncate_round_supported_offset = 872;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 908;
+    Thread_service_extension_stream_offset = 900;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    340;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 252;
+    336;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    344;
+    340;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    256;
+    252;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    384;
+    380;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 380;
+    Thread_double_negate_address_offset = 376;
 static constexpr dart::compiler::target::word Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 276;
+    Thread_enter_safepoint_stub_offset = 272;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    856;
+    848;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 280;
+    Thread_exit_safepoint_stub_offset = 276;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 284;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 288;
+    Thread_call_native_through_safepoint_stub_offset = 284;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 348;
+    Thread_call_native_through_safepoint_entry_point_offset = 344;
 static constexpr dart::compiler::target::word
     Thread_fix_allocation_stub_code_offset = 132;
 static constexpr dart::compiler::target::word
     Thread_fix_callers_target_code_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 396;
+    Thread_float_absolute_address_offset = 392;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 392;
+    Thread_float_negate_address_offset = 388;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    388;
+    384;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 400;
+    Thread_float_zerow_address_offset = 396;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    844;
+    836;
 static constexpr dart::compiler::target::word
     Thread_invoke_dart_code_stub_offset = 136;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    872;
+    864;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
-static constexpr dart::compiler::target::word Thread_isolate_group_offset = 912;
+static constexpr dart::compiler::target::word Thread_isolate_group_offset = 904;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     64;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 260;
+    Thread_lazy_deopt_from_return_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 264;
+    Thread_lazy_deopt_from_throw_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 272;
+    Thread_lazy_specialize_type_test_stub_offset = 268;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 332;
+    Thread_megamorphic_call_checked_entry_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 336;
+    Thread_switchable_call_miss_entry_offset = 332;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 236;
+    Thread_switchable_call_miss_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 364;
+    Thread_no_scope_native_wrapper_entry_point_offset = 360;
 static constexpr dart::compiler::target::word
     Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
@@ -5767,57 +5717,53 @@
     Thread_return_async_star_stub_offset = 220;
 static constexpr dart::compiler::target::word Thread_return_async_stub_offset =
     212;
-static constexpr dart::compiler::target::word
-    Thread_return_sync_star_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 372;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 848;
+    Thread_predefined_symbols_address_offset = 368;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 840;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 852;
+    Thread_saved_shadow_call_stack_offset = 844;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    860;
+    852;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 268;
+    Thread_slow_type_test_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 356;
+    Thread_slow_type_test_entry_point_offset = 352;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 28;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 328;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 324;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 232;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 228;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 324;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 228;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     76;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_await_entry_point_offset = 796;
+    Thread_suspend_state_await_entry_point_offset = 792;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_entry_point_offset = 792;
+    Thread_suspend_state_init_async_entry_point_offset = 788;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_entry_point_offset = 800;
+    Thread_suspend_state_return_async_entry_point_offset = 796;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_not_future_entry_point_offset = 804;
+    Thread_suspend_state_return_async_not_future_entry_point_offset = 800;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_star_entry_point_offset = 808;
+    Thread_suspend_state_init_async_star_entry_point_offset = 804;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_async_star_entry_point_offset = 812;
+    Thread_suspend_state_yield_async_star_entry_point_offset = 808;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_star_entry_point_offset = 816;
+    Thread_suspend_state_return_async_star_entry_point_offset = 812;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_sync_star_entry_point_offset = 820;
+    Thread_suspend_state_init_sync_star_entry_point_offset = 816;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_sync_star_entry_point_offset = 824;
+    Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 820;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_sync_star_entry_point_offset = 828;
-static constexpr dart::compiler::target::word
-    Thread_suspend_state_handle_exception_entry_point_offset = 832;
+    Thread_suspend_state_handle_exception_entry_point_offset = 824;
 static constexpr dart::compiler::target::word
     Thread_top_exit_frame_info_offset = 72;
 static constexpr dart::compiler::target::word Thread_top_offset = 48;
@@ -5828,17 +5774,17 @@
     Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 292;
+    Thread_write_barrier_entry_point_offset = 288;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     32;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 36;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 864;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 856;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 868;
-static constexpr dart::compiler::target::word Thread_random_offset = 888;
+    Thread_callback_stack_return_offset = 860;
+static constexpr dart::compiler::target::word Thread_random_offset = 880;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 352;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 896;
+    Thread_jump_to_frame_entry_point_offset = 348;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 888;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -5931,7 +5877,7 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        760, 764, 768, 772, 776, -1, 780, -1, 784, 788, -1, -1, -1, -1, -1, -1};
+        756, 760, 764, 768, 772, -1, 776, -1, 780, 784, -1, -1, -1, -1, -1, -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 8;
 static constexpr dart::compiler::target::word Array_header_size = 12;
@@ -6237,27 +6183,25 @@
 static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_await_offset = 1016;
+    ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_handle_exception_offset = 1088;
+    ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_offset = 1008;
+    ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_star_offset = 1040;
+    ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_offset = 1024;
+    ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_star_offset = 1056;
+    ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
 static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
 static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -6290,117 +6234,117 @@
 static constexpr dart::compiler::target::word
     SuspendState_then_callback_offset = 40;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 784;
+    Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1672;
+    1656;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1680;
+    1664;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 568;
+    Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 600;
+    Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 608;
+    Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 616;
+    Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1752;
+    1736;
 static constexpr dart::compiler::target::word
     Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 576;
+    Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     Thread_call_to_runtime_stub_offset = 256;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1792;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1776;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1760;
+    Thread_double_truncate_round_supported_offset = 1744;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1800;
+    Thread_service_extension_stream_offset = 1784;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    656;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
+    648;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    664;
+    656;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    488;
+    480;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    744;
+    736;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 736;
+    Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 528;
+    Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1712;
+    1696;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 536;
+    Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 552;
+    Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 672;
+    Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 768;
+    Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 760;
+    Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    752;
+    744;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 776;
+    Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1688;
+    1672;
 static constexpr dart::compiler::target::word
     Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1744;
+    1728;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1808;
+    1792;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 496;
+    Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 504;
+    Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 520;
+    Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 640;
+    Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 648;
+    Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 448;
+    Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -6428,57 +6372,53 @@
     Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word Thread_return_async_stub_offset =
     400;
-static constexpr dart::compiler::target::word
-    Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 720;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1696;
+    Thread_predefined_symbols_address_offset = 712;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1680;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1704;
+    Thread_saved_shadow_call_stack_offset = 1688;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1720;
+    1704;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 512;
+    Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 688;
+    Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_await_entry_point_offset = 1592;
+    Thread_suspend_state_await_entry_point_offset = 1584;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_entry_point_offset = 1584;
+    Thread_suspend_state_init_async_entry_point_offset = 1576;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_entry_point_offset = 1600;
+    Thread_suspend_state_return_async_entry_point_offset = 1592;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_not_future_entry_point_offset = 1608;
+    Thread_suspend_state_return_async_not_future_entry_point_offset = 1600;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_star_entry_point_offset = 1616;
+    Thread_suspend_state_init_async_star_entry_point_offset = 1608;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_async_star_entry_point_offset = 1624;
+    Thread_suspend_state_yield_async_star_entry_point_offset = 1616;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_star_entry_point_offset = 1632;
+    Thread_suspend_state_return_async_star_entry_point_offset = 1624;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_sync_star_entry_point_offset = 1640;
+    Thread_suspend_state_init_sync_star_entry_point_offset = 1632;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_sync_star_entry_point_offset = 1648;
+    Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1640;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_sync_star_entry_point_offset = 1656;
-static constexpr dart::compiler::target::word
-    Thread_suspend_state_handle_exception_entry_point_offset = 1664;
+    Thread_suspend_state_handle_exception_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
     Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -6489,18 +6429,18 @@
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 560;
+    Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1728;
+    1712;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1736;
-static constexpr dart::compiler::target::word Thread_random_offset = 1768;
+    Thread_callback_stack_return_offset = 1720;
+static constexpr dart::compiler::target::word Thread_random_offset = 1752;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 680;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1776;
+    Thread_jump_to_frame_entry_point_offset = 672;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1760;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -6595,8 +6535,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1496, 1504, 1512, 1520, -1,   -1,   1528, 1536,
-        1544, 1552, 1560, -1,   1568, 1576, -1,   -1};
+        1488, 1496, 1504, 1512, -1,   -1,   1520, 1528,
+        1536, 1544, 1552, -1,   1560, 1568, -1,   -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 24;
@@ -6900,27 +6840,25 @@
 static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
     112;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_await_offset = 508;
+    ObjectStore_suspend_state_await_offset = 492;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_handle_exception_offset = 544;
+    ObjectStore_suspend_state_handle_exception_offset = 524;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_offset = 504;
+    ObjectStore_suspend_state_init_async_offset = 488;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_star_offset = 520;
+    ObjectStore_suspend_state_init_async_star_offset = 504;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_sync_star_offset = 532;
+    ObjectStore_suspend_state_init_sync_star_offset = 516;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_offset = 512;
+    ObjectStore_suspend_state_return_async_offset = 496;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_not_future_offset = 516;
+    ObjectStore_suspend_state_return_async_not_future_offset = 500;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_star_offset = 528;
+    ObjectStore_suspend_state_return_async_star_offset = 512;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_sync_star_offset = 540;
+    ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 520;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_async_star_offset = 524;
-static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_sync_star_offset = 536;
+    ObjectStore_suspend_state_yield_async_star_offset = 508;
 static constexpr dart::compiler::target::word OneByteString_data_offset = 12;
 static constexpr dart::compiler::target::word PointerBase_data_offset = 4;
 static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8;
@@ -6952,115 +6890,115 @@
 static constexpr dart::compiler::target::word
     SuspendState_then_callback_offset = 20;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 404;
+    Thread_AllocateArray_entry_point_offset = 400;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    804;
+    796;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    808;
+    800;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 296;
+    Thread_array_write_barrier_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 304;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_with_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 308;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 304;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_without_fpu_regs_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 312;
+    Thread_allocate_object_entry_point_offset = 308;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 316;
+    Thread_allocate_object_parameterized_entry_point_offset = 312;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_parameterized_stub_offset = 196;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 320;
+    Thread_allocate_object_slow_entry_point_offset = 316;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_slow_stub_offset = 200;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 844;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 836;
 static constexpr dart::compiler::target::word
     Thread_async_exception_handler_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 368;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 364;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 120;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 360;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 356;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 300;
+    Thread_call_to_runtime_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
     Thread_call_to_runtime_stub_offset = 140;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 872;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 864;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 848;
+    Thread_double_truncate_round_supported_offset = 840;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 876;
+    Thread_service_extension_stream_offset = 868;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    340;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 252;
+    336;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    344;
+    340;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    256;
+    252;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    384;
+    380;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 380;
+    Thread_double_negate_address_offset = 376;
 static constexpr dart::compiler::target::word Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 276;
+    Thread_enter_safepoint_stub_offset = 272;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    824;
+    816;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 280;
+    Thread_exit_safepoint_stub_offset = 276;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 284;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 288;
+    Thread_call_native_through_safepoint_stub_offset = 284;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 348;
+    Thread_call_native_through_safepoint_entry_point_offset = 344;
 static constexpr dart::compiler::target::word
     Thread_fix_allocation_stub_code_offset = 132;
 static constexpr dart::compiler::target::word
     Thread_fix_callers_target_code_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 396;
+    Thread_float_absolute_address_offset = 392;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 392;
+    Thread_float_negate_address_offset = 388;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    388;
+    384;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 400;
+    Thread_float_zerow_address_offset = 396;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    812;
+    804;
 static constexpr dart::compiler::target::word
     Thread_invoke_dart_code_stub_offset = 136;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    840;
+    832;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
-static constexpr dart::compiler::target::word Thread_isolate_group_offset = 880;
+static constexpr dart::compiler::target::word Thread_isolate_group_offset = 872;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     64;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 260;
+    Thread_lazy_deopt_from_return_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 264;
+    Thread_lazy_deopt_from_throw_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 272;
+    Thread_lazy_specialize_type_test_stub_offset = 268;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 332;
+    Thread_megamorphic_call_checked_entry_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 336;
+    Thread_switchable_call_miss_entry_offset = 332;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 236;
+    Thread_switchable_call_miss_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 364;
+    Thread_no_scope_native_wrapper_entry_point_offset = 360;
 static constexpr dart::compiler::target::word
     Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
@@ -7088,57 +7026,53 @@
     Thread_return_async_star_stub_offset = 220;
 static constexpr dart::compiler::target::word Thread_return_async_stub_offset =
     212;
-static constexpr dart::compiler::target::word
-    Thread_return_sync_star_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 372;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 816;
+    Thread_predefined_symbols_address_offset = 368;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 808;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 820;
+    Thread_saved_shadow_call_stack_offset = 812;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    828;
+    820;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 268;
+    Thread_slow_type_test_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 356;
+    Thread_slow_type_test_entry_point_offset = 352;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 28;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 328;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 324;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 232;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 228;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 324;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 228;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     76;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_await_entry_point_offset = 764;
+    Thread_suspend_state_await_entry_point_offset = 760;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_entry_point_offset = 760;
+    Thread_suspend_state_init_async_entry_point_offset = 756;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_entry_point_offset = 768;
+    Thread_suspend_state_return_async_entry_point_offset = 764;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_not_future_entry_point_offset = 772;
+    Thread_suspend_state_return_async_not_future_entry_point_offset = 768;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_star_entry_point_offset = 776;
+    Thread_suspend_state_init_async_star_entry_point_offset = 772;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_async_star_entry_point_offset = 780;
+    Thread_suspend_state_yield_async_star_entry_point_offset = 776;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_star_entry_point_offset = 784;
+    Thread_suspend_state_return_async_star_entry_point_offset = 780;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_sync_star_entry_point_offset = 788;
+    Thread_suspend_state_init_sync_star_entry_point_offset = 784;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_sync_star_entry_point_offset = 792;
+    Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 788;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_sync_star_entry_point_offset = 796;
-static constexpr dart::compiler::target::word
-    Thread_suspend_state_handle_exception_entry_point_offset = 800;
+    Thread_suspend_state_handle_exception_entry_point_offset = 792;
 static constexpr dart::compiler::target::word
     Thread_top_exit_frame_info_offset = 72;
 static constexpr dart::compiler::target::word Thread_top_offset = 48;
@@ -7149,17 +7083,17 @@
     Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 292;
+    Thread_write_barrier_entry_point_offset = 288;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     32;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 36;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 832;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 824;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 836;
-static constexpr dart::compiler::target::word Thread_random_offset = 856;
+    Thread_callback_stack_return_offset = 828;
+static constexpr dart::compiler::target::word Thread_random_offset = 848;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 352;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 864;
+    Thread_jump_to_frame_entry_point_offset = 348;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 856;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -7555,27 +7489,25 @@
 static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_await_offset = 1016;
+    ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_handle_exception_offset = 1088;
+    ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_offset = 1008;
+    ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_star_offset = 1040;
+    ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_offset = 1024;
+    ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_star_offset = 1056;
+    ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
 static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
 static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -7608,117 +7540,117 @@
 static constexpr dart::compiler::target::word
     SuspendState_then_callback_offset = 40;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 784;
+    Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1736;
+    1720;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1744;
+    1728;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 568;
+    Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 600;
+    Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 608;
+    Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 616;
+    Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1816;
+    1800;
 static constexpr dart::compiler::target::word
     Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 576;
+    Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     Thread_call_to_runtime_stub_offset = 256;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1856;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1840;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1824;
+    Thread_double_truncate_round_supported_offset = 1808;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1864;
+    Thread_service_extension_stream_offset = 1848;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    656;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
+    648;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    664;
+    656;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    488;
+    480;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    744;
+    736;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 736;
+    Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 528;
+    Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1776;
+    1760;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 536;
+    Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 552;
+    Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 672;
+    Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 768;
+    Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 760;
+    Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    752;
+    744;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 776;
+    Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1752;
+    1736;
 static constexpr dart::compiler::target::word
     Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1808;
+    1792;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1872;
+    1856;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 496;
+    Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 504;
+    Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 520;
+    Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 640;
+    Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 648;
+    Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 448;
+    Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -7746,57 +7678,53 @@
     Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word Thread_return_async_stub_offset =
     400;
-static constexpr dart::compiler::target::word
-    Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 720;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1760;
+    Thread_predefined_symbols_address_offset = 712;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1744;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1768;
+    Thread_saved_shadow_call_stack_offset = 1752;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1784;
+    1768;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 512;
+    Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 688;
+    Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_await_entry_point_offset = 1656;
+    Thread_suspend_state_await_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_entry_point_offset = 1648;
+    Thread_suspend_state_init_async_entry_point_offset = 1640;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_entry_point_offset = 1664;
+    Thread_suspend_state_return_async_entry_point_offset = 1656;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_not_future_entry_point_offset = 1672;
+    Thread_suspend_state_return_async_not_future_entry_point_offset = 1664;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_star_entry_point_offset = 1680;
+    Thread_suspend_state_init_async_star_entry_point_offset = 1672;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_async_star_entry_point_offset = 1688;
+    Thread_suspend_state_yield_async_star_entry_point_offset = 1680;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_star_entry_point_offset = 1696;
+    Thread_suspend_state_return_async_star_entry_point_offset = 1688;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_sync_star_entry_point_offset = 1704;
+    Thread_suspend_state_init_sync_star_entry_point_offset = 1696;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_sync_star_entry_point_offset = 1712;
+    Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1704;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_sync_star_entry_point_offset = 1720;
-static constexpr dart::compiler::target::word
-    Thread_suspend_state_handle_exception_entry_point_offset = 1728;
+    Thread_suspend_state_handle_exception_entry_point_offset = 1712;
 static constexpr dart::compiler::target::word
     Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -7807,18 +7735,18 @@
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 560;
+    Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1792;
+    1776;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1800;
-static constexpr dart::compiler::target::word Thread_random_offset = 1832;
+    Thread_callback_stack_return_offset = 1784;
+static constexpr dart::compiler::target::word Thread_random_offset = 1816;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 680;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1840;
+    Thread_jump_to_frame_entry_point_offset = 672;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1824;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -7913,9 +7841,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1496, 1504, 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568, 1576,
-        1584, 1592, 1600, 1608, -1,   -1,   -1,   -1,   1616, 1624, -1,
-        -1,   1632, 1640, 1648, -1,   -1,   -1,   -1,   -1,   -1};
+        1488, 1496, 1504, 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568,
+        1576, 1584, 1592, 1600, -1,   -1,   -1,   -1,   1608, 1616, -1,
+        -1,   1624, 1632, 1640, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 24;
@@ -8219,27 +8147,25 @@
 static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_await_offset = 1016;
+    ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_handle_exception_offset = 1088;
+    ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_offset = 1008;
+    ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_star_offset = 1040;
+    ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_offset = 1024;
+    ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_star_offset = 1056;
+    ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
 static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
 static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -8272,117 +8198,117 @@
 static constexpr dart::compiler::target::word
     SuspendState_then_callback_offset = 36;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 784;
+    Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1672;
+    1656;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1680;
+    1664;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 568;
+    Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 600;
+    Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 608;
+    Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 616;
+    Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1752;
+    1736;
 static constexpr dart::compiler::target::word
     Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 576;
+    Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     Thread_call_to_runtime_stub_offset = 256;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1792;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1776;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1760;
+    Thread_double_truncate_round_supported_offset = 1744;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1800;
+    Thread_service_extension_stream_offset = 1784;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    656;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
+    648;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    664;
+    656;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    488;
+    480;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    744;
+    736;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 736;
+    Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 528;
+    Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1712;
+    1696;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 536;
+    Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 552;
+    Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 672;
+    Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 768;
+    Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 760;
+    Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    752;
+    744;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 776;
+    Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1688;
+    1672;
 static constexpr dart::compiler::target::word
     Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1744;
+    1728;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1808;
+    1792;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 496;
+    Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 504;
+    Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 520;
+    Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 640;
+    Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 648;
+    Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 448;
+    Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -8410,57 +8336,53 @@
     Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word Thread_return_async_stub_offset =
     400;
-static constexpr dart::compiler::target::word
-    Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 720;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1696;
+    Thread_predefined_symbols_address_offset = 712;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1680;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1704;
+    Thread_saved_shadow_call_stack_offset = 1688;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1720;
+    1704;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 512;
+    Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 688;
+    Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_await_entry_point_offset = 1592;
+    Thread_suspend_state_await_entry_point_offset = 1584;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_entry_point_offset = 1584;
+    Thread_suspend_state_init_async_entry_point_offset = 1576;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_entry_point_offset = 1600;
+    Thread_suspend_state_return_async_entry_point_offset = 1592;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_not_future_entry_point_offset = 1608;
+    Thread_suspend_state_return_async_not_future_entry_point_offset = 1600;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_star_entry_point_offset = 1616;
+    Thread_suspend_state_init_async_star_entry_point_offset = 1608;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_async_star_entry_point_offset = 1624;
+    Thread_suspend_state_yield_async_star_entry_point_offset = 1616;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_star_entry_point_offset = 1632;
+    Thread_suspend_state_return_async_star_entry_point_offset = 1624;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_sync_star_entry_point_offset = 1640;
+    Thread_suspend_state_init_sync_star_entry_point_offset = 1632;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_sync_star_entry_point_offset = 1648;
+    Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1640;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_sync_star_entry_point_offset = 1656;
-static constexpr dart::compiler::target::word
-    Thread_suspend_state_handle_exception_entry_point_offset = 1664;
+    Thread_suspend_state_handle_exception_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
     Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -8471,18 +8393,18 @@
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 560;
+    Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1728;
+    1712;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1736;
-static constexpr dart::compiler::target::word Thread_random_offset = 1768;
+    Thread_callback_stack_return_offset = 1720;
+static constexpr dart::compiler::target::word Thread_random_offset = 1752;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 680;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1776;
+    Thread_jump_to_frame_entry_point_offset = 672;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1760;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -8577,8 +8499,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1496, 1504, 1512, 1520, -1,   -1,   1528, 1536,
-        1544, 1552, 1560, -1,   1568, 1576, -1,   -1};
+        1488, 1496, 1504, 1512, -1,   -1,   1520, 1528,
+        1536, 1544, 1552, -1,   1560, 1568, -1,   -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 16;
@@ -8882,27 +8804,25 @@
 static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_await_offset = 1016;
+    ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_handle_exception_offset = 1088;
+    ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_offset = 1008;
+    ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_star_offset = 1040;
+    ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_offset = 1024;
+    ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_star_offset = 1056;
+    ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
 static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
 static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -8935,117 +8855,117 @@
 static constexpr dart::compiler::target::word
     SuspendState_then_callback_offset = 36;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 784;
+    Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1736;
+    1720;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1744;
+    1728;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 568;
+    Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 600;
+    Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 608;
+    Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 616;
+    Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1816;
+    1800;
 static constexpr dart::compiler::target::word
     Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 576;
+    Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     Thread_call_to_runtime_stub_offset = 256;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1856;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1840;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1824;
+    Thread_double_truncate_round_supported_offset = 1808;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1864;
+    Thread_service_extension_stream_offset = 1848;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    656;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
+    648;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    664;
+    656;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    488;
+    480;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    744;
+    736;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 736;
+    Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 528;
+    Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1776;
+    1760;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 536;
+    Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 552;
+    Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 672;
+    Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 768;
+    Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 760;
+    Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    752;
+    744;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 776;
+    Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1752;
+    1736;
 static constexpr dart::compiler::target::word
     Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1808;
+    1792;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1872;
+    1856;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 496;
+    Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 504;
+    Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 520;
+    Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 640;
+    Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 648;
+    Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 448;
+    Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -9073,57 +8993,53 @@
     Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word Thread_return_async_stub_offset =
     400;
-static constexpr dart::compiler::target::word
-    Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 720;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1760;
+    Thread_predefined_symbols_address_offset = 712;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1744;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1768;
+    Thread_saved_shadow_call_stack_offset = 1752;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1784;
+    1768;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 512;
+    Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 688;
+    Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_await_entry_point_offset = 1656;
+    Thread_suspend_state_await_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_entry_point_offset = 1648;
+    Thread_suspend_state_init_async_entry_point_offset = 1640;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_entry_point_offset = 1664;
+    Thread_suspend_state_return_async_entry_point_offset = 1656;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_not_future_entry_point_offset = 1672;
+    Thread_suspend_state_return_async_not_future_entry_point_offset = 1664;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_star_entry_point_offset = 1680;
+    Thread_suspend_state_init_async_star_entry_point_offset = 1672;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_async_star_entry_point_offset = 1688;
+    Thread_suspend_state_yield_async_star_entry_point_offset = 1680;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_star_entry_point_offset = 1696;
+    Thread_suspend_state_return_async_star_entry_point_offset = 1688;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_sync_star_entry_point_offset = 1704;
+    Thread_suspend_state_init_sync_star_entry_point_offset = 1696;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_sync_star_entry_point_offset = 1712;
+    Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1704;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_sync_star_entry_point_offset = 1720;
-static constexpr dart::compiler::target::word
-    Thread_suspend_state_handle_exception_entry_point_offset = 1728;
+    Thread_suspend_state_handle_exception_entry_point_offset = 1712;
 static constexpr dart::compiler::target::word
     Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -9134,18 +9050,18 @@
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 560;
+    Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1792;
+    1776;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1800;
-static constexpr dart::compiler::target::word Thread_random_offset = 1832;
+    Thread_callback_stack_return_offset = 1784;
+static constexpr dart::compiler::target::word Thread_random_offset = 1816;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 680;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1840;
+    Thread_jump_to_frame_entry_point_offset = 672;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1824;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -9240,9 +9156,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1496, 1504, 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568, 1576,
-        1584, 1592, 1600, 1608, -1,   -1,   -1,   -1,   1616, 1624, -1,
-        -1,   1632, 1640, 1648, -1,   -1,   -1,   -1,   -1,   -1};
+        1488, 1496, 1504, 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568,
+        1576, 1584, 1592, 1600, -1,   -1,   -1,   -1,   1608, 1616, -1,
+        -1,   1624, 1632, 1640, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 16;
@@ -9546,27 +9462,25 @@
 static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
     112;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_await_offset = 508;
+    ObjectStore_suspend_state_await_offset = 492;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_handle_exception_offset = 544;
+    ObjectStore_suspend_state_handle_exception_offset = 524;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_offset = 504;
+    ObjectStore_suspend_state_init_async_offset = 488;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_star_offset = 520;
+    ObjectStore_suspend_state_init_async_star_offset = 504;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_sync_star_offset = 532;
+    ObjectStore_suspend_state_init_sync_star_offset = 516;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_offset = 512;
+    ObjectStore_suspend_state_return_async_offset = 496;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_not_future_offset = 516;
+    ObjectStore_suspend_state_return_async_not_future_offset = 500;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_star_offset = 528;
+    ObjectStore_suspend_state_return_async_star_offset = 512;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_sync_star_offset = 540;
+    ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 520;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_async_star_offset = 524;
-static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_sync_star_offset = 536;
+    ObjectStore_suspend_state_yield_async_star_offset = 508;
 static constexpr dart::compiler::target::word OneByteString_data_offset = 12;
 static constexpr dart::compiler::target::word PointerBase_data_offset = 4;
 static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8;
@@ -9598,115 +9512,115 @@
 static constexpr dart::compiler::target::word
     SuspendState_then_callback_offset = 20;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 404;
+    Thread_AllocateArray_entry_point_offset = 400;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    876;
+    868;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    880;
+    872;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 296;
+    Thread_array_write_barrier_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 304;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_with_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 308;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 304;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_without_fpu_regs_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 312;
+    Thread_allocate_object_entry_point_offset = 308;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 316;
+    Thread_allocate_object_parameterized_entry_point_offset = 312;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_parameterized_stub_offset = 196;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 320;
+    Thread_allocate_object_slow_entry_point_offset = 316;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_slow_stub_offset = 200;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 916;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 908;
 static constexpr dart::compiler::target::word
     Thread_async_exception_handler_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 368;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 364;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 120;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 360;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 356;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 300;
+    Thread_call_to_runtime_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
     Thread_call_to_runtime_stub_offset = 140;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 944;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 936;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 920;
+    Thread_double_truncate_round_supported_offset = 912;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 948;
+    Thread_service_extension_stream_offset = 940;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    340;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 252;
+    336;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    344;
+    340;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    256;
+    252;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    384;
+    380;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 380;
+    Thread_double_negate_address_offset = 376;
 static constexpr dart::compiler::target::word Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 276;
+    Thread_enter_safepoint_stub_offset = 272;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    896;
+    888;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 280;
+    Thread_exit_safepoint_stub_offset = 276;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 284;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 288;
+    Thread_call_native_through_safepoint_stub_offset = 284;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 348;
+    Thread_call_native_through_safepoint_entry_point_offset = 344;
 static constexpr dart::compiler::target::word
     Thread_fix_allocation_stub_code_offset = 132;
 static constexpr dart::compiler::target::word
     Thread_fix_callers_target_code_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 396;
+    Thread_float_absolute_address_offset = 392;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 392;
+    Thread_float_negate_address_offset = 388;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    388;
+    384;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 400;
+    Thread_float_zerow_address_offset = 396;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    884;
+    876;
 static constexpr dart::compiler::target::word
     Thread_invoke_dart_code_stub_offset = 136;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    912;
+    904;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 40;
-static constexpr dart::compiler::target::word Thread_isolate_group_offset = 952;
+static constexpr dart::compiler::target::word Thread_isolate_group_offset = 944;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     64;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 260;
+    Thread_lazy_deopt_from_return_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 264;
+    Thread_lazy_deopt_from_throw_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 272;
+    Thread_lazy_specialize_type_test_stub_offset = 268;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 332;
+    Thread_megamorphic_call_checked_entry_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 336;
+    Thread_switchable_call_miss_entry_offset = 332;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 236;
+    Thread_switchable_call_miss_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 364;
+    Thread_no_scope_native_wrapper_entry_point_offset = 360;
 static constexpr dart::compiler::target::word
     Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
@@ -9734,57 +9648,53 @@
     Thread_return_async_star_stub_offset = 220;
 static constexpr dart::compiler::target::word Thread_return_async_stub_offset =
     212;
-static constexpr dart::compiler::target::word
-    Thread_return_sync_star_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 372;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 888;
+    Thread_predefined_symbols_address_offset = 368;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 880;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 892;
+    Thread_saved_shadow_call_stack_offset = 884;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    900;
+    892;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 268;
+    Thread_slow_type_test_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 356;
+    Thread_slow_type_test_entry_point_offset = 352;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 28;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 328;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 324;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 232;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 228;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 324;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 228;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     76;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_await_entry_point_offset = 836;
+    Thread_suspend_state_await_entry_point_offset = 832;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_entry_point_offset = 832;
+    Thread_suspend_state_init_async_entry_point_offset = 828;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_entry_point_offset = 840;
+    Thread_suspend_state_return_async_entry_point_offset = 836;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_not_future_entry_point_offset = 844;
+    Thread_suspend_state_return_async_not_future_entry_point_offset = 840;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_star_entry_point_offset = 848;
+    Thread_suspend_state_init_async_star_entry_point_offset = 844;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_async_star_entry_point_offset = 852;
+    Thread_suspend_state_yield_async_star_entry_point_offset = 848;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_star_entry_point_offset = 856;
+    Thread_suspend_state_return_async_star_entry_point_offset = 852;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_sync_star_entry_point_offset = 860;
+    Thread_suspend_state_init_sync_star_entry_point_offset = 856;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_sync_star_entry_point_offset = 864;
+    Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 860;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_sync_star_entry_point_offset = 868;
-static constexpr dart::compiler::target::word
-    Thread_suspend_state_handle_exception_entry_point_offset = 872;
+    Thread_suspend_state_handle_exception_entry_point_offset = 864;
 static constexpr dart::compiler::target::word
     Thread_top_exit_frame_info_offset = 72;
 static constexpr dart::compiler::target::word Thread_top_offset = 48;
@@ -9795,17 +9705,17 @@
     Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 292;
+    Thread_write_barrier_entry_point_offset = 288;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     32;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 36;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 904;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 896;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 908;
-static constexpr dart::compiler::target::word Thread_random_offset = 928;
+    Thread_callback_stack_return_offset = 900;
+static constexpr dart::compiler::target::word Thread_random_offset = 920;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 352;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 936;
+    Thread_jump_to_frame_entry_point_offset = 348;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 928;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -9898,9 +9808,9 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        -1,  -1,  -1, -1, -1, 760, 764, 768, -1,  -1,  772,
-        776, 780, -1, -1, -1, 784, 788, 792, 796, 800, 804,
-        808, 812, -1, -1, -1, -1,  816, 820, 824, 828};
+        -1,  -1,  -1, -1, -1, 756, 760, 764, -1,  -1,  768,
+        772, 776, -1, -1, -1, 780, 784, 788, 792, 796, 800,
+        804, 808, -1, -1, -1, -1,  812, 816, 820, 824};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 8;
 static constexpr dart::compiler::target::word Array_header_size = 12;
@@ -10206,27 +10116,25 @@
 static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_await_offset = 1016;
+    ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_handle_exception_offset = 1088;
+    ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_offset = 1008;
+    ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_async_star_offset = 1040;
+    ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_offset = 1024;
+    ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_async_star_offset = 1056;
+    ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
 static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
 static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
@@ -10259,117 +10167,117 @@
 static constexpr dart::compiler::target::word
     SuspendState_then_callback_offset = 40;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 784;
+    Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1728;
+    1712;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1736;
+    1720;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 568;
+    Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 600;
+    Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 608;
+    Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 616;
+    Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1808;
+    1792;
 static constexpr dart::compiler::target::word
     Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
 static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 576;
+    Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     Thread_call_to_runtime_stub_offset = 256;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1848;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1832;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    Thread_double_truncate_round_supported_offset = 1816;
+    Thread_double_truncate_round_supported_offset = 1800;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1856;
+    Thread_service_extension_stream_offset = 1840;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    656;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
+    648;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 472;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    664;
+    656;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    488;
+    480;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    744;
+    736;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 736;
+    Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 528;
+    Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1768;
+    1752;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 536;
+    Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 552;
+    Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 672;
+    Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 768;
+    Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 760;
+    Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    752;
+    744;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 776;
+    Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1744;
+    1728;
 static constexpr dart::compiler::target::word
     Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1800;
+    1784;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1864;
+    1848;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 496;
+    Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 504;
+    Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 520;
+    Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 640;
+    Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 648;
+    Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 448;
+    Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -10397,57 +10305,53 @@
     Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word Thread_return_async_stub_offset =
     400;
-static constexpr dart::compiler::target::word
-    Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 720;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1752;
+    Thread_predefined_symbols_address_offset = 712;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1736;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1760;
+    Thread_saved_shadow_call_stack_offset = 1744;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1776;
+    1760;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 512;
+    Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 688;
+    Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 56;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     112;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     152;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_await_entry_point_offset = 1648;
+    Thread_suspend_state_await_entry_point_offset = 1640;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_entry_point_offset = 1640;
+    Thread_suspend_state_init_async_entry_point_offset = 1632;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_entry_point_offset = 1656;
+    Thread_suspend_state_return_async_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_not_future_entry_point_offset = 1664;
+    Thread_suspend_state_return_async_not_future_entry_point_offset = 1656;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_async_star_entry_point_offset = 1672;
+    Thread_suspend_state_init_async_star_entry_point_offset = 1664;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_async_star_entry_point_offset = 1680;
+    Thread_suspend_state_yield_async_star_entry_point_offset = 1672;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_async_star_entry_point_offset = 1688;
+    Thread_suspend_state_return_async_star_entry_point_offset = 1680;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_init_sync_star_entry_point_offset = 1696;
+    Thread_suspend_state_init_sync_star_entry_point_offset = 1688;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_yield_sync_star_entry_point_offset = 1704;
+    Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset = 1696;
 static constexpr dart::compiler::target::word
-    Thread_suspend_state_return_sync_star_entry_point_offset = 1712;
-static constexpr dart::compiler::target::word
-    Thread_suspend_state_handle_exception_entry_point_offset = 1720;
+    Thread_suspend_state_handle_exception_entry_point_offset = 1704;
 static constexpr dart::compiler::target::word
     Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word Thread_top_offset = 96;
@@ -10458,18 +10362,18 @@
     Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 560;
+    Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     64;
 static constexpr dart::compiler::target::word Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1784;
+    1768;
 static constexpr dart::compiler::target::word
-    Thread_callback_stack_return_offset = 1792;
-static constexpr dart::compiler::target::word Thread_random_offset = 1824;
+    Thread_callback_stack_return_offset = 1776;
+static constexpr dart::compiler::target::word Thread_random_offset = 1808;
 static constexpr dart::compiler::target::word
-    Thread_jump_to_frame_entry_point_offset = 680;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1832;
+    Thread_jump_to_frame_entry_point_offset = 672;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1816;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -10564,9 +10468,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        -1,   -1,   -1, -1, -1, 1496, 1504, 1512, -1,   -1,   1520,
-        1528, 1536, -1, -1, -1, 1544, 1552, 1560, 1568, 1576, 1584,
-        1592, 1600, -1, -1, -1, -1,   1608, 1616, 1624, 1632};
+        -1,   -1,   -1, -1, -1, 1488, 1496, 1504, -1,   -1,   1512,
+        1520, 1528, -1, -1, -1, 1536, 1544, 1552, 1560, 1568, 1576,
+        1584, 1592, -1, -1, -1, -1,   1600, 1608, 1616, 1624};
 static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_header_size = 24;
@@ -10902,27 +10806,25 @@
 static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
     112;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_await_offset = 508;
+    AOT_ObjectStore_suspend_state_await_offset = 492;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_handle_exception_offset = 544;
+    AOT_ObjectStore_suspend_state_handle_exception_offset = 524;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_offset = 504;
+    AOT_ObjectStore_suspend_state_init_async_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_star_offset = 520;
+    AOT_ObjectStore_suspend_state_init_async_star_offset = 504;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_sync_star_offset = 532;
+    AOT_ObjectStore_suspend_state_init_sync_star_offset = 516;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_offset = 512;
+    AOT_ObjectStore_suspend_state_return_async_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 516;
+    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 500;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_star_offset = 528;
+    AOT_ObjectStore_suspend_state_return_async_star_offset = 512;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_sync_star_offset = 540;
+    AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_async_star_offset = 524;
-static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_sync_star_offset = 536;
+    AOT_ObjectStore_suspend_state_yield_async_star_offset = 508;
 static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
     12;
 static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 4;
@@ -10959,120 +10861,120 @@
 static constexpr dart::compiler::target::word
     AOT_SuspendState_then_callback_offset = 16;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 404;
+    AOT_Thread_AllocateArray_entry_point_offset = 400;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 836;
+    AOT_Thread_active_exception_offset = 828;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 840;
+    AOT_Thread_active_stacktrace_offset = 832;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 296;
+    AOT_Thread_array_write_barrier_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 304;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 308;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 304;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 312;
+    AOT_Thread_allocate_object_entry_point_offset = 308;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 316;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 312;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_parameterized_stub_offset = 196;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 320;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 316;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_slow_stub_offset = 200;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    876;
+    868;
 static constexpr dart::compiler::target::word
     AOT_Thread_async_exception_handler_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 368;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 364;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     120;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 360;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 356;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 300;
+    AOT_Thread_call_to_runtime_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
     AOT_Thread_call_to_runtime_stub_offset = 140;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    904;
+    896;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 880;
+    AOT_Thread_double_truncate_round_supported_offset = 872;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 908;
+    AOT_Thread_service_extension_stream_offset = 900;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    340;
+    336;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    252;
+    248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 344;
+    AOT_Thread_deoptimize_entry_offset = 340;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 256;
+    AOT_Thread_deoptimize_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 384;
+    AOT_Thread_double_abs_address_offset = 380;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 380;
+    AOT_Thread_double_negate_address_offset = 376;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 276;
+    AOT_Thread_enter_safepoint_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 856;
+    AOT_Thread_execution_state_offset = 848;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 280;
+    AOT_Thread_exit_safepoint_stub_offset = 276;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 284;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 288;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 284;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 348;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 344;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_allocation_stub_code_offset = 132;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_callers_target_code_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 396;
+    AOT_Thread_float_absolute_address_offset = 392;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 392;
+    AOT_Thread_float_negate_address_offset = 388;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 388;
+    AOT_Thread_float_not_address_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 400;
+    AOT_Thread_float_zerow_address_offset = 396;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 844;
+    AOT_Thread_global_object_pool_offset = 836;
 static constexpr dart::compiler::target::word
     AOT_Thread_invoke_dart_code_stub_offset = 136;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 872;
+    AOT_Thread_exit_through_ffi_offset = 864;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 40;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    912;
+    904;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 64;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 260;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 264;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 272;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 268;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 332;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 336;
+    AOT_Thread_switchable_call_miss_entry_offset = 332;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 236;
+    AOT_Thread_switchable_call_miss_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 364;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 360;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
@@ -11102,21 +11004,19 @@
     AOT_Thread_return_async_star_stub_offset = 220;
 static constexpr dart::compiler::target::word
     AOT_Thread_return_async_stub_offset = 212;
-static constexpr dart::compiler::target::word
-    AOT_Thread_return_sync_star_stub_offset = 224;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     112;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 372;
-static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 848;
+    AOT_Thread_predefined_symbols_address_offset = 368;
+static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 840;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 852;
+    AOT_Thread_saved_shadow_call_stack_offset = 844;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 860;
+    AOT_Thread_safepoint_state_offset = 852;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 268;
+    AOT_Thread_slow_type_test_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 356;
+    AOT_Thread_slow_type_test_entry_point_offset = 352;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     28;
 static constexpr dart::compiler::target::word
@@ -11124,37 +11024,36 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 328;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 324;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 232;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 228;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 324;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 228;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 224;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 76;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_await_entry_point_offset = 796;
+    AOT_Thread_suspend_state_await_entry_point_offset = 792;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_entry_point_offset = 792;
+    AOT_Thread_suspend_state_init_async_entry_point_offset = 788;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_entry_point_offset = 800;
+    AOT_Thread_suspend_state_return_async_entry_point_offset = 796;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 804;
+    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 800;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 808;
+    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 804;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 812;
+    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 808;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 816;
+    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 812;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 820;
+    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 816;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_sync_star_entry_point_offset = 824;
+    AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
+        820;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_sync_star_entry_point_offset = 828;
-static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 832;
+    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 824;
 static constexpr dart::compiler::target::word
     AOT_Thread_top_exit_frame_info_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_top_offset = 48;
@@ -11166,19 +11065,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 292;
+    AOT_Thread_write_barrier_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 32;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 36;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    864;
+    856;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 868;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 888;
+    AOT_Thread_callback_stack_return_offset = 860;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 880;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 352;
+    AOT_Thread_jump_to_frame_entry_point_offset = 348;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    896;
+    888;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -11291,7 +11190,7 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        760, 764, 768, 772, 776, -1, 780, -1, 784, 788, -1, -1, -1, -1, -1, -1};
+        756, 760, 764, 768, 772, -1, 776, -1, 780, 784, -1, -1, -1, -1, -1, -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     12;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8;
@@ -11641,27 +11540,25 @@
 static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_await_offset = 1016;
+    AOT_ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_handle_exception_offset = 1088;
+    AOT_ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_offset = 1008;
+    AOT_ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_star_offset = 1040;
+    AOT_ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_offset = 1024;
+    AOT_ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_star_offset = 1056;
+    AOT_ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
     16;
 static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -11698,120 +11595,120 @@
 static constexpr dart::compiler::target::word
     AOT_SuspendState_then_callback_offset = 32;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 784;
+    AOT_Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1672;
+    AOT_Thread_active_exception_offset = 1656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1680;
+    AOT_Thread_active_stacktrace_offset = 1664;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 568;
+    AOT_Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 600;
+    AOT_Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 608;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 616;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1752;
+    1736;
 static constexpr dart::compiler::target::word
     AOT_Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 576;
+    AOT_Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     AOT_Thread_call_to_runtime_stub_offset = 256;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1792;
+    1776;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1760;
+    AOT_Thread_double_truncate_round_supported_offset = 1744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1800;
+    AOT_Thread_service_extension_stream_offset = 1784;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    656;
+    648;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    480;
+    472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 664;
+    AOT_Thread_deoptimize_entry_offset = 656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 488;
+    AOT_Thread_deoptimize_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 744;
+    AOT_Thread_double_abs_address_offset = 736;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 736;
+    AOT_Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 528;
+    AOT_Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1712;
+    AOT_Thread_execution_state_offset = 1696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 536;
+    AOT_Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 552;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 672;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 768;
+    AOT_Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 760;
+    AOT_Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 752;
+    AOT_Thread_float_not_address_offset = 744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 776;
+    AOT_Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1688;
+    AOT_Thread_global_object_pool_offset = 1672;
 static constexpr dart::compiler::target::word
     AOT_Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1744;
+    AOT_Thread_exit_through_ffi_offset = 1728;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1808;
+    1792;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 496;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 504;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 520;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 640;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 648;
+    AOT_Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 448;
+    AOT_Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -11841,22 +11738,20 @@
     AOT_Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word
     AOT_Thread_return_async_stub_offset = 400;
-static constexpr dart::compiler::target::word
-    AOT_Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 720;
+    AOT_Thread_predefined_symbols_address_offset = 712;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1696;
+    1680;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1704;
+    AOT_Thread_saved_shadow_call_stack_offset = 1688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1720;
+    AOT_Thread_safepoint_state_offset = 1704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 512;
+    AOT_Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 688;
+    AOT_Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -11864,37 +11759,36 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_await_entry_point_offset = 1592;
+    AOT_Thread_suspend_state_await_entry_point_offset = 1584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_entry_point_offset = 1584;
+    AOT_Thread_suspend_state_init_async_entry_point_offset = 1576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_entry_point_offset = 1600;
+    AOT_Thread_suspend_state_return_async_entry_point_offset = 1592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1608;
+    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1600;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1616;
+    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1624;
+    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1632;
+    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1640;
+    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1632;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_sync_star_entry_point_offset = 1648;
+    AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
+        1640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_sync_star_entry_point_offset = 1656;
-static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1664;
+    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
     AOT_Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -11906,19 +11800,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 560;
+    AOT_Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1728;
+    1712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1736;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1768;
+    AOT_Thread_callback_stack_return_offset = 1720;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 680;
+    AOT_Thread_jump_to_frame_entry_point_offset = 672;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1776;
+    1760;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -12032,8 +11926,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1496, 1504, 1512, 1520, -1,   -1,   1528, 1536,
-        1544, 1552, 1560, -1,   1568, 1576, -1,   -1};
+        1488, 1496, 1504, 1512, -1,   -1,   1520, 1528,
+        1536, 1544, 1552, -1,   1560, 1568, -1,   -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -12386,27 +12280,25 @@
 static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_await_offset = 1016;
+    AOT_ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_handle_exception_offset = 1088;
+    AOT_ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_offset = 1008;
+    AOT_ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_star_offset = 1040;
+    AOT_ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_offset = 1024;
+    AOT_ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_star_offset = 1056;
+    AOT_ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
     16;
 static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -12443,120 +12335,120 @@
 static constexpr dart::compiler::target::word
     AOT_SuspendState_then_callback_offset = 32;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 784;
+    AOT_Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1736;
+    AOT_Thread_active_exception_offset = 1720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1744;
+    AOT_Thread_active_stacktrace_offset = 1728;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 568;
+    AOT_Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 600;
+    AOT_Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 608;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 616;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1816;
+    1800;
 static constexpr dart::compiler::target::word
     AOT_Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 576;
+    AOT_Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     AOT_Thread_call_to_runtime_stub_offset = 256;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1856;
+    1840;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1824;
+    AOT_Thread_double_truncate_round_supported_offset = 1808;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1864;
+    AOT_Thread_service_extension_stream_offset = 1848;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    656;
+    648;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    480;
+    472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 664;
+    AOT_Thread_deoptimize_entry_offset = 656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 488;
+    AOT_Thread_deoptimize_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 744;
+    AOT_Thread_double_abs_address_offset = 736;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 736;
+    AOT_Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 528;
+    AOT_Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1776;
+    AOT_Thread_execution_state_offset = 1760;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 536;
+    AOT_Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 552;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 672;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 768;
+    AOT_Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 760;
+    AOT_Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 752;
+    AOT_Thread_float_not_address_offset = 744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 776;
+    AOT_Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1752;
+    AOT_Thread_global_object_pool_offset = 1736;
 static constexpr dart::compiler::target::word
     AOT_Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1808;
+    AOT_Thread_exit_through_ffi_offset = 1792;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1872;
+    1856;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 496;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 504;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 520;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 640;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 648;
+    AOT_Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 448;
+    AOT_Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -12586,22 +12478,20 @@
     AOT_Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word
     AOT_Thread_return_async_stub_offset = 400;
-static constexpr dart::compiler::target::word
-    AOT_Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 720;
+    AOT_Thread_predefined_symbols_address_offset = 712;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1760;
+    1744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1768;
+    AOT_Thread_saved_shadow_call_stack_offset = 1752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1784;
+    AOT_Thread_safepoint_state_offset = 1768;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 512;
+    AOT_Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 688;
+    AOT_Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -12609,37 +12499,36 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_await_entry_point_offset = 1656;
+    AOT_Thread_suspend_state_await_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_entry_point_offset = 1648;
+    AOT_Thread_suspend_state_init_async_entry_point_offset = 1640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_entry_point_offset = 1664;
+    AOT_Thread_suspend_state_return_async_entry_point_offset = 1656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1672;
+    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1664;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1680;
+    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1672;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1688;
+    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1680;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1696;
+    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1704;
+    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_sync_star_entry_point_offset = 1712;
+    AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
+        1704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_sync_star_entry_point_offset = 1720;
-static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1728;
+    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1712;
 static constexpr dart::compiler::target::word
     AOT_Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -12651,19 +12540,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 560;
+    AOT_Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1792;
+    1776;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1800;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1832;
+    AOT_Thread_callback_stack_return_offset = 1784;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1816;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 680;
+    AOT_Thread_jump_to_frame_entry_point_offset = 672;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1840;
+    1824;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -12777,9 +12666,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1496, 1504, 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568, 1576,
-        1584, 1592, 1600, 1608, -1,   -1,   -1,   -1,   1616, 1624, -1,
-        -1,   1632, 1640, 1648, -1,   -1,   -1,   -1,   -1,   -1};
+        1488, 1496, 1504, 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568,
+        1576, 1584, 1592, 1600, -1,   -1,   -1,   -1,   1608, 1616, -1,
+        -1,   1624, 1632, 1640, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -13128,27 +13017,25 @@
 static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_await_offset = 1016;
+    AOT_ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_handle_exception_offset = 1088;
+    AOT_ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_offset = 1008;
+    AOT_ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_star_offset = 1040;
+    AOT_ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_offset = 1024;
+    AOT_ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_star_offset = 1056;
+    AOT_ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
     16;
 static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -13185,120 +13072,120 @@
 static constexpr dart::compiler::target::word
     AOT_SuspendState_then_callback_offset = 28;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 784;
+    AOT_Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1672;
+    AOT_Thread_active_exception_offset = 1656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1680;
+    AOT_Thread_active_stacktrace_offset = 1664;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 568;
+    AOT_Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 600;
+    AOT_Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 608;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 616;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1752;
+    1736;
 static constexpr dart::compiler::target::word
     AOT_Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 576;
+    AOT_Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     AOT_Thread_call_to_runtime_stub_offset = 256;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1792;
+    1776;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1760;
+    AOT_Thread_double_truncate_round_supported_offset = 1744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1800;
+    AOT_Thread_service_extension_stream_offset = 1784;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    656;
+    648;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    480;
+    472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 664;
+    AOT_Thread_deoptimize_entry_offset = 656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 488;
+    AOT_Thread_deoptimize_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 744;
+    AOT_Thread_double_abs_address_offset = 736;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 736;
+    AOT_Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 528;
+    AOT_Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1712;
+    AOT_Thread_execution_state_offset = 1696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 536;
+    AOT_Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 552;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 672;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 768;
+    AOT_Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 760;
+    AOT_Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 752;
+    AOT_Thread_float_not_address_offset = 744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 776;
+    AOT_Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1688;
+    AOT_Thread_global_object_pool_offset = 1672;
 static constexpr dart::compiler::target::word
     AOT_Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1744;
+    AOT_Thread_exit_through_ffi_offset = 1728;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1808;
+    1792;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 496;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 504;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 520;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 640;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 648;
+    AOT_Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 448;
+    AOT_Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -13328,22 +13215,20 @@
     AOT_Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word
     AOT_Thread_return_async_stub_offset = 400;
-static constexpr dart::compiler::target::word
-    AOT_Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 720;
+    AOT_Thread_predefined_symbols_address_offset = 712;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1696;
+    1680;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1704;
+    AOT_Thread_saved_shadow_call_stack_offset = 1688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1720;
+    AOT_Thread_safepoint_state_offset = 1704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 512;
+    AOT_Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 688;
+    AOT_Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -13351,37 +13236,36 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_await_entry_point_offset = 1592;
+    AOT_Thread_suspend_state_await_entry_point_offset = 1584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_entry_point_offset = 1584;
+    AOT_Thread_suspend_state_init_async_entry_point_offset = 1576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_entry_point_offset = 1600;
+    AOT_Thread_suspend_state_return_async_entry_point_offset = 1592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1608;
+    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1600;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1616;
+    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1624;
+    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1632;
+    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1640;
+    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1632;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_sync_star_entry_point_offset = 1648;
+    AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
+        1640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_sync_star_entry_point_offset = 1656;
-static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1664;
+    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
     AOT_Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -13393,19 +13277,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 560;
+    AOT_Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1728;
+    1712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1736;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1768;
+    AOT_Thread_callback_stack_return_offset = 1720;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 680;
+    AOT_Thread_jump_to_frame_entry_point_offset = 672;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1776;
+    1760;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -13519,8 +13403,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1496, 1504, 1512, 1520, -1,   -1,   1528, 1536,
-        1544, 1552, 1560, -1,   1568, 1576, -1,   -1};
+        1488, 1496, 1504, 1512, -1,   -1,   1520, 1528,
+        1536, 1544, 1552, -1,   1560, 1568, -1,   -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -13869,27 +13753,25 @@
 static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_await_offset = 1016;
+    AOT_ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_handle_exception_offset = 1088;
+    AOT_ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_offset = 1008;
+    AOT_ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_star_offset = 1040;
+    AOT_ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_offset = 1024;
+    AOT_ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_star_offset = 1056;
+    AOT_ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
     16;
 static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -13926,120 +13808,120 @@
 static constexpr dart::compiler::target::word
     AOT_SuspendState_then_callback_offset = 28;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 784;
+    AOT_Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1736;
+    AOT_Thread_active_exception_offset = 1720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1744;
+    AOT_Thread_active_stacktrace_offset = 1728;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 568;
+    AOT_Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 600;
+    AOT_Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 608;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 616;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1816;
+    1800;
 static constexpr dart::compiler::target::word
     AOT_Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 576;
+    AOT_Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     AOT_Thread_call_to_runtime_stub_offset = 256;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1856;
+    1840;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1824;
+    AOT_Thread_double_truncate_round_supported_offset = 1808;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1864;
+    AOT_Thread_service_extension_stream_offset = 1848;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    656;
+    648;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    480;
+    472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 664;
+    AOT_Thread_deoptimize_entry_offset = 656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 488;
+    AOT_Thread_deoptimize_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 744;
+    AOT_Thread_double_abs_address_offset = 736;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 736;
+    AOT_Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 528;
+    AOT_Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1776;
+    AOT_Thread_execution_state_offset = 1760;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 536;
+    AOT_Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 552;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 672;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 768;
+    AOT_Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 760;
+    AOT_Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 752;
+    AOT_Thread_float_not_address_offset = 744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 776;
+    AOT_Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1752;
+    AOT_Thread_global_object_pool_offset = 1736;
 static constexpr dart::compiler::target::word
     AOT_Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1808;
+    AOT_Thread_exit_through_ffi_offset = 1792;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1872;
+    1856;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 496;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 504;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 520;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 640;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 648;
+    AOT_Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 448;
+    AOT_Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -14069,22 +13951,20 @@
     AOT_Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word
     AOT_Thread_return_async_stub_offset = 400;
-static constexpr dart::compiler::target::word
-    AOT_Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 720;
+    AOT_Thread_predefined_symbols_address_offset = 712;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1760;
+    1744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1768;
+    AOT_Thread_saved_shadow_call_stack_offset = 1752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1784;
+    AOT_Thread_safepoint_state_offset = 1768;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 512;
+    AOT_Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 688;
+    AOT_Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -14092,37 +13972,36 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_await_entry_point_offset = 1656;
+    AOT_Thread_suspend_state_await_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_entry_point_offset = 1648;
+    AOT_Thread_suspend_state_init_async_entry_point_offset = 1640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_entry_point_offset = 1664;
+    AOT_Thread_suspend_state_return_async_entry_point_offset = 1656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1672;
+    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1664;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1680;
+    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1672;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1688;
+    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1680;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1696;
+    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1704;
+    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_sync_star_entry_point_offset = 1712;
+    AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
+        1704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_sync_star_entry_point_offset = 1720;
-static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1728;
+    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1712;
 static constexpr dart::compiler::target::word
     AOT_Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -14134,19 +14013,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 560;
+    AOT_Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1792;
+    1776;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1800;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1832;
+    AOT_Thread_callback_stack_return_offset = 1784;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1816;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 680;
+    AOT_Thread_jump_to_frame_entry_point_offset = 672;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1840;
+    1824;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -14260,9 +14139,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1496, 1504, 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568, 1576,
-        1584, 1592, 1600, 1608, -1,   -1,   -1,   -1,   1616, 1624, -1,
-        -1,   1632, 1640, 1648, -1,   -1,   -1,   -1,   -1,   -1};
+        1488, 1496, 1504, 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568,
+        1576, 1584, 1592, 1600, -1,   -1,   -1,   -1,   1608, 1616, -1,
+        -1,   1624, 1632, 1640, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -14611,27 +14490,25 @@
 static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
     112;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_await_offset = 508;
+    AOT_ObjectStore_suspend_state_await_offset = 492;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_handle_exception_offset = 544;
+    AOT_ObjectStore_suspend_state_handle_exception_offset = 524;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_offset = 504;
+    AOT_ObjectStore_suspend_state_init_async_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_star_offset = 520;
+    AOT_ObjectStore_suspend_state_init_async_star_offset = 504;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_sync_star_offset = 532;
+    AOT_ObjectStore_suspend_state_init_sync_star_offset = 516;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_offset = 512;
+    AOT_ObjectStore_suspend_state_return_async_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 516;
+    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 500;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_star_offset = 528;
+    AOT_ObjectStore_suspend_state_return_async_star_offset = 512;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_sync_star_offset = 540;
+    AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_async_star_offset = 524;
-static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_sync_star_offset = 536;
+    AOT_ObjectStore_suspend_state_yield_async_star_offset = 508;
 static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
     12;
 static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 4;
@@ -14668,120 +14545,120 @@
 static constexpr dart::compiler::target::word
     AOT_SuspendState_then_callback_offset = 16;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 404;
+    AOT_Thread_AllocateArray_entry_point_offset = 400;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 876;
+    AOT_Thread_active_exception_offset = 868;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 880;
+    AOT_Thread_active_stacktrace_offset = 872;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 296;
+    AOT_Thread_array_write_barrier_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 304;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 308;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 304;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 312;
+    AOT_Thread_allocate_object_entry_point_offset = 308;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 316;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 312;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_parameterized_stub_offset = 196;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 320;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 316;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_slow_stub_offset = 200;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    916;
+    908;
 static constexpr dart::compiler::target::word
     AOT_Thread_async_exception_handler_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 368;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 364;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     120;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 360;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 356;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 300;
+    AOT_Thread_call_to_runtime_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
     AOT_Thread_call_to_runtime_stub_offset = 140;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    944;
+    936;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 920;
+    AOT_Thread_double_truncate_round_supported_offset = 912;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 948;
+    AOT_Thread_service_extension_stream_offset = 940;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    340;
+    336;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    252;
+    248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 344;
+    AOT_Thread_deoptimize_entry_offset = 340;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 256;
+    AOT_Thread_deoptimize_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 384;
+    AOT_Thread_double_abs_address_offset = 380;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 380;
+    AOT_Thread_double_negate_address_offset = 376;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 276;
+    AOT_Thread_enter_safepoint_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 896;
+    AOT_Thread_execution_state_offset = 888;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 280;
+    AOT_Thread_exit_safepoint_stub_offset = 276;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 284;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 288;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 284;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 348;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 344;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_allocation_stub_code_offset = 132;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_callers_target_code_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 396;
+    AOT_Thread_float_absolute_address_offset = 392;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 392;
+    AOT_Thread_float_negate_address_offset = 388;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 388;
+    AOT_Thread_float_not_address_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 400;
+    AOT_Thread_float_zerow_address_offset = 396;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 884;
+    AOT_Thread_global_object_pool_offset = 876;
 static constexpr dart::compiler::target::word
     AOT_Thread_invoke_dart_code_stub_offset = 136;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 912;
+    AOT_Thread_exit_through_ffi_offset = 904;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 40;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    952;
+    944;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 64;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 260;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 264;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 272;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 268;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 332;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 336;
+    AOT_Thread_switchable_call_miss_entry_offset = 332;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 236;
+    AOT_Thread_switchable_call_miss_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 364;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 360;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
@@ -14811,21 +14688,19 @@
     AOT_Thread_return_async_star_stub_offset = 220;
 static constexpr dart::compiler::target::word
     AOT_Thread_return_async_stub_offset = 212;
-static constexpr dart::compiler::target::word
-    AOT_Thread_return_sync_star_stub_offset = 224;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     112;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 372;
-static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 888;
+    AOT_Thread_predefined_symbols_address_offset = 368;
+static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 880;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 892;
+    AOT_Thread_saved_shadow_call_stack_offset = 884;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 900;
+    AOT_Thread_safepoint_state_offset = 892;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 268;
+    AOT_Thread_slow_type_test_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 356;
+    AOT_Thread_slow_type_test_entry_point_offset = 352;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     28;
 static constexpr dart::compiler::target::word
@@ -14833,37 +14708,36 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 328;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 324;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 232;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 228;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 324;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 228;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 224;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 76;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_await_entry_point_offset = 836;
+    AOT_Thread_suspend_state_await_entry_point_offset = 832;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_entry_point_offset = 832;
+    AOT_Thread_suspend_state_init_async_entry_point_offset = 828;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_entry_point_offset = 840;
+    AOT_Thread_suspend_state_return_async_entry_point_offset = 836;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 844;
+    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 840;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 848;
+    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 844;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 852;
+    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 848;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 856;
+    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 852;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 860;
+    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 856;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_sync_star_entry_point_offset = 864;
+    AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
+        860;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_sync_star_entry_point_offset = 868;
-static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 872;
+    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 864;
 static constexpr dart::compiler::target::word
     AOT_Thread_top_exit_frame_info_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_top_offset = 48;
@@ -14875,19 +14749,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 292;
+    AOT_Thread_write_barrier_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 32;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 36;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    904;
+    896;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 908;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 928;
+    AOT_Thread_callback_stack_return_offset = 900;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 920;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 352;
+    AOT_Thread_jump_to_frame_entry_point_offset = 348;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    936;
+    928;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -15000,9 +14874,9 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        -1,  -1,  -1, -1, -1, 760, 764, 768, -1,  -1,  772,
-        776, 780, -1, -1, -1, 784, 788, 792, 796, 800, 804,
-        808, 812, -1, -1, -1, -1,  816, 820, 824, 828};
+        -1,  -1,  -1, -1, -1, 756, 760, 764, -1,  -1,  768,
+        772, 776, -1, -1, -1, 780, 784, 788, 792, 796, 800,
+        804, 808, -1, -1, -1, -1,  812, 816, 820, 824};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     12;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8;
@@ -15352,27 +15226,25 @@
 static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_await_offset = 1016;
+    AOT_ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_handle_exception_offset = 1088;
+    AOT_ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_offset = 1008;
+    AOT_ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_star_offset = 1040;
+    AOT_ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_offset = 1024;
+    AOT_ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_star_offset = 1056;
+    AOT_ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
     16;
 static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -15409,120 +15281,120 @@
 static constexpr dart::compiler::target::word
     AOT_SuspendState_then_callback_offset = 32;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 784;
+    AOT_Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1728;
+    AOT_Thread_active_exception_offset = 1712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1736;
+    AOT_Thread_active_stacktrace_offset = 1720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 568;
+    AOT_Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 600;
+    AOT_Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 608;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 616;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1808;
+    1792;
 static constexpr dart::compiler::target::word
     AOT_Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 576;
+    AOT_Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     AOT_Thread_call_to_runtime_stub_offset = 256;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1848;
+    1832;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1816;
+    AOT_Thread_double_truncate_round_supported_offset = 1800;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1856;
+    AOT_Thread_service_extension_stream_offset = 1840;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    656;
+    648;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    480;
+    472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 664;
+    AOT_Thread_deoptimize_entry_offset = 656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 488;
+    AOT_Thread_deoptimize_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 744;
+    AOT_Thread_double_abs_address_offset = 736;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 736;
+    AOT_Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 528;
+    AOT_Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1768;
+    AOT_Thread_execution_state_offset = 1752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 536;
+    AOT_Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 552;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 672;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 768;
+    AOT_Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 760;
+    AOT_Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 752;
+    AOT_Thread_float_not_address_offset = 744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 776;
+    AOT_Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1744;
+    AOT_Thread_global_object_pool_offset = 1728;
 static constexpr dart::compiler::target::word
     AOT_Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1800;
+    AOT_Thread_exit_through_ffi_offset = 1784;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1864;
+    1848;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 496;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 504;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 520;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 640;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 648;
+    AOT_Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 448;
+    AOT_Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -15552,22 +15424,20 @@
     AOT_Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word
     AOT_Thread_return_async_stub_offset = 400;
-static constexpr dart::compiler::target::word
-    AOT_Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 720;
+    AOT_Thread_predefined_symbols_address_offset = 712;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1752;
+    1736;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1760;
+    AOT_Thread_saved_shadow_call_stack_offset = 1744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1776;
+    AOT_Thread_safepoint_state_offset = 1760;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 512;
+    AOT_Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 688;
+    AOT_Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -15575,37 +15445,36 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_await_entry_point_offset = 1648;
+    AOT_Thread_suspend_state_await_entry_point_offset = 1640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_entry_point_offset = 1640;
+    AOT_Thread_suspend_state_init_async_entry_point_offset = 1632;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_entry_point_offset = 1656;
+    AOT_Thread_suspend_state_return_async_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1664;
+    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1672;
+    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1664;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1680;
+    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1672;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1688;
+    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1680;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1696;
+    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_sync_star_entry_point_offset = 1704;
+    AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
+        1696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_sync_star_entry_point_offset = 1712;
-static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1720;
+    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1704;
 static constexpr dart::compiler::target::word
     AOT_Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -15617,19 +15486,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 560;
+    AOT_Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1784;
+    1768;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1792;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1824;
+    AOT_Thread_callback_stack_return_offset = 1776;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1808;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 680;
+    AOT_Thread_jump_to_frame_entry_point_offset = 672;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1832;
+    1816;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -15743,9 +15612,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        -1,   -1,   -1, -1, -1, 1496, 1504, 1512, -1,   -1,   1520,
-        1528, 1536, -1, -1, -1, 1544, 1552, 1560, 1568, 1576, 1584,
-        1592, 1600, -1, -1, -1, -1,   1608, 1616, 1624, 1632};
+        -1,   -1,   -1, -1, -1, 1488, 1496, 1504, -1,   -1,   1512,
+        1520, 1528, -1, -1, -1, 1536, 1544, 1552, 1560, 1568, 1576,
+        1584, 1592, -1, -1, -1, -1,   1600, 1608, 1616, 1624};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -16087,27 +15956,25 @@
 static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
     112;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_await_offset = 508;
+    AOT_ObjectStore_suspend_state_await_offset = 492;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_handle_exception_offset = 544;
+    AOT_ObjectStore_suspend_state_handle_exception_offset = 524;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_offset = 504;
+    AOT_ObjectStore_suspend_state_init_async_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_star_offset = 520;
+    AOT_ObjectStore_suspend_state_init_async_star_offset = 504;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_sync_star_offset = 532;
+    AOT_ObjectStore_suspend_state_init_sync_star_offset = 516;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_offset = 512;
+    AOT_ObjectStore_suspend_state_return_async_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 516;
+    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 500;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_star_offset = 528;
+    AOT_ObjectStore_suspend_state_return_async_star_offset = 512;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_sync_star_offset = 540;
+    AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_async_star_offset = 524;
-static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_sync_star_offset = 536;
+    AOT_ObjectStore_suspend_state_yield_async_star_offset = 508;
 static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
     12;
 static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 4;
@@ -16144,120 +16011,120 @@
 static constexpr dart::compiler::target::word
     AOT_SuspendState_then_callback_offset = 16;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 404;
+    AOT_Thread_AllocateArray_entry_point_offset = 400;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 836;
+    AOT_Thread_active_exception_offset = 828;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 840;
+    AOT_Thread_active_stacktrace_offset = 832;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 296;
+    AOT_Thread_array_write_barrier_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 304;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 308;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 304;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 312;
+    AOT_Thread_allocate_object_entry_point_offset = 308;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 316;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 312;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_parameterized_stub_offset = 196;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 320;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 316;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_slow_stub_offset = 200;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    876;
+    868;
 static constexpr dart::compiler::target::word
     AOT_Thread_async_exception_handler_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 368;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 364;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     120;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 360;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 356;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 300;
+    AOT_Thread_call_to_runtime_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
     AOT_Thread_call_to_runtime_stub_offset = 140;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    904;
+    896;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 880;
+    AOT_Thread_double_truncate_round_supported_offset = 872;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 908;
+    AOT_Thread_service_extension_stream_offset = 900;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    340;
+    336;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    252;
+    248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 344;
+    AOT_Thread_deoptimize_entry_offset = 340;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 256;
+    AOT_Thread_deoptimize_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 384;
+    AOT_Thread_double_abs_address_offset = 380;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 380;
+    AOT_Thread_double_negate_address_offset = 376;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 276;
+    AOT_Thread_enter_safepoint_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 856;
+    AOT_Thread_execution_state_offset = 848;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 280;
+    AOT_Thread_exit_safepoint_stub_offset = 276;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 284;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 288;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 284;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 348;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 344;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_allocation_stub_code_offset = 132;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_callers_target_code_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 396;
+    AOT_Thread_float_absolute_address_offset = 392;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 392;
+    AOT_Thread_float_negate_address_offset = 388;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 388;
+    AOT_Thread_float_not_address_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 400;
+    AOT_Thread_float_zerow_address_offset = 396;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 844;
+    AOT_Thread_global_object_pool_offset = 836;
 static constexpr dart::compiler::target::word
     AOT_Thread_invoke_dart_code_stub_offset = 136;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 872;
+    AOT_Thread_exit_through_ffi_offset = 864;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 40;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    912;
+    904;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 64;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 260;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 264;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 272;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 268;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 332;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 336;
+    AOT_Thread_switchable_call_miss_entry_offset = 332;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 236;
+    AOT_Thread_switchable_call_miss_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 364;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 360;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
@@ -16287,21 +16154,19 @@
     AOT_Thread_return_async_star_stub_offset = 220;
 static constexpr dart::compiler::target::word
     AOT_Thread_return_async_stub_offset = 212;
-static constexpr dart::compiler::target::word
-    AOT_Thread_return_sync_star_stub_offset = 224;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     112;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 372;
-static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 848;
+    AOT_Thread_predefined_symbols_address_offset = 368;
+static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 840;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 852;
+    AOT_Thread_saved_shadow_call_stack_offset = 844;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 860;
+    AOT_Thread_safepoint_state_offset = 852;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 268;
+    AOT_Thread_slow_type_test_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 356;
+    AOT_Thread_slow_type_test_entry_point_offset = 352;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     28;
 static constexpr dart::compiler::target::word
@@ -16309,37 +16174,36 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 328;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 324;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 232;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 228;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 324;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 228;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 224;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 76;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_await_entry_point_offset = 796;
+    AOT_Thread_suspend_state_await_entry_point_offset = 792;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_entry_point_offset = 792;
+    AOT_Thread_suspend_state_init_async_entry_point_offset = 788;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_entry_point_offset = 800;
+    AOT_Thread_suspend_state_return_async_entry_point_offset = 796;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 804;
+    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 800;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 808;
+    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 804;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 812;
+    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 808;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 816;
+    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 812;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 820;
+    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 816;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_sync_star_entry_point_offset = 824;
+    AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
+        820;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_sync_star_entry_point_offset = 828;
-static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 832;
+    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 824;
 static constexpr dart::compiler::target::word
     AOT_Thread_top_exit_frame_info_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_top_offset = 48;
@@ -16351,19 +16215,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 292;
+    AOT_Thread_write_barrier_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 32;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 36;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    864;
+    856;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 868;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 888;
+    AOT_Thread_callback_stack_return_offset = 860;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 880;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 352;
+    AOT_Thread_jump_to_frame_entry_point_offset = 348;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    896;
+    888;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -16476,7 +16340,7 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        760, 764, 768, 772, 776, -1, 780, -1, 784, 788, -1, -1, -1, -1, -1, -1};
+        756, 760, 764, 768, 772, -1, 776, -1, 780, 784, -1, -1, -1, -1, -1, -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     12;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8;
@@ -16817,27 +16681,25 @@
 static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_await_offset = 1016;
+    AOT_ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_handle_exception_offset = 1088;
+    AOT_ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_offset = 1008;
+    AOT_ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_star_offset = 1040;
+    AOT_ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_offset = 1024;
+    AOT_ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_star_offset = 1056;
+    AOT_ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
     16;
 static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -16874,120 +16736,120 @@
 static constexpr dart::compiler::target::word
     AOT_SuspendState_then_callback_offset = 32;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 784;
+    AOT_Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1672;
+    AOT_Thread_active_exception_offset = 1656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1680;
+    AOT_Thread_active_stacktrace_offset = 1664;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 568;
+    AOT_Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 600;
+    AOT_Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 608;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 616;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1752;
+    1736;
 static constexpr dart::compiler::target::word
     AOT_Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 576;
+    AOT_Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     AOT_Thread_call_to_runtime_stub_offset = 256;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1792;
+    1776;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1760;
+    AOT_Thread_double_truncate_round_supported_offset = 1744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1800;
+    AOT_Thread_service_extension_stream_offset = 1784;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    656;
+    648;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    480;
+    472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 664;
+    AOT_Thread_deoptimize_entry_offset = 656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 488;
+    AOT_Thread_deoptimize_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 744;
+    AOT_Thread_double_abs_address_offset = 736;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 736;
+    AOT_Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 528;
+    AOT_Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1712;
+    AOT_Thread_execution_state_offset = 1696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 536;
+    AOT_Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 552;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 672;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 768;
+    AOT_Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 760;
+    AOT_Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 752;
+    AOT_Thread_float_not_address_offset = 744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 776;
+    AOT_Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1688;
+    AOT_Thread_global_object_pool_offset = 1672;
 static constexpr dart::compiler::target::word
     AOT_Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1744;
+    AOT_Thread_exit_through_ffi_offset = 1728;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1808;
+    1792;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 496;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 504;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 520;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 640;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 648;
+    AOT_Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 448;
+    AOT_Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -17017,22 +16879,20 @@
     AOT_Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word
     AOT_Thread_return_async_stub_offset = 400;
-static constexpr dart::compiler::target::word
-    AOT_Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 720;
+    AOT_Thread_predefined_symbols_address_offset = 712;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1696;
+    1680;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1704;
+    AOT_Thread_saved_shadow_call_stack_offset = 1688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1720;
+    AOT_Thread_safepoint_state_offset = 1704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 512;
+    AOT_Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 688;
+    AOT_Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -17040,37 +16900,36 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_await_entry_point_offset = 1592;
+    AOT_Thread_suspend_state_await_entry_point_offset = 1584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_entry_point_offset = 1584;
+    AOT_Thread_suspend_state_init_async_entry_point_offset = 1576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_entry_point_offset = 1600;
+    AOT_Thread_suspend_state_return_async_entry_point_offset = 1592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1608;
+    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1600;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1616;
+    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1624;
+    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1632;
+    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1640;
+    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1632;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_sync_star_entry_point_offset = 1648;
+    AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
+        1640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_sync_star_entry_point_offset = 1656;
-static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1664;
+    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
     AOT_Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -17082,19 +16941,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 560;
+    AOT_Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1728;
+    1712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1736;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1768;
+    AOT_Thread_callback_stack_return_offset = 1720;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 680;
+    AOT_Thread_jump_to_frame_entry_point_offset = 672;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1776;
+    1760;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -17208,8 +17067,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1496, 1504, 1512, 1520, -1,   -1,   1528, 1536,
-        1544, 1552, 1560, -1,   1568, 1576, -1,   -1};
+        1488, 1496, 1504, 1512, -1,   -1,   1520, 1528,
+        1536, 1544, 1552, -1,   1560, 1568, -1,   -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -17553,27 +17412,25 @@
 static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_await_offset = 1016;
+    AOT_ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_handle_exception_offset = 1088;
+    AOT_ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_offset = 1008;
+    AOT_ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_star_offset = 1040;
+    AOT_ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_offset = 1024;
+    AOT_ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_star_offset = 1056;
+    AOT_ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
     16;
 static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -17610,120 +17467,120 @@
 static constexpr dart::compiler::target::word
     AOT_SuspendState_then_callback_offset = 32;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 784;
+    AOT_Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1736;
+    AOT_Thread_active_exception_offset = 1720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1744;
+    AOT_Thread_active_stacktrace_offset = 1728;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 568;
+    AOT_Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 600;
+    AOT_Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 608;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 616;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1816;
+    1800;
 static constexpr dart::compiler::target::word
     AOT_Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 576;
+    AOT_Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     AOT_Thread_call_to_runtime_stub_offset = 256;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1856;
+    1840;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1824;
+    AOT_Thread_double_truncate_round_supported_offset = 1808;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1864;
+    AOT_Thread_service_extension_stream_offset = 1848;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    656;
+    648;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    480;
+    472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 664;
+    AOT_Thread_deoptimize_entry_offset = 656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 488;
+    AOT_Thread_deoptimize_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 744;
+    AOT_Thread_double_abs_address_offset = 736;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 736;
+    AOT_Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 528;
+    AOT_Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1776;
+    AOT_Thread_execution_state_offset = 1760;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 536;
+    AOT_Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 552;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 672;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 768;
+    AOT_Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 760;
+    AOT_Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 752;
+    AOT_Thread_float_not_address_offset = 744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 776;
+    AOT_Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1752;
+    AOT_Thread_global_object_pool_offset = 1736;
 static constexpr dart::compiler::target::word
     AOT_Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1808;
+    AOT_Thread_exit_through_ffi_offset = 1792;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1872;
+    1856;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 496;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 504;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 520;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 640;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 648;
+    AOT_Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 448;
+    AOT_Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -17753,22 +17610,20 @@
     AOT_Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word
     AOT_Thread_return_async_stub_offset = 400;
-static constexpr dart::compiler::target::word
-    AOT_Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 720;
+    AOT_Thread_predefined_symbols_address_offset = 712;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1760;
+    1744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1768;
+    AOT_Thread_saved_shadow_call_stack_offset = 1752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1784;
+    AOT_Thread_safepoint_state_offset = 1768;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 512;
+    AOT_Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 688;
+    AOT_Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -17776,37 +17631,36 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_await_entry_point_offset = 1656;
+    AOT_Thread_suspend_state_await_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_entry_point_offset = 1648;
+    AOT_Thread_suspend_state_init_async_entry_point_offset = 1640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_entry_point_offset = 1664;
+    AOT_Thread_suspend_state_return_async_entry_point_offset = 1656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1672;
+    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1664;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1680;
+    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1672;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1688;
+    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1680;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1696;
+    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1704;
+    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_sync_star_entry_point_offset = 1712;
+    AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
+        1704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_sync_star_entry_point_offset = 1720;
-static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1728;
+    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1712;
 static constexpr dart::compiler::target::word
     AOT_Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -17818,19 +17672,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 560;
+    AOT_Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1792;
+    1776;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1800;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1832;
+    AOT_Thread_callback_stack_return_offset = 1784;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1816;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 680;
+    AOT_Thread_jump_to_frame_entry_point_offset = 672;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1840;
+    1824;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -17944,9 +17798,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1496, 1504, 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568, 1576,
-        1584, 1592, 1600, 1608, -1,   -1,   -1,   -1,   1616, 1624, -1,
-        -1,   1632, 1640, 1648, -1,   -1,   -1,   -1,   -1,   -1};
+        1488, 1496, 1504, 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568,
+        1576, 1584, 1592, 1600, -1,   -1,   -1,   -1,   1608, 1616, -1,
+        -1,   1624, 1632, 1640, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -18286,27 +18140,25 @@
 static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_await_offset = 1016;
+    AOT_ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_handle_exception_offset = 1088;
+    AOT_ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_offset = 1008;
+    AOT_ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_star_offset = 1040;
+    AOT_ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_offset = 1024;
+    AOT_ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_star_offset = 1056;
+    AOT_ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
     16;
 static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -18343,120 +18195,120 @@
 static constexpr dart::compiler::target::word
     AOT_SuspendState_then_callback_offset = 28;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 784;
+    AOT_Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1672;
+    AOT_Thread_active_exception_offset = 1656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1680;
+    AOT_Thread_active_stacktrace_offset = 1664;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 568;
+    AOT_Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 600;
+    AOT_Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 608;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 616;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1752;
+    1736;
 static constexpr dart::compiler::target::word
     AOT_Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 576;
+    AOT_Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     AOT_Thread_call_to_runtime_stub_offset = 256;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1792;
+    1776;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1760;
+    AOT_Thread_double_truncate_round_supported_offset = 1744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1800;
+    AOT_Thread_service_extension_stream_offset = 1784;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    656;
+    648;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    480;
+    472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 664;
+    AOT_Thread_deoptimize_entry_offset = 656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 488;
+    AOT_Thread_deoptimize_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 744;
+    AOT_Thread_double_abs_address_offset = 736;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 736;
+    AOT_Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 528;
+    AOT_Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1712;
+    AOT_Thread_execution_state_offset = 1696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 536;
+    AOT_Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 552;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 672;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 768;
+    AOT_Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 760;
+    AOT_Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 752;
+    AOT_Thread_float_not_address_offset = 744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 776;
+    AOT_Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1688;
+    AOT_Thread_global_object_pool_offset = 1672;
 static constexpr dart::compiler::target::word
     AOT_Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1744;
+    AOT_Thread_exit_through_ffi_offset = 1728;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1808;
+    1792;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 496;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 504;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 520;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 640;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 648;
+    AOT_Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 448;
+    AOT_Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -18486,22 +18338,20 @@
     AOT_Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word
     AOT_Thread_return_async_stub_offset = 400;
-static constexpr dart::compiler::target::word
-    AOT_Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 720;
+    AOT_Thread_predefined_symbols_address_offset = 712;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1696;
+    1680;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1704;
+    AOT_Thread_saved_shadow_call_stack_offset = 1688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1720;
+    AOT_Thread_safepoint_state_offset = 1704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 512;
+    AOT_Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 688;
+    AOT_Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -18509,37 +18359,36 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_await_entry_point_offset = 1592;
+    AOT_Thread_suspend_state_await_entry_point_offset = 1584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_entry_point_offset = 1584;
+    AOT_Thread_suspend_state_init_async_entry_point_offset = 1576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_entry_point_offset = 1600;
+    AOT_Thread_suspend_state_return_async_entry_point_offset = 1592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1608;
+    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1600;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1616;
+    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1608;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1624;
+    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1632;
+    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1640;
+    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1632;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_sync_star_entry_point_offset = 1648;
+    AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
+        1640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_sync_star_entry_point_offset = 1656;
-static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1664;
+    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
     AOT_Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -18551,19 +18400,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 560;
+    AOT_Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1728;
+    1712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1736;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1768;
+    AOT_Thread_callback_stack_return_offset = 1720;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 680;
+    AOT_Thread_jump_to_frame_entry_point_offset = 672;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1776;
+    1760;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -18677,8 +18526,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1496, 1504, 1512, 1520, -1,   -1,   1528, 1536,
-        1544, 1552, 1560, -1,   1568, 1576, -1,   -1};
+        1488, 1496, 1504, 1512, -1,   -1,   1520, 1528,
+        1536, 1544, 1552, -1,   1560, 1568, -1,   -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -19018,27 +18867,25 @@
 static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_await_offset = 1016;
+    AOT_ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_handle_exception_offset = 1088;
+    AOT_ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_offset = 1008;
+    AOT_ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_star_offset = 1040;
+    AOT_ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_offset = 1024;
+    AOT_ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_star_offset = 1056;
+    AOT_ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
     16;
 static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -19075,120 +18922,120 @@
 static constexpr dart::compiler::target::word
     AOT_SuspendState_then_callback_offset = 28;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 784;
+    AOT_Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1736;
+    AOT_Thread_active_exception_offset = 1720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1744;
+    AOT_Thread_active_stacktrace_offset = 1728;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 568;
+    AOT_Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 600;
+    AOT_Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 608;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 616;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1816;
+    1800;
 static constexpr dart::compiler::target::word
     AOT_Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 576;
+    AOT_Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     AOT_Thread_call_to_runtime_stub_offset = 256;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1856;
+    1840;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1824;
+    AOT_Thread_double_truncate_round_supported_offset = 1808;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1864;
+    AOT_Thread_service_extension_stream_offset = 1848;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    656;
+    648;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    480;
+    472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 664;
+    AOT_Thread_deoptimize_entry_offset = 656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 488;
+    AOT_Thread_deoptimize_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 744;
+    AOT_Thread_double_abs_address_offset = 736;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 736;
+    AOT_Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 528;
+    AOT_Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1776;
+    AOT_Thread_execution_state_offset = 1760;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 536;
+    AOT_Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 552;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 672;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 768;
+    AOT_Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 760;
+    AOT_Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 752;
+    AOT_Thread_float_not_address_offset = 744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 776;
+    AOT_Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1752;
+    AOT_Thread_global_object_pool_offset = 1736;
 static constexpr dart::compiler::target::word
     AOT_Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1808;
+    AOT_Thread_exit_through_ffi_offset = 1792;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1872;
+    1856;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 496;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 504;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 520;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 640;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 648;
+    AOT_Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 448;
+    AOT_Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -19218,22 +19065,20 @@
     AOT_Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word
     AOT_Thread_return_async_stub_offset = 400;
-static constexpr dart::compiler::target::word
-    AOT_Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 720;
+    AOT_Thread_predefined_symbols_address_offset = 712;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1760;
+    1744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1768;
+    AOT_Thread_saved_shadow_call_stack_offset = 1752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1784;
+    AOT_Thread_safepoint_state_offset = 1768;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 512;
+    AOT_Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 688;
+    AOT_Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -19241,37 +19086,36 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_await_entry_point_offset = 1656;
+    AOT_Thread_suspend_state_await_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_entry_point_offset = 1648;
+    AOT_Thread_suspend_state_init_async_entry_point_offset = 1640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_entry_point_offset = 1664;
+    AOT_Thread_suspend_state_return_async_entry_point_offset = 1656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1672;
+    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1664;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1680;
+    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1672;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1688;
+    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1680;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1696;
+    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1704;
+    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_sync_star_entry_point_offset = 1712;
+    AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
+        1704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_sync_star_entry_point_offset = 1720;
-static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1728;
+    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1712;
 static constexpr dart::compiler::target::word
     AOT_Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -19283,19 +19127,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 560;
+    AOT_Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1792;
+    1776;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1800;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1832;
+    AOT_Thread_callback_stack_return_offset = 1784;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1816;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 680;
+    AOT_Thread_jump_to_frame_entry_point_offset = 672;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1840;
+    1824;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -19409,9 +19253,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1496, 1504, 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568, 1576,
-        1584, 1592, 1600, 1608, -1,   -1,   -1,   -1,   1616, 1624, -1,
-        -1,   1632, 1640, 1648, -1,   -1,   -1,   -1,   -1,   -1};
+        1488, 1496, 1504, 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568,
+        1576, 1584, 1592, 1600, -1,   -1,   -1,   -1,   1608, 1616, -1,
+        -1,   1624, 1632, 1640, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
@@ -19751,27 +19595,25 @@
 static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
     112;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_await_offset = 508;
+    AOT_ObjectStore_suspend_state_await_offset = 492;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_handle_exception_offset = 544;
+    AOT_ObjectStore_suspend_state_handle_exception_offset = 524;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_offset = 504;
+    AOT_ObjectStore_suspend_state_init_async_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_star_offset = 520;
+    AOT_ObjectStore_suspend_state_init_async_star_offset = 504;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_sync_star_offset = 532;
+    AOT_ObjectStore_suspend_state_init_sync_star_offset = 516;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_offset = 512;
+    AOT_ObjectStore_suspend_state_return_async_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 516;
+    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 500;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_star_offset = 528;
+    AOT_ObjectStore_suspend_state_return_async_star_offset = 512;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_sync_star_offset = 540;
+    AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_async_star_offset = 524;
-static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_sync_star_offset = 536;
+    AOT_ObjectStore_suspend_state_yield_async_star_offset = 508;
 static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
     12;
 static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 4;
@@ -19808,120 +19650,120 @@
 static constexpr dart::compiler::target::word
     AOT_SuspendState_then_callback_offset = 16;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 404;
+    AOT_Thread_AllocateArray_entry_point_offset = 400;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 876;
+    AOT_Thread_active_exception_offset = 868;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 880;
+    AOT_Thread_active_stacktrace_offset = 872;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 296;
+    AOT_Thread_array_write_barrier_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 304;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 300;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 308;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 304;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 312;
+    AOT_Thread_allocate_object_entry_point_offset = 308;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 316;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 312;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_parameterized_stub_offset = 196;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 320;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 316;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_slow_stub_offset = 200;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    916;
+    908;
 static constexpr dart::compiler::target::word
     AOT_Thread_async_exception_handler_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 368;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 364;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     120;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 116;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 360;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 356;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 300;
+    AOT_Thread_call_to_runtime_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
     AOT_Thread_call_to_runtime_stub_offset = 140;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    944;
+    936;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 44;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 920;
+    AOT_Thread_double_truncate_round_supported_offset = 912;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 948;
+    AOT_Thread_service_extension_stream_offset = 940;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    340;
+    336;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    252;
+    248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 344;
+    AOT_Thread_deoptimize_entry_offset = 340;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 256;
+    AOT_Thread_deoptimize_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 384;
+    AOT_Thread_double_abs_address_offset = 380;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 380;
+    AOT_Thread_double_negate_address_offset = 376;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 52;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 276;
+    AOT_Thread_enter_safepoint_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 896;
+    AOT_Thread_execution_state_offset = 888;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 280;
+    AOT_Thread_exit_safepoint_stub_offset = 276;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 284;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 288;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 284;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 348;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 344;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_allocation_stub_code_offset = 132;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_callers_target_code_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 396;
+    AOT_Thread_float_absolute_address_offset = 392;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 392;
+    AOT_Thread_float_negate_address_offset = 388;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 388;
+    AOT_Thread_float_not_address_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 400;
+    AOT_Thread_float_zerow_address_offset = 396;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 884;
+    AOT_Thread_global_object_pool_offset = 876;
 static constexpr dart::compiler::target::word
     AOT_Thread_invoke_dart_code_stub_offset = 136;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 912;
+    AOT_Thread_exit_through_ffi_offset = 904;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 40;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    952;
+    944;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 64;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 260;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 264;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 260;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 272;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 268;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 80;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 332;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 336;
+    AOT_Thread_switchable_call_miss_entry_offset = 332;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 236;
+    AOT_Thread_switchable_call_miss_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 364;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 360;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
@@ -19951,21 +19793,19 @@
     AOT_Thread_return_async_star_stub_offset = 220;
 static constexpr dart::compiler::target::word
     AOT_Thread_return_async_stub_offset = 212;
-static constexpr dart::compiler::target::word
-    AOT_Thread_return_sync_star_stub_offset = 224;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     112;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 372;
-static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 888;
+    AOT_Thread_predefined_symbols_address_offset = 368;
+static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 880;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 892;
+    AOT_Thread_saved_shadow_call_stack_offset = 884;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 900;
+    AOT_Thread_safepoint_state_offset = 892;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 268;
+    AOT_Thread_slow_type_test_stub_offset = 264;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 356;
+    AOT_Thread_slow_type_test_entry_point_offset = 352;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     28;
 static constexpr dart::compiler::target::word
@@ -19973,37 +19813,36 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 60;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 328;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 324;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 232;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 228;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 324;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 320;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 228;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 224;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 76;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_await_entry_point_offset = 836;
+    AOT_Thread_suspend_state_await_entry_point_offset = 832;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_entry_point_offset = 832;
+    AOT_Thread_suspend_state_init_async_entry_point_offset = 828;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_entry_point_offset = 840;
+    AOT_Thread_suspend_state_return_async_entry_point_offset = 836;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 844;
+    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 840;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 848;
+    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 844;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 852;
+    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 848;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 856;
+    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 852;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 860;
+    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 856;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_sync_star_entry_point_offset = 864;
+    AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
+        860;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_sync_star_entry_point_offset = 868;
-static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 872;
+    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 864;
 static constexpr dart::compiler::target::word
     AOT_Thread_top_exit_frame_info_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_top_offset = 48;
@@ -20015,19 +19854,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 104;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 292;
+    AOT_Thread_write_barrier_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 32;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 36;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    904;
+    896;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 908;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 928;
+    AOT_Thread_callback_stack_return_offset = 900;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 920;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 352;
+    AOT_Thread_jump_to_frame_entry_point_offset = 348;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    936;
+    928;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -20140,9 +19979,9 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        -1,  -1,  -1, -1, -1, 760, 764, 768, -1,  -1,  772,
-        776, 780, -1, -1, -1, 784, 788, 792, 796, 800, 804,
-        808, 812, -1, -1, -1, -1,  816, 820, 824, 828};
+        -1,  -1,  -1, -1, -1, 756, 760, 764, -1,  -1,  768,
+        772, 776, -1, -1, -1, 780, 784, 788, 792, 796, 800,
+        804, 808, -1, -1, -1, -1,  812, 816, 820, 824};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     12;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8;
@@ -20483,27 +20322,25 @@
 static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
     224;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_await_offset = 1016;
+    AOT_ObjectStore_suspend_state_await_offset = 984;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_handle_exception_offset = 1088;
+    AOT_ObjectStore_suspend_state_handle_exception_offset = 1048;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_offset = 1008;
+    AOT_ObjectStore_suspend_state_init_async_offset = 976;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_async_star_offset = 1040;
+    AOT_ObjectStore_suspend_state_init_async_star_offset = 1008;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1064;
+    AOT_ObjectStore_suspend_state_init_sync_star_offset = 1032;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_offset = 1024;
+    AOT_ObjectStore_suspend_state_return_async_offset = 992;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1032;
+    AOT_ObjectStore_suspend_state_return_async_not_future_offset = 1000;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_async_star_offset = 1056;
+    AOT_ObjectStore_suspend_state_return_async_star_offset = 1024;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_return_sync_star_offset = 1080;
+    AOT_ObjectStore_suspend_state_suspend_sync_star_at_start_offset = 1040;
 static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1048;
-static constexpr dart::compiler::target::word
-    AOT_ObjectStore_suspend_state_yield_sync_star_offset = 1072;
+    AOT_ObjectStore_suspend_state_yield_async_star_offset = 1016;
 static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
     16;
 static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
@@ -20540,120 +20377,120 @@
 static constexpr dart::compiler::target::word
     AOT_SuspendState_then_callback_offset = 32;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 784;
+    AOT_Thread_AllocateArray_entry_point_offset = 776;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1728;
+    AOT_Thread_active_exception_offset = 1712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1736;
+    AOT_Thread_active_stacktrace_offset = 1720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 568;
+    AOT_Thread_array_write_barrier_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 600;
+    AOT_Thread_allocate_object_entry_point_offset = 592;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 608;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 600;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_parameterized_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 616;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 608;
 static constexpr dart::compiler::target::word
     AOT_Thread_allocate_object_slow_stub_offset = 376;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1808;
+    1792;
 static constexpr dart::compiler::target::word
     AOT_Thread_async_exception_handler_stub_offset = 384;
 static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 712;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 704;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
     216;
 static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 696;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 576;
+    AOT_Thread_call_to_runtime_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
     AOT_Thread_call_to_runtime_stub_offset = 256;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1848;
+    1832;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 88;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_truncate_round_supported_offset = 1816;
+    AOT_Thread_double_truncate_round_supported_offset = 1800;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1856;
+    AOT_Thread_service_extension_stream_offset = 1840;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    656;
+    648;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    480;
+    472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 664;
+    AOT_Thread_deoptimize_entry_offset = 656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 488;
+    AOT_Thread_deoptimize_stub_offset = 480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 744;
+    AOT_Thread_double_abs_address_offset = 736;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 736;
+    AOT_Thread_double_negate_address_offset = 728;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 528;
+    AOT_Thread_enter_safepoint_stub_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1768;
+    AOT_Thread_execution_state_offset = 1752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 536;
+    AOT_Thread_exit_safepoint_stub_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 544;
+    AOT_Thread_exit_safepoint_ignore_unwind_in_progress_stub_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 552;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 672;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 664;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_allocation_stub_code_offset = 240;
 static constexpr dart::compiler::target::word
     AOT_Thread_fix_callers_target_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 768;
+    AOT_Thread_float_absolute_address_offset = 760;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 760;
+    AOT_Thread_float_negate_address_offset = 752;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 752;
+    AOT_Thread_float_not_address_offset = 744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 776;
+    AOT_Thread_float_zerow_address_offset = 768;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1744;
+    AOT_Thread_global_object_pool_offset = 1728;
 static constexpr dart::compiler::target::word
     AOT_Thread_invoke_dart_code_stub_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1800;
+    AOT_Thread_exit_through_ffi_offset = 1784;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1864;
+    1848;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 496;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 504;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 520;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 512;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 640;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 632;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 648;
+    AOT_Thread_switchable_call_miss_entry_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 448;
+    AOT_Thread_switchable_call_miss_stub_offset = 440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 704;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 696;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
@@ -20683,22 +20520,20 @@
     AOT_Thread_return_async_star_stub_offset = 416;
 static constexpr dart::compiler::target::word
     AOT_Thread_return_async_stub_offset = 400;
-static constexpr dart::compiler::target::word
-    AOT_Thread_return_sync_star_stub_offset = 424;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
     200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 720;
+    AOT_Thread_predefined_symbols_address_offset = 712;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1752;
+    1736;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1760;
+    AOT_Thread_saved_shadow_call_stack_offset = 1744;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1776;
+    AOT_Thread_safepoint_state_offset = 1760;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 512;
+    AOT_Thread_slow_type_test_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 688;
+    AOT_Thread_slow_type_test_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     56;
 static constexpr dart::compiler::target::word
@@ -20706,37 +20541,36 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 632;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 440;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 624;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 432;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 424;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 152;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_await_entry_point_offset = 1648;
+    AOT_Thread_suspend_state_await_entry_point_offset = 1640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_entry_point_offset = 1640;
+    AOT_Thread_suspend_state_init_async_entry_point_offset = 1632;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_entry_point_offset = 1656;
+    AOT_Thread_suspend_state_return_async_entry_point_offset = 1648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1664;
+    AOT_Thread_suspend_state_return_async_not_future_entry_point_offset = 1656;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1672;
+    AOT_Thread_suspend_state_init_async_star_entry_point_offset = 1664;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1680;
+    AOT_Thread_suspend_state_yield_async_star_entry_point_offset = 1672;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1688;
+    AOT_Thread_suspend_state_return_async_star_entry_point_offset = 1680;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1696;
+    AOT_Thread_suspend_state_init_sync_star_entry_point_offset = 1688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_yield_sync_star_entry_point_offset = 1704;
+    AOT_Thread_suspend_state_suspend_sync_star_at_start_entry_point_offset =
+        1696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_return_sync_star_entry_point_offset = 1712;
-static constexpr dart::compiler::target::word
-    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1720;
+    AOT_Thread_suspend_state_handle_exception_entry_point_offset = 1704;
 static constexpr dart::compiler::target::word
     AOT_Thread_top_exit_frame_info_offset = 144;
 static constexpr dart::compiler::target::word AOT_Thread_top_offset = 96;
@@ -20748,19 +20582,19 @@
     AOT_Thread_unboxed_double_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 560;
+    AOT_Thread_write_barrier_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 64;
 static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset = 72;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1784;
+    1768;
 static constexpr dart::compiler::target::word
-    AOT_Thread_callback_stack_return_offset = 1792;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1824;
+    AOT_Thread_callback_stack_return_offset = 1776;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1808;
 static constexpr dart::compiler::target::word
-    AOT_Thread_jump_to_frame_entry_point_offset = 680;
+    AOT_Thread_jump_to_frame_entry_point_offset = 672;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1832;
+    1816;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -20874,9 +20708,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        -1,   -1,   -1, -1, -1, 1496, 1504, 1512, -1,   -1,   1520,
-        1528, 1536, -1, -1, -1, 1544, 1552, 1560, 1568, 1576, 1584,
-        1592, 1600, -1, -1, -1, -1,   1608, 1616, 1624, 1632};
+        -1,   -1,   -1, -1, -1, 1488, 1496, 1504, -1,   -1,   1512,
+        1520, 1528, -1, -1, -1, 1536, 1544, 1552, 1560, 1568, 1576,
+        1584, 1592, -1, -1, -1, -1,   1600, 1608, 1616, 1624};
 static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
     24;
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
diff --git a/runtime/vm/compiler/runtime_offsets_list.h b/runtime/vm/compiler/runtime_offsets_list.h
index 4b3ba6c..e1cd318 100644
--- a/runtime/vm/compiler/runtime_offsets_list.h
+++ b/runtime/vm/compiler/runtime_offsets_list.h
@@ -185,9 +185,8 @@
   FIELD(ObjectStore, suspend_state_return_async_offset)                        \
   FIELD(ObjectStore, suspend_state_return_async_not_future_offset)             \
   FIELD(ObjectStore, suspend_state_return_async_star_offset)                   \
-  FIELD(ObjectStore, suspend_state_return_sync_star_offset)                    \
+  FIELD(ObjectStore, suspend_state_suspend_sync_star_at_start_offset)          \
   FIELD(ObjectStore, suspend_state_yield_async_star_offset)                    \
-  FIELD(ObjectStore, suspend_state_yield_sync_star_offset)                     \
   FIELD(OneByteString, data_offset)                                            \
   FIELD(PointerBase, data_offset)                                              \
   FIELD(Pointer, type_arguments_offset)                                        \
@@ -281,7 +280,6 @@
   FIELD(Thread, return_async_not_future_stub_offset)                           \
   FIELD(Thread, return_async_star_stub_offset)                                 \
   FIELD(Thread, return_async_stub_offset)                                      \
-  FIELD(Thread, return_sync_star_stub_offset)                                  \
                                                                                \
   FIELD(Thread, object_null_offset)                                            \
   FIELD(Thread, predefined_symbols_address_offset)                             \
@@ -307,8 +305,7 @@
   FIELD(Thread, suspend_state_yield_async_star_entry_point_offset)             \
   FIELD(Thread, suspend_state_return_async_star_entry_point_offset)            \
   FIELD(Thread, suspend_state_init_sync_star_entry_point_offset)               \
-  FIELD(Thread, suspend_state_yield_sync_star_entry_point_offset)              \
-  FIELD(Thread, suspend_state_return_sync_star_entry_point_offset)             \
+  FIELD(Thread, suspend_state_suspend_sync_star_at_start_entry_point_offset)   \
   FIELD(Thread, suspend_state_handle_exception_entry_point_offset)             \
   FIELD(Thread, top_exit_frame_info_offset)                                    \
   FIELD(Thread, top_offset)                                                    \
diff --git a/runtime/vm/compiler/stub_code_compiler.cc b/runtime/vm/compiler/stub_code_compiler.cc
index 7dbc578..86f41d0 100644
--- a/runtime/vm/compiler/stub_code_compiler.cc
+++ b/runtime/vm/compiler/stub_code_compiler.cc
@@ -1379,6 +1379,7 @@
 
 void StubCodeCompiler::GenerateSuspendStub(
     Assembler* assembler,
+    bool call_suspend_function,
     intptr_t suspend_entry_point_offset_in_thread,
     intptr_t suspend_function_offset_in_object_store) {
   const Register kArgument = SuspendStubABI::kArgumentReg;
@@ -1516,17 +1517,28 @@
   }
 #endif
 
-  // Push arguments for suspend Dart function.
-  __ PushRegistersInOrder({kSuspendState, kArgument});
+  if (call_suspend_function) {
+    // Push arguments for suspend Dart function early to preserve them
+    // across write barrier.
+    __ PushRegistersInOrder({kSuspendState, kArgument});
+  }
 
   // Write barrier.
   __ BranchIfBit(kSuspendState, target::ObjectAlignment::kNewObjectBitPosition,
                  ZERO, &old_gen_object);
 
   __ Bind(&call_dart);
-  __ Comment("Call suspend Dart function");
-  CallDartCoreLibraryFunction(assembler, suspend_entry_point_offset_in_thread,
-                              suspend_function_offset_in_object_store);
+  if (call_suspend_function) {
+    __ Comment("Call suspend Dart function");
+    CallDartCoreLibraryFunction(assembler, suspend_entry_point_offset_in_thread,
+                                suspend_function_offset_in_object_store);
+  } else {
+    // SuspendStub returns either the result of Dart callback,
+    // or SuspendStub argument (if Dart callback is not used).
+    // The latter is used by yield/yield* in sync* functions
+    // to indicate that iteration should be continued.
+    __ MoveRegister(CallingConventions::kReturnReg, kArgument);
+  }
 
   __ LeaveStubFrame();
 
@@ -1585,6 +1597,11 @@
 
   __ Bind(&old_gen_object);
   __ Comment("Old gen SuspendState slow case");
+  if (!call_suspend_function) {
+    // Save kArgument which contains the return value
+    // if suspend function is not called.
+    __ PushRegister(kArgument);
+  }
   {
 #if defined(TARGET_ARCH_IA32)
     LeafRuntimeScope rt(assembler, /*frame_size=*/2 * target::kWordSize,
@@ -1599,11 +1616,15 @@
 #endif
     rt.Call(kEnsureRememberedAndMarkingDeferredRuntimeEntry, 2);
   }
+  if (!call_suspend_function) {
+    __ PopRegister(kArgument);
+  }
   __ Jump(&call_dart);
 }
 
 void StubCodeCompiler::GenerateAwaitStub(Assembler* assembler) {
   GenerateSuspendStub(assembler,
+                      /*call_suspend_function=*/true,
                       target::Thread::suspend_state_await_entry_point_offset(),
                       target::ObjectStore::suspend_state_await_offset());
 }
@@ -1611,15 +1632,25 @@
 void StubCodeCompiler::GenerateYieldAsyncStarStub(Assembler* assembler) {
   GenerateSuspendStub(
       assembler,
+      /*call_suspend_function=*/true,
       target::Thread::suspend_state_yield_async_star_entry_point_offset(),
       target::ObjectStore::suspend_state_yield_async_star_offset());
 }
 
-void StubCodeCompiler::GenerateYieldSyncStarStub(Assembler* assembler) {
+void StubCodeCompiler::GenerateSuspendSyncStarAtStartStub(
+    Assembler* assembler) {
   GenerateSuspendStub(
       assembler,
-      target::Thread::suspend_state_yield_sync_star_entry_point_offset(),
-      target::ObjectStore::suspend_state_yield_sync_star_offset());
+      /*call_suspend_function=*/true,
+      target::Thread::
+          suspend_state_suspend_sync_star_at_start_entry_point_offset(),
+      target::ObjectStore::suspend_state_suspend_sync_star_at_start_offset());
+}
+
+void StubCodeCompiler::GenerateSuspendSyncStarAtYieldStub(
+    Assembler* assembler) {
+  GenerateSuspendStub(assembler,
+                      /*call_suspend_function=*/false, -1, -1);
 }
 
 void StubCodeCompiler::GenerateInitSuspendableFunctionStub(
@@ -1901,14 +1932,6 @@
       target::Thread::return_async_star_stub_offset());
 }
 
-void StubCodeCompiler::GenerateReturnSyncStarStub(Assembler* assembler) {
-  GenerateReturnStub(
-      assembler,
-      target::Thread::suspend_state_return_sync_star_entry_point_offset(),
-      target::ObjectStore::suspend_state_return_sync_star_offset(),
-      target::Thread::return_sync_star_stub_offset());
-}
-
 void StubCodeCompiler::GenerateAsyncExceptionHandlerStub(Assembler* assembler) {
   const Register kSuspendState = AsyncExceptionHandlerStubABI::kSuspendStateReg;
   ASSERT(kSuspendState != kExceptionObjectReg);
diff --git a/runtime/vm/compiler/stub_code_compiler.h b/runtime/vm/compiler/stub_code_compiler.h
index 1ea42cb..7584cfb 100644
--- a/runtime/vm/compiler/stub_code_compiler.h
+++ b/runtime/vm/compiler/stub_code_compiler.h
@@ -201,6 +201,7 @@
 
   static void GenerateSuspendStub(
       Assembler* assembler,
+      bool call_suspend_function,
       intptr_t suspend_entry_point_offset_in_thread,
       intptr_t suspend_function_offset_in_object_store);
   static void GenerateInitSuspendableFunctionStub(
diff --git a/runtime/vm/constants_arm.h b/runtime/vm/constants_arm.h
index daba5cf..e95351c 100644
--- a/runtime/vm/constants_arm.h
+++ b/runtime/vm/constants_arm.h
@@ -533,7 +533,8 @@
   static const Register kResultReg = R0;
 };
 
-// ABI for SuspendStub (AwaitStub, YieldAsyncStarStub, YieldSyncStarStub).
+// ABI for SuspendStub (AwaitStub, YieldAsyncStarStub,
+// SuspendSyncStarAtStartStub, SuspendSyncStarAtYieldStub).
 struct SuspendStubABI {
   static const Register kArgumentReg = R0;
   static const Register kTempReg = R1;
@@ -567,7 +568,7 @@
 };
 
 // ABI for ReturnStub (ReturnAsyncStub, ReturnAsyncNotFutureStub,
-// ReturnAsyncStarStub, ReturnSyncStarStub).
+// ReturnAsyncStarStub).
 struct ReturnStubABI {
   static const Register kSuspendStateReg = R2;
 };
diff --git a/runtime/vm/constants_arm64.h b/runtime/vm/constants_arm64.h
index 92ca4a1..e183c93 100644
--- a/runtime/vm/constants_arm64.h
+++ b/runtime/vm/constants_arm64.h
@@ -367,7 +367,8 @@
   static const Register kResultReg = R0;
 };
 
-// ABI for SuspendStub (AwaitStub, YieldAsyncStarStub, YieldSyncStarStub).
+// ABI for SuspendStub (AwaitStub, YieldAsyncStarStub,
+// SuspendSyncStarAtStartStub, SuspendSyncStarAtYieldStub).
 struct SuspendStubABI {
   static const Register kArgumentReg = R0;
   static const Register kTempReg = R1;
@@ -401,7 +402,7 @@
 };
 
 // ABI for ReturnStub (ReturnAsyncStub, ReturnAsyncNotFutureStub,
-// ReturnAsyncStarStub, ReturnSyncStarStub).
+// ReturnAsyncStarStub).
 struct ReturnStubABI {
   static const Register kSuspendStateReg = R2;
 };
diff --git a/runtime/vm/constants_ia32.h b/runtime/vm/constants_ia32.h
index dbd0375..b3a0259 100644
--- a/runtime/vm/constants_ia32.h
+++ b/runtime/vm/constants_ia32.h
@@ -263,7 +263,8 @@
   static const Register kResultReg = EAX;
 };
 
-// ABI for SuspendStub (AwaitStub, YieldAsyncStarStub, YieldSyncStarStub).
+// ABI for SuspendStub (AwaitStub, YieldAsyncStarStub,
+// SuspendSyncStarAtStartStub, SuspendSyncStarAtYieldStub).
 struct SuspendStubABI {
   static const Register kArgumentReg = EAX;
   static const Register kTempReg = EDX;
@@ -306,7 +307,7 @@
 };
 
 // ABI for ReturnStub (ReturnAsyncStub, ReturnAsyncNotFutureStub,
-// ReturnAsyncStarStub, ReturnSyncStarStub).
+// ReturnAsyncStarStub).
 struct ReturnStubABI {
   static const Register kSuspendStateReg = EBX;
 };
diff --git a/runtime/vm/constants_riscv.h b/runtime/vm/constants_riscv.h
index 3fcfa47..ba130b9 100644
--- a/runtime/vm/constants_riscv.h
+++ b/runtime/vm/constants_riscv.h
@@ -377,7 +377,8 @@
   static constexpr Register kResultReg = A0;
 };
 
-// ABI for SuspendStub (AwaitStub, YieldAsyncStarStub, YieldSyncStarStub).
+// ABI for SuspendStub (AwaitStub, YieldAsyncStarStub,
+// SuspendSyncStarAtStartStub, SuspendSyncStarAtYieldStub).
 struct SuspendStubABI {
   static const Register kArgumentReg = A0;
   static const Register kTempReg = T0;
@@ -411,7 +412,7 @@
 };
 
 // ABI for ReturnStub (ReturnAsyncStub, ReturnAsyncNotFutureStub,
-// ReturnAsyncStarStub, ReturnSyncStarStub).
+// ReturnAsyncStarStub).
 struct ReturnStubABI {
   static const Register kSuspendStateReg = T1;
 };
diff --git a/runtime/vm/constants_x64.h b/runtime/vm/constants_x64.h
index 9354ac7..e011795 100644
--- a/runtime/vm/constants_x64.h
+++ b/runtime/vm/constants_x64.h
@@ -338,7 +338,8 @@
   static const Register kResultReg = RAX;
 };
 
-// ABI for SuspendStub (AwaitStub, YieldAsyncStarStub, YieldSyncStarStub).
+// ABI for SuspendStub (AwaitStub, YieldAsyncStarStub,
+// SuspendSyncStarAtStartStub, SuspendSyncStarAtYieldStub).
 struct SuspendStubABI {
   static const Register kArgumentReg = RAX;
   static const Register kTempReg = RDX;
@@ -377,7 +378,7 @@
 };
 
 // ABI for ReturnStub (ReturnAsyncStub, ReturnAsyncNotFutureStub,
-// ReturnAsyncStarStub, ReturnSyncStarStub).
+// ReturnAsyncStarStub).
 struct ReturnStubABI {
   static const Register kSuspendStateReg = RBX;
 };
diff --git a/runtime/vm/dart_api_impl.cc b/runtime/vm/dart_api_impl.cc
index adac74b..32954d6 100644
--- a/runtime/vm/dart_api_impl.cc
+++ b/runtime/vm/dart_api_impl.cc
@@ -5503,8 +5503,10 @@
   // is not correct because main can be in the exported namespace of a library
   // or it could be a getter.
   if (tmp.IsNull()) {
-    return Api::NewError("%s: The binary program does not contain 'main'.",
-                         CURRENT_FUNC);
+    return Api::NewError(
+        "Invoked Dart programs must have a 'main' function defined:\n"
+        "https://dart.dev/guides/language/"
+        "language-tour#a-basic-dart-program");
   }
   library ^= tmp.ptr();
   IG->object_store()->set_root_library(library);
diff --git a/runtime/vm/debugger.cc b/runtime/vm/debugger.cc
index ec145d7..e2259d3 100644
--- a/runtime/vm/debugger.cc
+++ b/runtime/vm/debugger.cc
@@ -132,8 +132,7 @@
   ASSERT(script_url.Equals(func_url));
 #endif  // defined(DEBUG)
   ASSERT(!IsLatent());
-  ASSERT(func.is_generated_body() ||
-         token_pos.IsWithin(func.token_pos(), func.end_token_pos()));
+  ASSERT(token_pos.IsWithin(func.token_pos(), func.end_token_pos()));
   ASSERT(func.is_debuggable());
   token_pos_.store(token_pos);
   end_token_pos_.store(token_pos);
@@ -722,67 +721,16 @@
   return context_level_;
 }
 
-ObjectPtr ActivationFrame::GetAsyncContextVariable(const String& name) {
-  if (!function_.IsAsyncClosure() && !function_.IsAsyncGenClosure()) {
-    return Object::null();
-  }
-  GetVarDescriptors();
-  intptr_t var_ctxt_level = -1;
-  intptr_t ctxt_slot = -1;
-  intptr_t var_desc_len = var_descriptors_.Length();
-  for (intptr_t i = 0; i < var_desc_len; i++) {
-    UntaggedLocalVarDescriptors::VarInfo var_info;
-    var_descriptors_.GetInfo(i, &var_info);
-    if (var_descriptors_.GetName(i) == name.ptr()) {
-      const int8_t kind = var_info.kind();
-      if (!live_frame_) {
-        ASSERT(kind == UntaggedLocalVarDescriptors::kContextVar);
-      }
-      const auto variable_index = VariableIndex(var_info.index());
-      if (kind == UntaggedLocalVarDescriptors::kStackVar) {
-        return GetStackVar(variable_index);
-      } else {
-        ASSERT(kind == UntaggedLocalVarDescriptors::kContextVar);
-        var_ctxt_level = var_info.scope_id;
-        ctxt_slot = variable_index.value();
-        break;
-      }
-    }
-  }
-  if (var_ctxt_level >= 0) {
-    if (!live_frame_) {
-      ASSERT(!ctx_.IsNull());
-      // Compiled code uses relative context levels, i.e. the frame context
-      // level is always 0 on entry.
-      const intptr_t frame_ctx_level = 0;
-      return GetRelativeContextVar(var_ctxt_level, ctxt_slot, frame_ctx_level);
-    }
-    return GetContextVar(var_ctxt_level, ctxt_slot);
-  }
-  return Object::null();
-}
-
 ObjectPtr ActivationFrame::GetAsyncAwaiter(
     CallerClosureFinder* caller_closure_finder) {
   if (fp() != 0 && !function_.IsNull()) {
-    if (function_.IsCompactAsyncFunction() ||
-        function_.IsCompactAsyncStarFunction()) {
+    if (function_.IsAsyncFunction() || function_.IsAsyncGenerator()) {
       const auto& suspend_state = Object::Handle(GetSuspendStateVar());
       if (caller_closure_finder->WasPreviouslySuspended(function_,
                                                         suspend_state)) {
         return caller_closure_finder->FindCallerFromSuspendState(
             SuspendState::Cast(suspend_state));
       }
-    } else if (function_.IsAsyncClosure() || function_.IsAsyncGenClosure()) {
-      // Look up caller's closure on the stack.
-      ObjectPtr* last_caller_obj = reinterpret_cast<ObjectPtr*>(GetCallerSp());
-      Closure& closure = Closure::Handle();
-      closure = StackTraceUtils::FindClosureInFrame(last_caller_obj, function_);
-
-      if (!closure.IsNull() && caller_closure_finder->IsRunningAsync(closure)) {
-        closure = caller_closure_finder->FindCaller(closure);
-        return closure.ptr();
-      }
     }
   }
 
@@ -829,22 +777,8 @@
     try_index = handlers.OuterTryIndex(try_index);
   }
   // Async functions might have indirect exception handlers in the form of
-  // `Future.catchError`. Check the Closure's _FutureListeners.
-  if ((fp() != 0) &&
-      (function().IsAsyncClosure() || function().IsAsyncGenClosure())) {
-    CallerClosureFinder caller_closure_finder(Thread::Current()->zone());
-    ObjectPtr* last_caller_obj = reinterpret_cast<ObjectPtr*>(GetCallerSp());
-    Closure& closure = Closure::Handle(
-        StackTraceUtils::FindClosureInFrame(last_caller_obj, function()));
-    if (!caller_closure_finder.IsRunningAsync(closure)) {
-      return false;
-    }
-    Object& futureOrListener =
-        Object::Handle(caller_closure_finder.GetAsyncFuture(closure));
-    futureOrListener =
-        caller_closure_finder.GetFutureFutureListener(futureOrListener);
-    return caller_closure_finder.HasCatchError(futureOrListener);
-  } else if ((fp() != 0) && function().IsCompactAsyncFunction()) {
+  // `Future.catchError`. Check _FutureListeners.
+  if ((fp() != 0) && function().IsAsyncFunction()) {
     CallerClosureFinder caller_closure_finder(Thread::Current()->zone());
     auto& suspend_state = Object::Handle(GetSuspendStateVar());
     if (!caller_closure_finder.WasPreviouslySuspended(function(),
@@ -861,70 +795,9 @@
   return false;
 }
 
-intptr_t ActivationFrame::GetAwaitJumpVariable() {
-  GetVarDescriptors();
-  intptr_t var_ctxt_level = -1;
-  intptr_t ctxt_slot = -1;
-  intptr_t var_desc_len = var_descriptors_.Length();
-  intptr_t await_jump_var = -1;
-  for (intptr_t i = 0; i < var_desc_len; i++) {
-    UntaggedLocalVarDescriptors::VarInfo var_info;
-    var_descriptors_.GetInfo(i, &var_info);
-    const int8_t kind = var_info.kind();
-    if (var_descriptors_.GetName(i) == Symbols::AwaitJumpVar().ptr()) {
-      ASSERT(kind == UntaggedLocalVarDescriptors::kContextVar);
-      ASSERT(!ctx_.IsNull());
-      var_ctxt_level = var_info.scope_id;
-      ctxt_slot = var_info.index();
-      break;
-    }
-  }
-  if (var_ctxt_level >= 0) {
-    Object& await_jump_index = Object::Handle(ctx_.At(ctxt_slot));
-    ASSERT(await_jump_index.IsSmi());
-    await_jump_var = Smi::Cast(await_jump_index).Value();
-  }
-  return await_jump_var;
-}
-
-void ActivationFrame::ExtractTokenPositionFromAsyncClosure() {
-  // Attempt to determine the token pos and try index from the async closure.
-  Thread* thread = Thread::Current();
-  Zone* zone = thread->zone();
-
-  ASSERT(function_.IsAsyncGenClosure() || function_.IsAsyncClosure());
-  // This should only be called on frames that aren't active on the stack.
-  ASSERT(fp() == 0);
-
-  const intptr_t await_jump_var = GetAwaitJumpVariable();
-  if (await_jump_var < 0) {
-    return;
-  }
-
-  const auto& pc_descriptors =
-      PcDescriptors::Handle(zone, code().pc_descriptors());
-  ASSERT(!pc_descriptors.IsNull());
-  PcDescriptors::Iterator it(pc_descriptors, UntaggedPcDescriptors::kOther);
-  while (it.MoveNext()) {
-    if (it.YieldIndex() == await_jump_var) {
-      try_index_ = it.TryIndex();
-      token_pos_ = it.TokenPos();
-      token_pos_initialized_ = true;
-      return;
-    }
-  }
-}
-
 bool ActivationFrame::IsAsyncMachinery() const {
   ASSERT(!function_.IsNull());
   auto isolate_group = IsolateGroup::Current();
-  if (function_.ptr() ==
-          isolate_group->object_store()->complete_on_async_return() ||
-      function_.ptr() == isolate_group->object_store()
-                             ->complete_with_no_future_on_async_return()) {
-    // We are completing an async function's completer.
-    return true;
-  }
   if (function_.Owner() ==
       isolate_group->object_store()->async_star_stream_controller()) {
     // We are inside the async* stream controller code.
@@ -967,13 +840,6 @@
   return ctx_;
 }
 
-ObjectPtr ActivationFrame::GetAsyncOperation() {
-  if (function().name() == Symbols::AsyncOperation().ptr()) {
-    return GetParameter(0);
-  }
-  return Object::null();
-}
-
 ActivationFrame* DebuggerStackTrace::GetHandlerFrame(
     const Instance& exc_obj) const {
   for (intptr_t frame_index = 0; frame_index < Length(); frame_index++) {
@@ -1647,8 +1513,6 @@
       stepping_fp_(0),
       last_stepping_fp_(0),
       last_stepping_pos_(TokenPosition::kNoSource),
-      async_stepping_fp_(0),
-      top_frame_awaiter_(Object::null()),
       skip_next_step_(false),
       synthetic_async_breakpoint_(NULL),
       exc_pause_info_(kNoPauseOnExceptions) {}
@@ -1704,25 +1568,11 @@
     }
     return false;
   }
-  if (top_frame->function().IsCompactAsyncFunction() ||
-      top_frame->function().IsCompactAsyncStarFunction()) {
-    const auto& function_data =
-        Object::Handle(top_frame->GetSuspendableFunctionData());
-    SetBreakpointAtResumption(function_data);
-    return true;
-  }
-  Object& closure = Object::Handle(top_frame->GetAsyncOperation());
-  ASSERT(!closure.IsNull());
-  ASSERT(closure.IsInstance());
-  ASSERT(Instance::Cast(closure).IsClosure());
-  Breakpoint* bpt = SetBreakpointAtActivation(Instance::Cast(closure), true);
-  if (bpt == NULL) {
-    // Unable to set the breakpoint.
-    if (error != nullptr) {
-      *error = "Unable to set breakpoint at async suspension point";
-    }
-    return false;
-  }
+  ASSERT(top_frame->function().IsAsyncFunction() ||
+         top_frame->function().IsAsyncGenerator());
+  const auto& function_data =
+      Object::Handle(top_frame->GetSuspendableFunctionData());
+  SetBreakpointAtResumption(function_data);
   return true;
 }
 
@@ -2062,7 +1912,6 @@
   Closure& async_activation = Closure::Handle(zone);
   Array& deopt_frame = Array::Handle(zone);
   bool stack_has_async_function = false;
-  Closure& closure = Closure::Handle();
 
   CallerClosureFinder caller_closure_finder(zone);
 
@@ -2083,25 +1932,7 @@
     // Simple frame. Just add the one.
     if (!code.is_optimized()) {
       function = code.function();
-      if (function.IsAsyncClosure() || function.IsAsyncGenClosure()) {
-        ActivationFrame* activation = CollectDartFrame(
-            isolate, frame->pc(), frame, code, Object::null_array(), 0,
-            ActivationFrame::kAsyncActivation);
-        ASSERT(activation != nullptr);
-        stack_trace->AddActivation(activation);
-        stack_has_async_function = true;
-        // Grab the awaiter.
-        async_activation ^= activation->GetAsyncAwaiter(&caller_closure_finder);
-        // Bail if we've reach the end of sync execution stack.
-        ObjectPtr* last_caller_obj =
-            reinterpret_cast<ObjectPtr*>(frame->GetCallerSp());
-        closure =
-            StackTraceUtils::FindClosureInFrame(last_caller_obj, function);
-        if (caller_closure_finder.IsRunningAsync(closure)) {
-          break;
-        }
-      } else if (function.IsCompactAsyncFunction() ||
-                 function.IsCompactAsyncStarFunction()) {
+      if (function.IsAsyncFunction() || function.IsAsyncGenerator()) {
         ActivationFrame* activation = CollectDartFrame(
             isolate, frame->pc(), frame, code, Object::null_array(), 0,
             ActivationFrame::kAsyncActivation);
@@ -2152,9 +1983,7 @@
       }
 
       intptr_t deopt_frame_offset = it.GetDeoptFpOffset();
-      if (function.IsAsyncClosure() || function.IsAsyncGenClosure() ||
-          function.IsCompactAsyncFunction() ||
-          function.IsCompactAsyncStarFunction()) {
+      if (function.IsAsyncFunction() || function.IsAsyncGenerator()) {
         ActivationFrame* activation = CollectDartFrame(
             isolate, it.pc(), frame, inlined_code, deopt_frame,
             deopt_frame_offset, ActivationFrame::kAsyncActivation);
@@ -2187,10 +2016,6 @@
          async_activation.context() != Object::null()) {
     ActivationFrame* activation =
         new (zone) ActivationFrame(async_activation, &caller_closure_finder);
-    if (activation->function().IsAsyncClosure() ||
-        activation->function().IsAsyncGenClosure()) {
-      activation->ExtractTokenPositionFromAsyncClosure();
-    }
     stack_trace->AddActivation(activation);
     if (FLAG_trace_debugger_stacktrace) {
       OS::PrintErr(
@@ -2327,19 +2152,6 @@
   }
 
   auto& handler_function = Function::Handle(handler_frame->function().ptr());
-  // If the handler function is an synthetic inner function, we need to look for
-  // the annotations on the outer function.
-  if (handler_function.IsAsyncClosure()) {
-    // async :async_op
-    handler_function = handler_function.parent_function();
-  } else if (handler_frame->function().IsAsyncGenClosure()) {
-    // async* :async_op
-    handler_function = handler_function.parent_function();
-  } else if (handler_frame->function().IsSyncGenClosure()) {
-    // sync* :sync_op + :sync_op_gen
-    handler_function = handler_function.parent_function();
-    handler_function = handler_function.parent_function();
-  }
 
   // If handler_frame's function is annotated with
   // @pragma('vm:notify-debugger-on-exception'), we specifically want to notify
@@ -3101,11 +2913,7 @@
 Breakpoint* Debugger::SetBreakpointAtEntry(const Function& target_function,
                                            bool single_shot) {
   ASSERT(!target_function.IsNull());
-  // AsyncFunction is marked not debuggable. When target_function is an async
-  // function, it is actually referring the inner async_op. Allow the
-  // breakpoint to be set, it will get resolved correctly when inner async_op
-  // gets compiled.
-  if (!target_function.is_debuggable() && !target_function.IsAsyncFunction()) {
+  if (!target_function.is_debuggable()) {
     return NULL;
   }
   const Script& script = Script::Handle(target_function.script());
@@ -3374,26 +3182,6 @@
     return;
   }
   Function& resolved_function = Function::Handle(function.ptr());
-  // Synchronous generators have the form:
-  //
-  // user_func sync* {
-  //   :sync_op_gen() {
-  //     :sync_op(..) yielding {
-  //       // ...
-  //     }
-  //   }
-  // }
-  //
-  // Setting a breakpoint in a sync* function should result in a code
-  // breakpoint being inserted into the synthetic :sync_op(..) function node.
-  // In order to ensure we're setting the breakpoint in the right function,
-  // we need to be able to check against the token positions of the
-  // non-synthetic function. Note, we only check for the innermost synthetic
-  // method as this is where the user's code will execute.
-  if (function.IsSyncGenClosure()) {
-    resolved_function ^= function.parent_function();
-    resolved_function ^= resolved_function.parent_function();
-  }
   auto thread = Thread::Current();
   auto zone = thread->zone();
 
@@ -3445,7 +3233,6 @@
     loc->VisitObjectPointers(visitor);
     loc = loc->next();
   }
-  visitor->VisitPointer(reinterpret_cast<ObjectPtr*>(&top_frame_awaiter_));
   for (intptr_t i = 0, n = breakpoints_at_resumption_.length(); i < n; ++i) {
     visitor->VisitPointer(&breakpoints_at_resumption_[i]);
   }
@@ -3500,14 +3287,13 @@
 }
 
 void Debugger::EnterSingleStepMode() {
-  ResetSteppingFramePointers();
+  ResetSteppingFramePointer();
   DeoptimizeWorld();
   NotifySingleStepping(true);
 }
 
-void Debugger::ResetSteppingFramePointers() {
+void Debugger::ResetSteppingFramePointer() {
   stepping_fp_ = 0;
-  async_stepping_fp_ = 0;
 }
 
 bool Debugger::SteppedForSyntheticAsyncBreakpoint() const {
@@ -3521,32 +3307,6 @@
   }
 }
 
-void Debugger::RememberTopFrameAwaiter() {
-  if (!FLAG_async_debugger) {
-    return;
-  }
-  if (stack_trace_->Length() > 0) {
-    CallerClosureFinder caller_closure_finder(Thread::Current()->zone());
-    top_frame_awaiter_ =
-        stack_trace_->FrameAt(0)->GetAsyncAwaiter(&caller_closure_finder);
-  } else {
-    top_frame_awaiter_ = Object::null();
-  }
-}
-
-void Debugger::SetAsyncSteppingFramePointer(DebuggerStackTrace* stack_trace) {
-  if (!FLAG_async_debugger) {
-    return;
-  }
-  if ((stack_trace->Length()) > 0 &&
-      (stack_trace->FrameAt(0)->function().IsAsyncClosure() ||
-       stack_trace->FrameAt(0)->function().IsAsyncGenClosure())) {
-    async_stepping_fp_ = stack_trace->FrameAt(0)->fp();
-  } else {
-    async_stepping_fp_ = 0;
-  }
-}
-
 void Debugger::SetSyncSteppingFramePointer(DebuggerStackTrace* stack_trace) {
   if (stack_trace->Length() > 0) {
     stepping_fp_ = stack_trace->FrameAt(0)->fp();
@@ -3557,8 +3317,7 @@
 
 void Debugger::HandleSteppingRequest(DebuggerStackTrace* stack_trace,
                                      bool skip_next_step) {
-  ResetSteppingFramePointers();
-  RememberTopFrameAwaiter();
+  ResetSteppingFramePointer();
   if (resume_action_ == kStepInto) {
     // When single stepping, we need to deoptimize because we might be
     // stepping into optimized code.  This happens in particular if
@@ -3568,7 +3327,6 @@
     DeoptimizeWorld();
     NotifySingleStepping(true);
     skip_next_step_ = skip_next_step;
-    SetAsyncSteppingFramePointer(stack_trace);
     if (FLAG_verbose_debug) {
       OS::PrintErr("HandleSteppingRequest- kStepInto\n");
     }
@@ -3577,16 +3335,13 @@
     NotifySingleStepping(true);
     skip_next_step_ = skip_next_step;
     SetSyncSteppingFramePointer(stack_trace);
-    SetAsyncSteppingFramePointer(stack_trace);
     if (FLAG_verbose_debug) {
       OS::PrintErr("HandleSteppingRequest- kStepOver %" Px "\n", stepping_fp_);
     }
   } else if (resume_action_ == kStepOut) {
     if (FLAG_async_debugger) {
-      if (stack_trace->FrameAt(0)->function().IsAsyncClosure() ||
-          stack_trace->FrameAt(0)->function().IsAsyncGenClosure() ||
-          stack_trace->FrameAt(0)->function().IsCompactAsyncFunction() ||
-          stack_trace->FrameAt(0)->function().IsCompactAsyncStarFunction()) {
+      if (stack_trace->FrameAt(0)->function().IsAsyncFunction() ||
+          stack_trace->FrameAt(0)->function().IsAsyncGenerator()) {
         CallerClosureFinder caller_closure_finder(Thread::Current()->zone());
         // Request to step out of an async/async* closure.
         const Object& async_op = Object::Handle(
@@ -3962,7 +3717,7 @@
 
 void Debugger::SignalPausedEvent(ActivationFrame* top_frame, Breakpoint* bpt) {
   set_resume_action(kContinue);
-  ResetSteppingFramePointers();
+  ResetSteppingFramePointer();
   NotifySingleStepping(false);
   ASSERT(!IsPaused());
   if ((bpt != NULL) && bpt->IsSingleShot()) {
@@ -3979,17 +3734,9 @@
 
 static bool IsAtAsyncJump(ActivationFrame* top_frame) {
   Zone* zone = Thread::Current()->zone();
-  if (!top_frame->function().IsCompactAsyncFunction() &&
-      !top_frame->function().IsCompactAsyncStarFunction()) {
-    Object& closure_or_null =
-        Object::Handle(zone, top_frame->GetAsyncOperation());
-    if (closure_or_null.IsNull()) {
-      return false;
-    }
-    ASSERT(top_frame->function().IsAsyncClosure() ||
-           top_frame->function().IsAsyncGenClosure());
-    ASSERT(closure_or_null.IsInstance());
-    ASSERT(Instance::Cast(closure_or_null).IsClosure());
+  if (!top_frame->function().IsAsyncFunction() &&
+      !top_frame->function().IsAsyncGenerator()) {
+    return false;
   }
   const auto& pc_descriptors =
       PcDescriptors::Handle(zone, top_frame->code().pc_descriptors());
@@ -4026,27 +3773,6 @@
   ActivationFrame* frame = TopDartFrame();
   ASSERT(frame != NULL);
 
-  if (FLAG_async_debugger) {
-    if ((async_stepping_fp_ != 0) && (top_frame_awaiter_ != Object::null())) {
-      // Check if the user has single stepped out of an async function with
-      // an awaiter. The first check handles the case of calling into the
-      // async machinery as we finish the async function. The second check
-      // handles the case of returning from an async function.
-      const ActivationFrame::Relation relation =
-          frame->CompareTo(async_stepping_fp_);
-      const bool exited_async_function =
-          (relation == ActivationFrame::kCallee && frame->IsAsyncMachinery()) ||
-          relation == ActivationFrame::kCaller;
-      if (exited_async_function) {
-        // Step to the top frame awaiter.
-        const Object& async_op = Object::Handle(top_frame_awaiter_);
-        top_frame_awaiter_ = Object::null();
-        AsyncStepInto(Closure::Cast(async_op));
-        return Error::null();
-      }
-    }
-  }
-
   if (stepping_fp_ != 0) {
     // There is an "interesting frame" set. Only pause at appropriate
     // locations in this frame.
@@ -4059,35 +3785,7 @@
       // We returned from the "interesting frame", there can be no more
       // stepping breaks for it. Pause at the next appropriate location
       // and let the user set the "interesting" frame again.
-      ResetSteppingFramePointers();
-    }
-  }
-
-  // We need to manually set a synthetic breakpoint for async_op before entry.
-  // async and async* functions always contain synthetic async_ops.
-  if ((frame->function().IsAsyncFunction() ||
-       frame->function().IsAsyncGenerator()) &&
-      !frame->function().IsSuspendableFunction()) {
-    ASSERT(!frame->GetSavedCurrentContext().IsNull());
-    ASSERT(frame->GetSavedCurrentContext().num_variables() >
-           Context::kAsyncFutureIndex);
-
-    const Object& async_future = Object::Handle(
-        frame->GetSavedCurrentContext().At(Context::kAsyncFutureIndex));
-
-    // Only set breakpoint when entering async_op the first time.
-    // :async_future should be uninitialised at this point:
-    if (async_future.IsNull()) {
-      const Function& async_op = Function::Handle(
-          ClosureFunctionsCache::GetUniqueInnerClosure(frame->function()));
-      if (!async_op.IsNull()) {
-        SetBreakpointAtAsyncOp(async_op);
-        // After setting the breakpoint we stop stepping and continue the
-        // debugger until the next breakpoint, to step over all the
-        // synthetic code.
-        Continue();
-        return Error::null();
-      }
+      ResetSteppingFramePointer();
     }
   }
 
@@ -4107,8 +3805,8 @@
 
   // TODO(dartbug.com/48378): Consider aligning async/async* functions
   // with regular function wrt the first stop in the function prologue.
-  if ((frame->function().IsCompactAsyncFunction() ||
-       frame->function().IsCompactAsyncStarFunction()) &&
+  if ((frame->function().IsAsyncFunction() ||
+       frame->function().IsAsyncGenerator()) &&
       frame->GetSuspendStateVar() == Object::null()) {
     return Error::null();
   }
@@ -4739,7 +4437,7 @@
 
 void Debugger::Continue() {
   SetResumeAction(kContinue);
-  ResetSteppingFramePointers();
+  ResetSteppingFramePointer();
   NotifySingleStepping(false);
 }
 
diff --git a/runtime/vm/debugger.h b/runtime/vm/debugger.h
index 56dfd6d..625d148 100644
--- a/runtime/vm/debugger.h
+++ b/runtime/vm/debugger.h
@@ -388,7 +388,6 @@
   ObjectPtr GetReceiver();
 
   const Context& GetSavedCurrentContext();
-  ObjectPtr GetAsyncOperation();
   ObjectPtr GetSuspendStateVar();
   ObjectPtr GetSuspendableFunctionData();
 
@@ -426,14 +425,6 @@
   void GetVarDescriptors();
   void GetDescIndices();
 
-  ObjectPtr GetAsyncContextVariable(const String& name);
-
-  // Get the current continuation index in the :await_jump_var pulled from the
-  // context.
-  intptr_t GetAwaitJumpVariable();
-
-  void ExtractTokenPositionFromAsyncClosure();
-
   bool IsAsyncMachinery() const;
 
   static const char* KindToCString(Kind kind) {
@@ -912,11 +903,9 @@
                               const Code& code,
                               intptr_t post_deopt_frame_index);
 
-  void ResetSteppingFramePointers();
+  void ResetSteppingFramePointer();
   bool SteppedForSyntheticAsyncBreakpoint() const;
   void CleanupSyntheticAsyncBreakpoint();
-  void RememberTopFrameAwaiter();
-  void SetAsyncSteppingFramePointer(DebuggerStackTrace* stack_trace);
   void SetSyncSteppingFramePointer(DebuggerStackTrace* stack_trace);
 
   GroupDebugger* group_debugger() { return isolate_->group()->debugger(); }
@@ -961,10 +950,6 @@
   uword last_stepping_fp_;
   TokenPosition last_stepping_pos_;
 
-  // Used to track the current async/async* function.
-  uword async_stepping_fp_;
-  ObjectPtr top_frame_awaiter_;
-
   // If we step while at a breakpoint, we would hit the same pc twice.
   // We use this field to let us skip the next single-step after a
   // breakpoint.
diff --git a/runtime/vm/deopt_instructions.cc b/runtime/vm/deopt_instructions.cc
index 11e6086..20eec15 100644
--- a/runtime/vm/deopt_instructions.cc
+++ b/runtime/vm/deopt_instructions.cc
@@ -372,7 +372,7 @@
   }
 
   // Since this is the only step where GC can occur during deoptimization,
-  // use it to report the source line where deoptimization occured.
+  // use it to report the source line where deoptimization occurred.
   if (FLAG_trace_deoptimization || FLAG_trace_deoptimization_verbose) {
     DartFrameIterator iterator(Thread::Current(),
                                StackFrameIterator::kNoCrossThreadIteration);
diff --git a/runtime/vm/dwarf.cc b/runtime/vm/dwarf.cc
index 1296ad0..25c5792 100644
--- a/runtime/vm/dwarf.cc
+++ b/runtime/vm/dwarf.cc
@@ -892,7 +892,7 @@
         auto uri_cstr = Deobfuscate(uri.ToCString());
         if (FLAG_resolve_dwarf_paths) {
           auto const converted_cstr = ConvertResolvedURI(uri_cstr);
-          // Strictly enforce this to catch inconvertable cases.
+          // Strictly enforce this to catch inconvertible cases.
           if (converted_cstr == nullptr) {
             FATAL("cannot convert resolved URI %s", uri_cstr);
           }
diff --git a/runtime/vm/flag_list.h b/runtime/vm/flag_list.h
index 46a7bd5..fa58e02 100644
--- a/runtime/vm/flag_list.h
+++ b/runtime/vm/flag_list.h
@@ -90,9 +90,6 @@
     "Abort if memory allocation fails - use only with --old-gen-heap-size")    \
   C(async_debugger, false, false, bool, true,                                  \
     "Debugger support async functions.")                                       \
-  P(async_igoto_threshold, int, 5,                                             \
-    "Number of continuations after which igoto-based async is used."           \
-    "-1 means never.")                                                         \
   P(background_compilation, bool, kDartUseBackgroundCompilation,               \
     "Run optimizing compilation in background")                                \
   P(check_token_positions, bool, false,                                        \
diff --git a/runtime/vm/kernel_loader.cc b/runtime/vm/kernel_loader.cc
index 54dc5d9..a7407c5 100644
--- a/runtime/vm/kernel_loader.cc
+++ b/runtime/vm/kernel_loader.cc
@@ -2038,50 +2038,23 @@
   function_node_helper.ReadUntilIncluding(FunctionNodeHelper::kDartAsyncMarker);
   if (function_node_helper.async_marker_ == FunctionNodeHelper::kAsync) {
     function.set_modifier(UntaggedFunction::kAsync);
-    function.set_is_debuggable(true);
     function.set_is_inlinable(false);
-    function.set_is_visible(true);
-    ASSERT(function.IsCompactAsyncFunction());
+    ASSERT(function.IsAsyncFunction());
   } else if (function_node_helper.async_marker_ ==
              FunctionNodeHelper::kAsyncStar) {
     function.set_modifier(UntaggedFunction::kAsyncGen);
-    function.set_is_debuggable(true);
     function.set_is_inlinable(false);
-    function.set_is_visible(true);
-    ASSERT(function.IsCompactAsyncStarFunction());
+    ASSERT(function.IsAsyncGenerator());
   } else if (function_node_helper.async_marker_ ==
              FunctionNodeHelper::kSyncStar) {
     function.set_modifier(UntaggedFunction::kSyncGen);
-    function.set_is_debuggable(true);
     function.set_is_inlinable(false);
-    function.set_is_visible(true);
-    ASSERT(function.IsCompactSyncStarFunction());
+    ASSERT(function.IsSyncGenerator());
   } else {
     ASSERT(function_node_helper.async_marker_ == FunctionNodeHelper::kSync);
-    function.set_is_debuggable(function_node_helper.dart_async_marker_ ==
-                               FunctionNodeHelper::kSync);
-    switch (function_node_helper.dart_async_marker_) {
-      case FunctionNodeHelper::kSyncStar:
-        function.set_modifier(UntaggedFunction::kSyncGen);
-        function.set_is_visible(false);
-        break;
-      case FunctionNodeHelper::kAsync:
-        function.set_modifier(UntaggedFunction::kAsync);
-        function.set_is_inlinable(false);
-        function.set_is_visible(false);
-        break;
-      case FunctionNodeHelper::kAsyncStar:
-        function.set_modifier(UntaggedFunction::kAsyncGen);
-        function.set_is_inlinable(false);
-        function.set_is_visible(false);
-        break;
-      default:
-        // no special modifier
-        break;
-    }
-    ASSERT(!function.IsCompactAsyncFunction());
-    ASSERT(!function.IsCompactAsyncStarFunction());
-    ASSERT(!function.IsCompactSyncStarFunction());
+    ASSERT(!function.IsAsyncFunction());
+    ASSERT(!function.IsAsyncGenerator());
+    ASSERT(!function.IsSyncGenerator());
   }
 
   if (!native_name.IsNull()) {
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index bdd1af2..fa75c09 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -3984,6 +3984,7 @@
   // TODO(dartbug.com/37737): Currently, we intentionally keep the recognized
   // kind when creating the dynamic invocation forwarder.
   forwarder.set_kind(UntaggedFunction::kDynamicInvocationForwarder);
+  forwarder.set_modifier(UntaggedFunction::kNoModifier);
   forwarder.set_is_debuggable(false);
 
   // TODO(vegorov) for error reporting reasons it is better to make this
@@ -8203,7 +8204,7 @@
     return false;
   }
 
-  return is_inlinable() && !is_generated_body();
+  return is_inlinable();
 }
 #endif  // !defined(DART_PRECOMPILED_RUNTIME)
 
@@ -9120,7 +9121,6 @@
   result.set_is_visible(true);      // Will be computed later.
   result.set_is_debuggable(true);   // Will be computed later.
   result.set_is_intrinsic(false);
-  result.set_is_generated_body(false);
   result.set_has_pragma(false);
   result.set_is_polymorphic_target(false);
   result.set_is_synthetic(false);
@@ -9905,22 +9905,7 @@
     return;
   }
   auto& fun = Function::Handle(ptr());
-  intptr_t fun_depth = 0;
-  // If |this| is a generated body closure, start with the closest
-  // non-generated parent function.
-  while (fun.is_generated_body()) {
-    fun = fun.parent_function();
-    fun_depth++;
-  }
   FunctionPrintNameHelper(fun, params, printer);
-  // If we skipped generated bodies then append a suffix to the end.
-  if (fun_depth > 0 && params.disambiguate_names) {
-    printer->AddString("{body");
-    if (fun_depth > 1) {
-      printer->Printf(" depth %" Pd "", fun_depth);
-    }
-    printer->AddString("}");
-  }
 }
 
 StringPtr Function::GetSource() const {
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index ab528c3..2c34da3 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -3576,106 +3576,28 @@
            UntaggedFunction::kFfiTrampoline;
   }
 
-  // Recognise async functions like:
-  //   user_func async {
-  //     // ...
-  //   }
-  bool IsAsyncFunction() const {
-    return modifier() == UntaggedFunction::kAsync;
-  }
-
-  // TODO(dartbug.com/48378): replace this predicate with IsAsyncFunction()
-  // after old async functions are removed.
-  bool IsCompactAsyncFunction() const {
-    return IsAsyncFunction() && is_debuggable();
-  }
-
-  // TODO(dartbug.com/48378): replace this predicate with IsAsyncGenerator()
-  // after old async* functions are removed.
-  bool IsCompactAsyncStarFunction() const {
-    return IsAsyncGenerator() && is_debuggable();
-  }
-
-  // TODO(dartbug.com/48378): replace this predicate with IsSyncGenerator()
-  // after old sync* functions are removed.
-  bool IsCompactSyncStarFunction() const {
-    return IsSyncGenerator() && is_debuggable();
-  }
-
   // Returns true for functions which execution can be suspended
   // using Suspend/Resume stubs. Such functions have an artificial
   // :suspend_state local variable at the fixed location of the frame.
   bool IsSuspendableFunction() const {
-    return IsCompactAsyncFunction() || IsCompactAsyncStarFunction() ||
-           IsCompactSyncStarFunction();
+    return modifier() != UntaggedFunction::kNoModifier;
   }
 
-  // Recognise synthetic sync-yielding functions like the inner-most:
-  //   user_func /* was async */ {
-  //      :async_op(..) yielding {
-  //        // ...
-  //      }
-  //   }
-  bool IsAsyncClosure() const {
-    return is_generated_body() &&
-           Function::Handle(parent_function()).IsAsyncFunction();
+  // Returns true if this function is marked with 'async' modifier.
+  bool IsAsyncFunction() const {
+    return modifier() == UntaggedFunction::kAsync;
   }
 
-  // Recognise sync* functions like:
-  //   user_func sync* {
-  //     // ...
-  //   }
+  // Returns true if this function is marked with 'sync*' modifier.
   bool IsSyncGenerator() const {
     return modifier() == UntaggedFunction::kSyncGen;
   }
 
-  // Recognise synthetic :sync_op_gen()s like:
-  //   user_func /* was sync* */ {
-  //     :sync_op_gen() {
-  //        // ...
-  //      }
-  //   }
-  bool IsSyncGenClosureMaker() const {
-    return is_generated_body() &&
-           Function::Handle(parent_function()).IsSyncGenerator();
-  }
-
-  // Recognise async* functions like:
-  //   user_func async* {
-  //     // ...
-  //   }
+  // Returns true if this function is marked with 'async*' modifier.
   bool IsAsyncGenerator() const {
     return modifier() == UntaggedFunction::kAsyncGen;
   }
 
-  // Recognise synthetic sync-yielding functions like the inner-most:
-  //   user_func /* originally async* */ {
-  //      :async_op(..) yielding {
-  //        // ...
-  //      }
-  //   }
-  bool IsAsyncGenClosure() const {
-    return is_generated_body() &&
-           Function::Handle(parent_function()).IsAsyncGenerator();
-  }
-
-  bool IsAsyncOrGenerator() const {
-    return modifier() != UntaggedFunction::kNoModifier;
-  }
-
-  // Recognise synthetic sync-yielding functions like the inner-most:
-  //   user_func /* was sync* */ {
-  //     :sync_op_gen() {
-  //        :sync_op(..) yielding {
-  //          // ...
-  //        }
-  //      }
-  //   }
-  bool IsSyncGenClosure() const {
-    return is_generated_body() &&
-           Function::Handle(parent_function()).IsSyncGenClosureMaker();
-  }
-
   bool IsTypedDataViewFactory() const {
     if (is_native() && kind() == UntaggedFunction::kConstructor) {
       // This is a native factory constructor.
@@ -3855,7 +3777,6 @@
   // native: Bridge to C/C++ code.
   // external: Just a declaration that expects to be defined in another patch
   //           file.
-  // generated_body: Has a generated body.
   // polymorphic_target: A polymorphic method.
   // has_pragma: Has a @pragma decoration.
   // no_such_method_forwarder: A stub method that just calls noSuchMethod.
@@ -3872,7 +3793,6 @@
   V(Intrinsic, is_intrinsic)                                                   \
   V(Native, is_native)                                                         \
   V(External, is_external)                                                     \
-  V(GeneratedBody, is_generated_body)                                          \
   V(PolymorphicTarget, is_polymorphic_target)                                  \
   V(HasPragma, has_pragma)                                                     \
   V(IsSynthetic, is_synthetic)                                                 \
diff --git a/runtime/vm/object_store.cc b/runtime/vm/object_store.cc
index 8bdf269..e45fd0c 100644
--- a/runtime/vm/object_store.cc
+++ b/runtime/vm/object_store.cc
@@ -252,38 +252,6 @@
   Function& function = Function::Handle(zone);
   Field& field = Field::Handle(zone);
 
-  function_name = async_lib.PrivateName(Symbols::AsyncStarMoveNextHelper());
-  ASSERT(!function_name.IsNull());
-  function = Resolver::ResolveStatic(async_lib, Object::null_string(),
-                                     function_name, 0, 1, Object::null_array());
-  ASSERT(!function.IsNull());
-  set_async_star_move_next_helper(function);
-
-  function_name = async_lib.PrivateName(Symbols::_CompleteOnAsyncReturn());
-  ASSERT(!function_name.IsNull());
-  function = Resolver::ResolveStatic(async_lib, Object::null_string(),
-                                     function_name, 0, 3, Object::null_array());
-  ASSERT(!function.IsNull());
-  set_complete_on_async_return(function);
-  DisableDebuggingAndInlining(function);
-
-  function_name =
-      async_lib.PrivateName(Symbols::_CompleteWithNoFutureOnAsyncReturn());
-  ASSERT(!function_name.IsNull());
-  function = Resolver::ResolveStatic(async_lib, Object::null_string(),
-                                     function_name, 0, 3, Object::null_array());
-  ASSERT(!function.IsNull());
-  set_complete_with_no_future_on_async_return(function);
-  DisableDebuggingAndInlining(function);
-
-  function_name = async_lib.PrivateName(Symbols::_CompleteOnAsyncError());
-  ASSERT(!function_name.IsNull());
-  function = Resolver::ResolveStatic(async_lib, Object::null_string(),
-                                     function_name, 0, 4, Object::null_array());
-  ASSERT(!function.IsNull());
-  set_complete_on_async_error(function);
-  DisableDebuggingAndInlining(function);
-
   cls =
       async_lib.LookupClassAllowPrivate(Symbols::_AsyncStarStreamController());
   ASSERT(!cls.IsNull());
@@ -356,13 +324,9 @@
   ASSERT(!function.IsNull());
   set_suspend_state_init_sync_star(function);
 
-  function = cls.LookupFunctionAllowPrivate(Symbols::_yieldSyncStar());
+  function = cls.LookupFunctionAllowPrivate(Symbols::_suspendSyncStarAtStart());
   ASSERT(!function.IsNull());
-  set_suspend_state_yield_sync_star(function);
-
-  function = cls.LookupFunctionAllowPrivate(Symbols::_returnSyncStar());
-  ASSERT(!function.IsNull());
-  set_suspend_state_return_sync_star(function);
+  set_suspend_state_suspend_sync_star_at_start(function);
 
   function = cls.LookupFunctionAllowPrivate(Symbols::_handleException());
   ASSERT(!function.IsNull());
@@ -371,11 +335,16 @@
   cls = async_lib.LookupClassAllowPrivate(Symbols::_SyncStarIterator());
   ASSERT(!cls.IsNull());
   RELEASE_ASSERT(cls.EnsureIsFinalized(thread) == Error::null());
+  set_sync_star_iterator_class(cls);
 
   field = cls.LookupFieldAllowPrivate(Symbols::_current());
   ASSERT(!field.IsNull());
   set_sync_star_iterator_current(field);
 
+  field = cls.LookupFieldAllowPrivate(Symbols::_state());
+  ASSERT(!field.IsNull());
+  set_sync_star_iterator_state(field);
+
   field = cls.LookupFieldAllowPrivate(Symbols::_yieldStarIterable());
   ASSERT(!field.IsNull());
   set_sync_star_iterator_yield_star_iterable(field);
diff --git a/runtime/vm/object_store.h b/runtime/vm/object_store.h
index 02a3f48..2d6373a 100644
--- a/runtime/vm/object_store.h
+++ b/runtime/vm/object_store.h
@@ -165,12 +165,8 @@
   RW(Function, simple_instance_of_function)                                    \
   RW(Function, simple_instance_of_true_function)                               \
   RW(Function, simple_instance_of_false_function)                              \
-  RW(Function, async_star_move_next_helper)                                    \
   RW(Function, async_star_stream_controller_add)                               \
   RW(Function, async_star_stream_controller_add_stream)                        \
-  RW(Function, complete_on_async_return)                                       \
-  RW(Function, complete_with_no_future_on_async_return)                        \
-  RW(Function, complete_on_async_error)                                        \
   RW(Function, suspend_state_init_async)                                       \
   RW(Function, suspend_state_await)                                            \
   RW(Function, suspend_state_return_async)                                     \
@@ -179,13 +175,14 @@
   RW(Function, suspend_state_yield_async_star)                                 \
   RW(Function, suspend_state_return_async_star)                                \
   RW(Function, suspend_state_init_sync_star)                                   \
-  RW(Function, suspend_state_yield_sync_star)                                  \
-  RW(Function, suspend_state_return_sync_star)                                 \
+  RW(Function, suspend_state_suspend_sync_star_at_start)                       \
   RW(Function, suspend_state_handle_exception)                                 \
   RW(Class, async_star_stream_controller)                                      \
   RW(Class, stream_class)                                                      \
+  RW(Class, sync_star_iterator_class)                                          \
   RW(Field, async_star_stream_controller_async_star_body)                      \
   RW(Field, sync_star_iterator_current)                                        \
+  RW(Field, sync_star_iterator_state)                                          \
   RW(Field, sync_star_iterator_yield_star_iterable)                            \
   ARW_RELAXED(Smi, future_timeout_future_index)                                \
   ARW_RELAXED(Smi, future_wait_future_index)                                   \
@@ -267,8 +264,8 @@
   RW(Code, yield_async_star_stub)                                              \
   RW(Code, return_async_star_stub)                                             \
   RW(Code, init_sync_star_stub)                                                \
-  RW(Code, yield_sync_star_stub)                                               \
-  RW(Code, return_sync_star_stub)                                              \
+  RW(Code, suspend_sync_star_at_start_stub)                                    \
+  RW(Code, suspend_sync_star_at_yield_stub)                                    \
   RW(Array, dispatch_table_code_entries)                                       \
   RW(GrowableObjectArray, instructions_tables)                                 \
   RW(Array, obfuscation_map)                                                   \
@@ -355,8 +352,8 @@
   DO(yield_async_star_stub, YieldAsyncStar)                                    \
   DO(return_async_star_stub, ReturnAsyncStar)                                  \
   DO(init_sync_star_stub, InitSyncStar)                                        \
-  DO(yield_sync_star_stub, YieldSyncStar)                                      \
-  DO(return_sync_star_stub, ReturnSyncStar)                                    \
+  DO(suspend_sync_star_at_start_stub, SuspendSyncStarAtStart)                  \
+  DO(suspend_sync_star_at_yield_stub, SuspendSyncStarAtYield)                  \
   DO(instance_of_stub, InstanceOf)
 
 #define ISOLATE_OBJECT_STORE_FIELD_LIST(R_, RW)                                \
diff --git a/runtime/vm/profiler_test.cc b/runtime/vm/profiler_test.cc
index 74c3027..536a8eb 100644
--- a/runtime/vm/profiler_test.cc
+++ b/runtime/vm/profiler_test.cc
@@ -534,7 +534,7 @@
     AllocationFilter filter(isolate->main_port(), class_a.id(),
                             Dart_TimelineGetMicros(), 16000);
     profile.Build(thread, &filter, Profiler::sample_block_buffer());
-    // We should have no allocation samples because none occured within
+    // We should have no allocation samples because none occurred within
     // the specified time range.
     EXPECT_EQ(0, profile.sample_count());
   }
@@ -631,7 +631,7 @@
     Profile profile;
     NativeAllocationSampleFilter filter(Dart_TimelineGetMicros(), 16000);
     profile.Build(thread, &filter, Profiler::sample_block_buffer());
-    // We should have no allocation samples because none occured within
+    // We should have no allocation samples because none occurred within
     // the specified time range.
     EXPECT_EQ(0, profile.sample_count());
   }
diff --git a/runtime/vm/runtime_entry.cc b/runtime/vm/runtime_entry.cc
index 4601174..b75329a 100644
--- a/runtime/vm/runtime_entry.cc
+++ b/runtime/vm/runtime_entry.cc
@@ -737,6 +737,13 @@
     }
     result = SuspendState::New(frame_size, function_data,
                                SpaceForRuntimeAllocation());
+    if (function_data.GetClassId() ==
+        Class::Handle(zone, object_store->sync_star_iterator_class()).id()) {
+      // Refresh _SyncStarIterator._state with the new SuspendState object.
+      function_data.SetField(
+          Field::Handle(zone, object_store->sync_star_iterator_state()),
+          result);
+    }
   } else {
     result = SuspendState::New(frame_size, Instance::Cast(previous_state),
                                SpaceForRuntimeAllocation());
diff --git a/runtime/vm/scopes.cc b/runtime/vm/scopes.cc
index 412c3b3..4dacf03 100644
--- a/runtime/vm/scopes.cc
+++ b/runtime/vm/scopes.cc
@@ -144,26 +144,14 @@
   VariableIndex next_index =
       first_parameter_index;  // Current free frame index.
 
-  LocalVariable* await_jump_var = nullptr;
-  LocalVariable* async_future = nullptr;
-  LocalVariable* controller = nullptr;
   LocalVariable* chained_future = nullptr;
-  LocalVariable* is_sync = nullptr;
   LocalVariable* suspend_state_var = nullptr;
   for (intptr_t i = 0; i < num_variables(); i++) {
     LocalVariable* variable = VariableAt(i);
     if (variable->owner() == this) {
       if (variable->is_captured()) {
-        if (variable->name().Equals(Symbols::AwaitJumpVar())) {
-          await_jump_var = variable;
-        } else if (variable->name().Equals(Symbols::AsyncFuture())) {
-          async_future = variable;
-        } else if (variable->name().Equals(Symbols::Controller())) {
-          controller = variable;
-        } else if (variable->is_chained_future()) {
+        if (variable->is_chained_future()) {
           chained_future = variable;
-        } else if (variable->name().Equals(Symbols::is_sync())) {
-          is_sync = variable;
         }
       } else {
         if (variable->name().Equals(Symbols::SuspendStateVar())) {
@@ -172,23 +160,6 @@
       }
     }
   }
-  // If we are in an async/async* function, force :await_jump_var and
-  // :async_future to be at fixed locations in the slot.
-  if (await_jump_var != nullptr) {
-    AllocateContextVariable(await_jump_var, &context_owner);
-    *found_captured_variables = true;
-    ASSERT(await_jump_var->index().value() == Context::kAwaitJumpVarIndex);
-  }
-  if (async_future != nullptr) {
-    AllocateContextVariable(async_future, &context_owner);
-    *found_captured_variables = true;
-    ASSERT(async_future->index().value() == Context::kAsyncFutureIndex);
-  }
-  if (controller != nullptr) {
-    AllocateContextVariable(controller, &context_owner);
-    *found_captured_variables = true;
-    ASSERT(controller->index().value() == Context::kControllerIndex);
-  }
   if (chained_future != nullptr) {
     AllocateContextVariable(chained_future, &context_owner);
     *found_captured_variables = true;
@@ -217,11 +188,6 @@
       UNREACHABLE();
     }
   }
-  if (is_sync != nullptr) {
-    AllocateContextVariable(is_sync, &context_owner);
-    *found_captured_variables = true;
-    ASSERT(is_sync->index().value() == Context::kIsSyncIndex);
-  }
 
   if (suspend_state_var != nullptr) {
     suspend_state_var->set_index(
@@ -257,9 +223,7 @@
     if (variable->owner() == this) {
       if (variable->is_captured()) {
         // Skip the variables already pre-allocated above.
-        if (variable != await_jump_var && variable != async_future &&
-            variable != controller && variable != chained_future &&
-            variable != is_sync) {
+        if (variable != chained_future) {
           AllocateContextVariable(variable, &context_owner);
           *found_captured_variables = true;
         }
@@ -295,26 +259,6 @@
 // The parser creates internal variables that start with ":"
 static bool IsFilteredIdentifier(const String& str) {
   ASSERT(str.Length() > 0);
-  if (str.ptr() == Symbols::AsyncOperation().ptr()) {
-    // Keep :async_op for asynchronous debugging.
-    return false;
-  }
-  if (str.ptr() == Symbols::AsyncFuture().ptr()) {
-    // Keep :async_future for asynchronous debugging.
-    return false;
-  }
-  if (str.ptr() == Symbols::ControllerStream().ptr()) {
-    // Keep :controller_stream for asynchronous debugging.
-    return false;
-  }
-  if (str.ptr() == Symbols::AwaitJumpVar().ptr()) {
-    // Keep :await_jump_var for asynchronous debugging.
-    return false;
-  }
-  if (str.ptr() == Symbols::is_sync().ptr()) {
-    // Keep :is_sync for asynchronous debugging.
-    return false;
-  }
   if (str.ptr() == Symbols::FunctionTypeArgumentsVar().ptr()) {
     // Keep :function_type_arguments for accessing type variables in debugging.
     return false;
diff --git a/runtime/vm/service/heap_snapshot.md b/runtime/vm/service/heap_snapshot.md
index b2c167f..4520290 100644
--- a/runtime/vm/service/heap_snapshot.md
+++ b/runtime/vm/service/heap_snapshot.md
@@ -111,7 +111,7 @@
   data : NonReferenceData,
 
   referenceCount : uleb128,
-  // A list of 1-origin indicies into SnapshotGraph.objects
+  // A list of 1-origin indices into SnapshotGraph.objects
   references : uleb128[referenceCount],
 }
 ```
diff --git a/runtime/vm/service/service.md b/runtime/vm/service/service.md
index 8c07540..4c873ec 100644
--- a/runtime/vm/service/service.md
+++ b/runtime/vm/service/service.md
@@ -1997,7 +1997,7 @@
   int pid;
 
   // A list of functions seen in the relevant samples. These references can be
-  // looked up using the indicies provided in a `CpuSample` `stack` to determine
+  // looked up using the indices provided in a `CpuSample` `stack` to determine
   // which function was on the stack.
   ProfileFunction[] functions;
 
@@ -2039,7 +2039,7 @@
   int pid;
 
   // A list of references to functions seen in the relevant samples. These references can
-  // be looked up using the indicies provided in a `CpuSample` `stack` to determine
+  // be looked up using the indices provided in a `CpuSample` `stack` to determine
   // which function was on the stack.
   (@Object|NativeFunction)[] functions;
 
diff --git a/runtime/vm/source_report.cc b/runtime/vm/source_report.cc
index 9a75218..b78960a 100644
--- a/runtime/vm/source_report.cc
+++ b/runtime/vm/source_report.cc
@@ -553,34 +553,29 @@
   }
   ASSERT(!code.IsNull());
 
-  // We skip compiled sync generators. Once a sync generator has been compiled,
-  // there is another function with the same range which actually contains the
-  // user code.
-  if (!func.IsSyncGenerator() || func.IsSuspendableFunction()) {
-    JSONObject range(jsarr);
-    range.AddProperty("scriptIndex", script_index);
-    range.AddProperty("startPos", begin_pos);
-    range.AddProperty("endPos", end_pos);
-    range.AddProperty("compiled", true);
+  JSONObject range(jsarr);
+  range.AddProperty("scriptIndex", script_index);
+  range.AddProperty("startPos", begin_pos);
+  range.AddProperty("endPos", end_pos);
+  range.AddProperty("compiled", true);
 
-    if (IsReportRequested(kCallSites)) {
-      PrintCallSitesData(&range, func, code);
-    }
-    if (IsReportRequested(kCoverage)) {
-      PrintCoverageData(&range, func, code, /* report_branch_coverage */ false);
-    }
-    if (IsReportRequested(kBranchCoverage)) {
-      PrintCoverageData(&range, func, code, /* report_branch_coverage */ true);
-    }
-    if (IsReportRequested(kPossibleBreakpoints)) {
-      PrintPossibleBreakpointsData(&range, func, code);
-    }
-    if (IsReportRequested(kProfile)) {
-      ProfileFunction* profile_function = profile_.FindFunction(func);
-      if ((profile_function != NULL) &&
-          (profile_function->NumSourcePositions() > 0)) {
-        PrintProfileData(&range, profile_function);
-      }
+  if (IsReportRequested(kCallSites)) {
+    PrintCallSitesData(&range, func, code);
+  }
+  if (IsReportRequested(kCoverage)) {
+    PrintCoverageData(&range, func, code, /* report_branch_coverage */ false);
+  }
+  if (IsReportRequested(kBranchCoverage)) {
+    PrintCoverageData(&range, func, code, /* report_branch_coverage */ true);
+  }
+  if (IsReportRequested(kPossibleBreakpoints)) {
+    PrintPossibleBreakpointsData(&range, func, code);
+  }
+  if (IsReportRequested(kProfile)) {
+    ProfileFunction* profile_function = profile_.FindFunction(func);
+    if ((profile_function != NULL) &&
+        (profile_function->NumSourcePositions() > 0)) {
+      PrintProfileData(&range, profile_function);
     }
   }
 }
diff --git a/runtime/vm/stack_trace.cc b/runtime/vm/stack_trace.cc
index 21ab60e..8e43ef4 100644
--- a/runtime/vm/stack_trace.cc
+++ b/runtime/vm/stack_trace.cc
@@ -24,34 +24,6 @@
 // Keep in sync with sdk/lib/async/future_impl.dart:_FutureListener.handleValue.
 const intptr_t kNumArgsFutureListenerHandleValue = 1;
 
-// Find current yield index from async closure.
-// Async closures contains a variable, :await_jump_var that holds the index into
-// async wrapper.
-intptr_t GetYieldIndex(const Closure& receiver_closure) {
-  const auto& function = Function::Handle(receiver_closure.function());
-  if (!function.IsAsyncClosure() && !function.IsAsyncGenClosure()) {
-    return UntaggedPcDescriptors::kInvalidYieldIndex;
-  }
-  const auto& await_jump_var =
-      Object::Handle(Context::Handle(receiver_closure.context())
-                         .At(Context::kAwaitJumpVarIndex));
-  ASSERT(await_jump_var.IsSmi());
-  return Smi::Cast(await_jump_var).Value();
-}
-
-intptr_t FindPcOffset(const PcDescriptors& pc_descs, intptr_t yield_index) {
-  if (yield_index == UntaggedPcDescriptors::kInvalidYieldIndex) {
-    return 0;
-  }
-  PcDescriptors::Iterator iter(pc_descs, UntaggedPcDescriptors::kAnyKind);
-  while (iter.MoveNext()) {
-    if (iter.YieldIndex() == yield_index) {
-      return iter.PcOffset();
-    }
-  }
-  UNREACHABLE();  // If we cannot find it we have a bug.
-}
-
 // Instance caches library and field references.
 // This way we don't have to do the look-ups for every frame in the stack.
 CallerClosureFinder::CallerClosureFinder(Zone* zone)
@@ -245,12 +217,6 @@
 
 ClosurePtr CallerClosureFinder::GetCallerInFutureListener(
     const Object& future_listener) {
-  closure_ = GetCallerInFutureListenerInternal(future_listener);
-  return UnwrapAsyncThen(closure_);
-}
-
-ClosurePtr CallerClosureFinder::GetCallerInFutureListenerInternal(
-    const Object& future_listener) {
   auto value = GetFutureListenerState(future_listener);
 
   // If the _FutureListener is a `then`, `catchError`, or `whenComplete`
@@ -267,11 +233,6 @@
   return GetFutureListenerCallback(future_listener);
 }
 
-ClosurePtr CallerClosureFinder::FindCaller(const Closure& receiver_closure) {
-  closure_ = FindCallerInternal(receiver_closure);
-  return UnwrapAsyncThen(closure_);
-}
-
 ClosurePtr CallerClosureFinder::FindCallerFromSuspendState(
     const SuspendState& suspend_state) {
   context_entry_ = suspend_state.function_data();
@@ -285,20 +246,6 @@
   }
 }
 
-ClosurePtr CallerClosureFinder::UnwrapAsyncThen(const Closure& closure) {
-  if (closure.IsNull()) return closure.ptr();
-
-  receiver_function_ = closure.function();
-  receiver_function_ = receiver_function_.parent_function();
-  if (receiver_function_.recognized_kind() ==
-      MethodRecognizer::kAsyncThenWrapperHelper) {
-    receiver_context_ = closure.context();
-    RELEASE_ASSERT(receiver_context_.num_variables() == 1);
-    return Closure::RawCast(receiver_context_.At(0));
-  }
-  return closure.ptr();
-}
-
 bool CallerClosureFinder::IsCompactAsyncCallback(const Function& function) {
   parent_function_ = function.parent_function();
   auto kind = parent_function_.recognized_kind();
@@ -315,8 +262,7 @@
   return SuspendState::RawCast(receiver_context_.At(0));
 }
 
-ClosurePtr CallerClosureFinder::FindCallerInternal(
-    const Closure& receiver_closure) {
+ClosurePtr CallerClosureFinder::FindCaller(const Closure& receiver_closure) {
   receiver_function_ = receiver_closure.function();
   receiver_context_ = receiver_closure.context();
 
@@ -325,15 +271,6 @@
     return FindCallerFromSuspendState(suspend_state_);
   }
 
-  if (receiver_function_.IsAsyncGenClosure()) {
-    return FindCallerInAsyncGenClosure(receiver_context_);
-  }
-
-  if (receiver_function_.IsAsyncClosure()) {
-    future_ = receiver_context_.At(Context::kAsyncFutureIndex);
-    return GetCallerInFutureImpl(future_);
-  }
-
   if (receiver_function_.HasParent()) {
     parent_function_ = receiver_function_.parent_function();
     if (parent_function_.recognized_kind() ==
@@ -419,73 +356,25 @@
   return false;
 }
 
-bool CallerClosureFinder::IsRunningAsync(const Closure& receiver_closure) {
-  auto zone = Thread::Current()->zone();
-
-  // The async* functions are never started synchronously, they start running
-  // after the first `listen()` call to its returned `Stream`.
-  const Function& receiver_function_ =
-      Function::Handle(zone, receiver_closure.function());
-  if (receiver_function_.IsAsyncGenClosure()) {
-    return true;
-  }
-  ASSERT(receiver_function_.IsAsyncClosure());
-
-  const Context& receiver_context_ =
-      Context::Handle(zone, receiver_closure.context());
-  const Object& is_sync =
-      Object::Handle(zone, receiver_context_.At(Context::kIsSyncIndex));
-  ASSERT(!is_sync.IsNull());
-  ASSERT(is_sync.IsBool());
-  // isSync indicates whether the future should be completed async. or sync.,
-  // based on whether it has yielded yet.
-  // isSync is true when the :async_op has yielded at least once.
-  // I.e. isSync will be false even after :async_op has run, if e.g. it threw
-  // an exception before yielding.
-  return Bool::Cast(is_sync).value();
-}
-
 bool CallerClosureFinder::WasPreviouslySuspended(
     const Function& function,
     const Object& suspend_state_var) {
   if (!suspend_state_var.IsSuspendState()) {
     return false;
   }
-  if (function.IsCompactAsyncFunction()) {
+  if (function.IsAsyncFunction()) {
     // Error callback is set after both 'then' and 'error' callbacks are
     // registered with the Zone. Callback registration may query
     // stack trace and should still collect the synchronous stack trace.
     return SuspendState::Cast(suspend_state_var).error_callback() !=
            Object::null();
-  } else if (function.IsCompactAsyncStarFunction()) {
+  } else if (function.IsAsyncGenerator()) {
     return true;
   } else {
     UNREACHABLE();
   }
 }
 
-ClosurePtr StackTraceUtils::FindClosureInFrame(ObjectPtr* last_object_in_caller,
-                                               const Function& function) {
-  NoSafepointScope nsp;
-
-  ASSERT(!function.IsNull());
-  ASSERT(function.IsAsyncClosure() || function.IsAsyncGenClosure());
-
-  // The callee has function signature
-  //   :async_op(result_or_exception, stack)
-  // so the "this" closure is the 3rd argument.
-  ObjectPtr arg = last_object_in_caller[2];
-  if (arg->IsHeapObject() && arg->GetClassId() == kClosureCid) {
-    auto& closure = Closure::Handle();
-    closure = Closure::RawCast(arg);
-    if (closure.function() == function.ptr()) {
-      return closure.ptr();
-    }
-  }
-  ASSERT(arg == Symbols::OptimizedOut().ptr());
-  return Closure::null();
-}
-
 ClosurePtr StackTraceUtils::ClosureFromFrameFunction(
     Zone* zone,
     CallerClosureFinder* caller_closure_finder,
@@ -493,7 +382,6 @@
     StackFrame* frame,
     bool* skip_frame,
     bool* is_async) {
-  auto& closure = Closure::Handle(zone);
   auto& function = Function::Handle(zone);
 
   function = frame->LookupDartFunction();
@@ -501,8 +389,7 @@
     return Closure::null();
   }
 
-  if (function.IsCompactAsyncFunction() ||
-      function.IsCompactAsyncStarFunction()) {
+  if (function.IsAsyncFunction() || function.IsAsyncGenerator()) {
     auto& suspend_state = Object::Handle(
         zone, *reinterpret_cast<ObjectPtr*>(LocalVarAddress(
                   frame->fp(), runtime_frame_layout.FrameSlotForVariableIndex(
@@ -518,26 +405,6 @@
     return Closure::null();
   }
 
-  if (function.IsAsyncClosure() || function.IsAsyncGenClosure()) {
-    // Next, look up caller's closure on the stack and walk backwards
-    // through the yields.
-    ObjectPtr* last_caller_obj =
-        reinterpret_cast<ObjectPtr*>(frame->GetCallerSp());
-    closure = FindClosureInFrame(last_caller_obj, function);
-    if (closure.IsNull()) return Closure::null();
-
-    // If this async function hasn't yielded yet, we're still dealing with a
-    // normal stack. Continue to next frame as usual.
-    if (!caller_closure_finder->IsRunningAsync(closure)) {
-      return Closure::null();
-    }
-
-    *is_async = true;
-
-    // Skip: Already handled this as a sync. frame.
-    return caller_closure_finder->FindCaller(closure);
-  }
-
   // May have been called from `_FutureListener.handleValue`, which means its
   // receiver holds the Future chain.
   DartFrameIterator future_frames(frames);
@@ -614,11 +481,8 @@
       RELEASE_ASSERT(!code.IsNull());
       code_array.Add(code);
       pc_descs = code.pc_descriptors();
-      const intptr_t pc_offset = FindPcOffset(pc_descs, GetYieldIndex(closure));
-      // Unlike other sources of PC offsets, the offset may be 0 here if we
-      // reach a non-async closure receiving the yielded value.
-      ASSERT(pc_offset >= 0);
-      pc_offset_array->Add(pc_offset);
+      // We reached a non-async closure receiving the yielded value.
+      pc_offset_array->Add(0);
     }
 
     // Inject async suspension marker.
diff --git a/runtime/vm/stack_trace.h b/runtime/vm/stack_trace.h
index cfd558c..44e05c8 100644
--- a/runtime/vm/stack_trace.h
+++ b/runtime/vm/stack_trace.h
@@ -70,18 +70,12 @@
 
   bool HasCatchError(const Object& future_listener);
 
-  static bool IsRunningAsync(const Closure& receiver_closure);
-
   // Tests if given [function] with given value of :suspend_state variable
   // was suspended at least once and running asynchronously.
   static bool WasPreviouslySuspended(const Function& function,
                                      const Object& suspend_state_var);
 
  private:
-  ClosurePtr FindCallerInternal(const Closure& receiver_closure);
-  ClosurePtr GetCallerInFutureListenerInternal(const Object& future_listener);
-  ClosurePtr UnwrapAsyncThen(const Closure& closure);
-
   Closure& closure_;
   Context& receiver_context_;
   Function& receiver_function_;
@@ -122,10 +116,6 @@
 
 class StackTraceUtils : public AllStatic {
  public:
-  // Find the async_op closure from the stack frame.
-  static ClosurePtr FindClosureInFrame(ObjectPtr* last_object_in_caller,
-                                       const Function& function);
-
   static ClosurePtr ClosureFromFrameFunction(
       Zone* zone,
       CallerClosureFinder* caller_closure_finder,
diff --git a/runtime/vm/stub_code_list.h b/runtime/vm/stub_code_list.h
index 5c496f0..f233db0 100644
--- a/runtime/vm/stub_code_list.h
+++ b/runtime/vm/stub_code_list.h
@@ -159,8 +159,8 @@
   V(YieldAsyncStar)                                                            \
   V(ReturnAsyncStar)                                                           \
   V(InitSyncStar)                                                              \
-  V(YieldSyncStar)                                                             \
-  V(ReturnSyncStar)                                                            \
+  V(SuspendSyncStarAtStart)                                                    \
+  V(SuspendSyncStarAtYield)                                                    \
   V(AsyncExceptionHandler)                                                     \
   V(CloneSuspendState)                                                         \
   V(UnknownDartCode)
diff --git a/runtime/vm/symbols.h b/runtime/vm/symbols.h
index 082c168..7b5bd6a 100644
--- a/runtime/vm/symbols.h
+++ b/runtime/vm/symbols.h
@@ -26,11 +26,7 @@
   V(ArgumentError, "ArgumentError")                                            \
   V(AssertionError, "_AssertionError")                                         \
   V(AssignIndexToken, "[]=")                                                   \
-  V(AsyncFuture, ":async_future")                                              \
-  V(AsyncOperation, ":async_op")                                               \
   V(AsyncStarMoveNextHelper, "_asyncStarMoveNextHelper")                       \
-  V(AwaitContextVar, ":await_ctx_var")                                         \
-  V(AwaitJumpVar, ":await_jump_var")                                           \
   V(Bool, "bool")                                                              \
   V(BooleanExpression, "boolean expression")                                   \
   V(BoundsCheckForPartialInstantiation, "_boundsCheckForPartialInstantiation") \
@@ -52,8 +48,6 @@
   V(CompressedStackMaps, "CompressedStackMaps")                                \
   V(Context, "Context")                                                        \
   V(ContextScope, "ContextScope")                                              \
-  V(Controller, ":controller")                                                 \
-  V(ControllerStream, ":controller_stream")                                    \
   V(Current, "current")                                                        \
   V(CurrentContextVar, ":current_context_var")                                 \
   V(CyclicInitializationError, "CyclicInitializationError")                    \
@@ -291,10 +285,7 @@
   V(_ClosureCall, "_Closure.call")                                             \
   V(_CombinatorMirror, "_CombinatorMirror")                                    \
   V(_CompileTimeError, "_CompileTimeError")                                    \
-  V(_CompleteOnAsyncReturn, "_completeOnAsyncReturn")                          \
-  V(_CompleteWithNoFutureOnAsyncReturn, "_completeWithNoFutureOnAsyncReturn")  \
   V(_ControllerSubscription, "_ControllerSubscription")                        \
-  V(_CompleteOnAsyncError, "_completeOnAsyncError")                            \
   V(_DeletedEnumPrefix, "Deleted enum value from ")                            \
   V(_DeletedEnumSentinel, "_deleted_enum_sentinel")                            \
   V(_Double, "_Double")                                                        \
@@ -383,7 +374,6 @@
   V(_StreamIterator, "_StreamIterator")                                        \
   V(_String, "String")                                                         \
   V(_SuspendState, "_SuspendState")                                            \
-  V(_SyncIterator, "_SyncIterator")                                            \
   V(_SyncStarIterator, "_SyncStarIterator")                                    \
   V(_SyncStreamController, "_SyncStreamController")                            \
   V(_TransferableTypedDataImpl, "_TransferableTypedDataImpl")                  \
@@ -456,6 +446,7 @@
   V(_stackTrace, "_stackTrace")                                                \
   V(_state, "_state")                                                          \
   V(_stateData, "_stateData")                                                  \
+  V(_suspendSyncStarAtStart, "_suspendSyncStarAtStart")                        \
   V(_toString, "_toString")                                                    \
   V(_varData, "_varData")                                                      \
   V(_wordCharacterMap, "_wordCharacterMap")                                    \
@@ -476,7 +467,6 @@
   V(dynamic_assert_assignable_stc_check,                                       \
     ":dynamic_assert_assignable_stc_check")                                    \
   V(index_temp, ":index_temp")                                                 \
-  V(is_sync, ":is_sync")                                                       \
   V(isPaused, "isPaused")                                                      \
   V(match_end_index, ":match_end_index")                                       \
   V(match_start_index, ":match_start_index")                                   \
diff --git a/runtime/vm/thread.h b/runtime/vm/thread.h
index e0bc2a0..df80a86 100644
--- a/runtime/vm/thread.h
+++ b/runtime/vm/thread.h
@@ -138,8 +138,6 @@
     StubCode::ReturnAsyncNotFuture().ptr(), nullptr)                           \
   V(CodePtr, return_async_star_stub_, StubCode::ReturnAsyncStar().ptr(),       \
     nullptr)                                                                   \
-  V(CodePtr, return_sync_star_stub_, StubCode::ReturnSyncStar().ptr(),         \
-    nullptr)                                                                   \
   V(CodePtr, stack_overflow_shared_without_fpu_regs_stub_,                     \
     StubCode::StackOverflowSharedWithoutFPURegs().ptr(), nullptr)              \
   V(CodePtr, stack_overflow_shared_with_fpu_regs_stub_,                        \
@@ -186,8 +184,7 @@
   V(suspend_state_yield_async_star)                                            \
   V(suspend_state_return_async_star)                                           \
   V(suspend_state_init_sync_star)                                              \
-  V(suspend_state_yield_sync_star)                                             \
-  V(suspend_state_return_sync_star)                                            \
+  V(suspend_state_suspend_sync_star_at_start)                                  \
   V(suspend_state_handle_exception)
 
 // This assertion marks places which assume that boolean false immediate
diff --git a/samples-dev/swarm/swarm_ui_lib/view/SliderMenu.dart b/samples-dev/swarm/swarm_ui_lib/view/SliderMenu.dart
index bd2d57f..3f13e4d 100644
--- a/samples-dev/swarm/swarm_ui_lib/view/SliderMenu.dart
+++ b/samples-dev/swarm/swarm_ui_lib/view/SliderMenu.dart
@@ -18,7 +18,7 @@
   // currently selected menu item
   Element selectedItem;
 
-  // This holds the element where a touchstart occured.  (This is set
+  // This holds the element where a touchstart occurred.  (This is set
   // in touchstart, and cleared in touchend.)  If this is null, then a
   // touch operation is not in progress.
   // TODO(mattsh) - move this to a touch mixin
@@ -79,7 +79,7 @@
             selectItem(touchItem, true);
           } else {
             // the Touch target is somewhere other where than the touchstart
-            // occured, so revert the selected menu text back to where it was
+            // occurred, so revert the selected menu text back to where it was
             // before the touchstart,
             selectItemText(selectedItem);
           }
diff --git a/sdk/lib/_internal/js_shared/lib/rti.dart b/sdk/lib/_internal/js_shared/lib/rti.dart
index b7c9881..36b18b5 100644
--- a/sdk/lib/_internal/js_shared/lib/rti.dart
+++ b/sdk/lib/_internal/js_shared/lib/rti.dart
@@ -841,7 +841,7 @@
   }
 
   // `o is T*` generally behaves like `o is T`.
-  // The exeptions are `Object*` (handled above) and `Never*`
+  // The exceptions are `Object*` (handled above) and `Never*`
   //
   //   `null is Never`  --> `false`
   //   `null is Never*` --> `true`
diff --git a/sdk/lib/_internal/vm/lib/async_patch.dart b/sdk/lib/_internal/vm/lib/async_patch.dart
index 976860f..29ff029 100644
--- a/sdk/lib/_internal/vm/lib/async_patch.dart
+++ b/sdk/lib/_internal/vm/lib/async_patch.dart
@@ -18,78 +18,6 @@
 @pragma("vm:external-name", "DartAsync_fatal")
 external _fatal(msg);
 
-// We need to pass the value as first argument and leave the second and third
-// arguments empty (used for error handling).
-@pragma("vm:recognized", "other")
-dynamic Function(dynamic) _asyncThenWrapperHelper(
-    dynamic Function(dynamic, dynamic) continuation) {
-  @pragma("vm:invisible")
-  dynamic thenWrapper(dynamic arg) => continuation(arg, /*stack_trace=*/ null);
-
-  // Any function that is used as an asynchronous callback must be registered
-  // in the current Zone. Normally, this is done by the future when a
-  // callback is registered (for example with `.then` or `.catchError`). In our
-  // case we want to reuse the same callback multiple times and therefore avoid
-  // the multiple registrations. For our internal futures (`_Future`) we can
-  // use the shortcut-version of `.then`, and skip the registration. However,
-  // that means that the continuation must be registered by us.
-  //
-  // Furthermore, we know that the root-zone doesn't actually do anything and
-  // we can therefore skip the registration call for it.
-  //
-  // Note, that the continuation accepts up to three arguments. If the current
-  // zone is the root zone, we don't wrap the continuation, and a bad
-  // `Future` implementation could potentially invoke the callback with the
-  // wrong number of arguments.
-  final currentZone = Zone._current;
-  if (identical(currentZone, _rootZone) ||
-      identical(currentZone._registerUnaryCallback,
-          _rootZone._registerUnaryCallback)) {
-    return thenWrapper;
-  }
-  return currentZone.registerUnaryCallback<dynamic, dynamic>(thenWrapper);
-}
-
-// We need to pass the exception and stack trace objects as second and third
-// parameter to the continuation.
-dynamic Function(Object, StackTrace) _asyncErrorWrapperHelper(
-    dynamic Function(dynamic, StackTrace) errorCallback) {
-  final currentZone = Zone._current;
-  if (identical(currentZone, _rootZone) ||
-      identical(currentZone._registerBinaryCallback,
-          _rootZone._registerBinaryCallback)) {
-    return errorCallback;
-  }
-  return currentZone
-      .registerBinaryCallback<dynamic, Object, StackTrace>(errorCallback);
-}
-
-/// Registers the [thenCallback] and [errorCallback] on the given [object].
-///
-/// If [object] is not a future, then it is wrapped into one.
-///
-/// Returns the result of registering with `.then`.
-Future _awaitHelper(var object, dynamic Function(dynamic) thenCallback,
-    dynamic Function(Object, StackTrace) errorCallback) {
-  _Future future;
-  if (object is _Future) {
-    future = object;
-  } else if (object is! Future) {
-    future = new _Future().._setValue(object);
-  } else {
-    return object.then(thenCallback, onError: errorCallback);
-  }
-  // `object` is a `_Future`.
-  //
-  // Since the callbacks have been registered in the current zone (see
-  // [_asyncThenWrapperHelper] and [_asyncErrorWrapperHelper]), we can avoid
-  // another registration and directly invoke the no-zone-registration `.then`.
-  //
-  // We can only do this for our internal futures (the default implementation of
-  // all futures that are constructed by the `dart:async` library).
-  return future._thenAwait<dynamic>(thenCallback, errorCallback);
-}
-
 @pragma("vm:entry-point", "call")
 void _asyncStarMoveNextHelper(var stream) {
   if (stream is! _StreamImpl) {
@@ -284,41 +212,6 @@
   Function? _generator;
 }
 
-@pragma("vm:entry-point", "call")
-void _completeOnAsyncReturn(_Future _future, Object? value, bool is_sync) {
-  // The first awaited expression is invoked sync. so complete is async. to
-  // allow then and error handlers to be attached.
-  // async_jump_var=0 is prior to first await, =1 is first await.
-  if (!is_sync || value is Future) {
-    _future._asyncCompleteUnchecked(value);
-  } else {
-    _future._completeWithValue(value);
-  }
-}
-
-@pragma("vm:entry-point", "call")
-void _completeWithNoFutureOnAsyncReturn(
-    _Future _future, Object? value, bool is_sync) {
-  // The first awaited expression is invoked sync. so complete is async. to
-  // allow then and error handlers to be attached.
-  // async_jump_var=0 is prior to first await, =1 is first await.
-  if (!is_sync) {
-    _future._asyncCompleteUncheckedNoFuture(value);
-  } else {
-    _future._completeWithValue(value);
-  }
-}
-
-@pragma("vm:entry-point", "call")
-void _completeOnAsyncError(
-    _Future _future, Object e, StackTrace st, bool is_sync) {
-  if (!is_sync) {
-    _future._asyncCompleteError(e, st);
-  } else {
-    _future._completeError(e, st);
-  }
-}
-
 @pragma("vm:external-name", "AsyncStarMoveNext_debuggerStepCheck")
 external void _moveNextDebuggerStepCheck(Function async_op);
 
@@ -558,7 +451,11 @@
     }
     if (functionData is _Future) {
       // async function.
-      _completeOnAsyncError(functionData, exception, stackTrace, isSync);
+      if (!isSync) {
+        functionData._asyncCompleteError(exception, stackTrace);
+      } else {
+        functionData._completeError(exception, stackTrace);
+      }
     } else if (functionData is _AsyncStarStreamController) {
       // async* function.
       functionData.addError(exception, stackTrace);
@@ -578,24 +475,11 @@
 
   @pragma("vm:entry-point", "call")
   @pragma("vm:invisible")
-  Object? _yieldSyncStar(Object? object) {
-    if (_trace) print('_yieldSyncStar($object)');
+  Object? _suspendSyncStarAtStart(Object? object) {
+    if (_trace) print('_suspendSyncStarAtStart($object)');
     final data = _functionData;
-    if (data is _SyncStarIterable) {
-      data._stateAtStart = this;
-      return data;
-    } else {
-      // Update state in the iterator in case SuspendState was reallocated.
-      unsafeCast<_SyncStarIterator>(data)._state = this;
-    }
-    return true;
-  }
-
-  @pragma("vm:entry-point", "call")
-  @pragma("vm:invisible")
-  static bool _returnSyncStar(Object suspendState, Object? returnValue) {
-    if (_trace) print('_returnSyncStar');
-    return false;
+    unsafeCast<_SyncStarIterable>(data)._stateAtStart = this;
+    return data;
   }
 
   @pragma("vm:recognized", "other")
@@ -706,8 +590,8 @@
 
       try {
         // Resume current sync* method in order to move to the next value.
-        final bool hasMore =
-            _state!._resume(null, pendingException, pendingStackTrace) as bool;
+        final bool hasMore = unsafeCast<bool>(unsafeCast<_SuspendState>(_state)
+            ._resume(null, pendingException, pendingStackTrace));
         pendingException = null;
         pendingStackTrace = null;
         if (!hasMore) {
diff --git a/sdk/lib/_internal/vm/lib/core_patch.dart b/sdk/lib/_internal/vm/lib/core_patch.dart
index 79ff4aa..c7ad0af 100644
--- a/sdk/lib/_internal/vm/lib/core_patch.dart
+++ b/sdk/lib/_internal/vm/lib/core_patch.dart
@@ -104,134 +104,6 @@
   bool _equalToInteger(int other);
 }
 
-// _SyncIterable and _syncIterator are used by the compiler to
-// implement sync* generator functions. A sync* generator allocates
-// and returns a new _SyncIterable object.
-
-typedef _SyncGeneratorCallback<T> = bool Function(
-    _SyncIterator<T>, Object?, StackTrace?);
-typedef _SyncGeneratorCallbackCallback<T> = _SyncGeneratorCallback<T>
-    Function();
-
-class _SyncIterable<T> extends IterableBase<T> {
-  // Closure that effectively "clones" the inner _moveNextFn.
-  // This means a _SyncIterable creates _SyncIterators that do not share state.
-  final _SyncGeneratorCallbackCallback<T> _moveNextFnMaker;
-
-  const _SyncIterable(this._moveNextFnMaker);
-
-  Iterator<T> get iterator {
-    return _SyncIterator<T>(_moveNextFnMaker());
-  }
-}
-
-class _SyncIterator<T> implements Iterator<T> {
-  _SyncGeneratorCallback<T>? _moveNextFn;
-  Iterator<T>? _yieldEachIterator;
-
-  // Stack of suspended _moveNextFn (sync_op).
-  List<_SyncGeneratorCallback<T>>? _stack;
-
-  // These two fields are set by generated code for the yield and yield*
-  // statement.
-  T? _current;
-  Iterable<T>? _yieldEachIterable;
-
-  @override
-  T get current => _current as T;
-
-  _SyncIterator(this._moveNextFn);
-
-  @pragma('vm:prefer-inline')
-  bool _handleMoveNextFnCompletion() {
-    _moveNextFn = null;
-    _current = null;
-    final stack = _stack;
-    if (stack != null && stack.isNotEmpty) {
-      _moveNextFn = stack.removeLast();
-      return true;
-    }
-    return false;
-  }
-
-  @override
-  bool moveNext() {
-    if (_moveNextFn == null) {
-      return false;
-    }
-
-    Object? pendingException;
-    StackTrace? pendingStackTrace;
-    while (true) {
-      // If the active iterator isn't a nested _SyncIterator, we have to
-      // delegate downwards from the immediate iterator.
-      final iterator = _yieldEachIterator;
-      if (iterator != null) {
-        try {
-          if (iterator.moveNext()) {
-            _current = iterator.current;
-            return true;
-          }
-        } catch (e, st) {
-          pendingException = e;
-          pendingStackTrace = st;
-        }
-        _yieldEachIterator = null;
-      }
-
-      // Start by calling _moveNextFn (sync_op) to move to the next value (or
-      // nested iterator).
-      try {
-        final haveMore =
-            _moveNextFn!.call(this, pendingException, pendingStackTrace);
-        // Exception was handled.
-        pendingException = null;
-        pendingStackTrace = null;
-        if (!haveMore) {
-          if (_handleMoveNextFnCompletion()) {
-            continue;
-          }
-          return false;
-        }
-      } catch (e, st) {
-        pendingException = e;
-        pendingStackTrace = st;
-        if (_handleMoveNextFnCompletion()) {
-          continue;
-        }
-        rethrow;
-      }
-
-      // Case: yield* some_iterator.
-      final iterable = _yieldEachIterable;
-      if (iterable != null) {
-        if (iterable is _SyncIterable) {
-          // We got a recursive yield* of sync* function. Instead of creating
-          // a new iterator we replace our _moveNextFn (remembering the
-          // current _moveNextFn for later resumption).
-          if (_stack == null) {
-            _stack = [];
-          }
-          _stack!.add(_moveNextFn!);
-          final typedIterable = unsafeCast<_SyncIterable<T>>(iterable);
-
-          _moveNextFn = typedIterable._moveNextFnMaker();
-        } else {
-          _yieldEachIterator = iterable.iterator;
-        }
-        _yieldEachIterable = null;
-        _current = null;
-
-        // Fetch the next item.
-        continue;
-      }
-
-      // We've successfully found the next `current` value.
-      return true;
-    }
-  }
-}
-
 @patch
 class StackTrace {
   @patch
diff --git a/tools/VERSION b/tools/VERSION
index a271db8..af2d161 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 18
 PATCH 0
-PRERELEASE 278
+PRERELEASE 279
 PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/tools/dom/scripts/idlparser.dart b/tools/dom/scripts/idlparser.dart
index 5dde5d5..f554b5e 100644
--- a/tools/dom/scripts/idlparser.dart
+++ b/tools/dom/scripts/idlparser.dart
@@ -204,9 +204,9 @@
   IDLType type;
   bool isOptional;
   bool isIn;
-  bool hasElipsis;
+  bool hasEllipsis;
   IDLArgument(String this.id, IDLType this.type, IDLExtAttrs extAttrs,
-              bool this.isOptional, bool this.isIn, bool this.hasElipsis) {
+              bool this.isOptional, bool this.isIn, bool this.hasEllipsis) {
     setExtAttrs(extAttrs);
   }
 
