diff --git a/pkg/analysis_server/lib/src/analysis_server.dart b/pkg/analysis_server/lib/src/analysis_server.dart
index f9f9301..f553073 100644
--- a/pkg/analysis_server/lib/src/analysis_server.dart
+++ b/pkg/analysis_server/lib/src/analysis_server.dart
@@ -1004,8 +1004,6 @@
   void _handleResolvedUnitResult(ResolvedUnitResult result) {
     var path = result.path;
 
-    analysisServer.getDocumentationCacheFor(result)?.cacheFromResult(result);
-
     var unit = result.unit;
     if (analysisServer._hasAnalysisServiceSubscription(
         AnalysisService.HIGHLIGHTS, path)) {
diff --git a/pkg/analysis_server/lib/src/analysis_server_abstract.dart b/pkg/analysis_server/lib/src/analysis_server_abstract.dart
index acfa949..6cb4994 100644
--- a/pkg/analysis_server/lib/src/analysis_server_abstract.dart
+++ b/pkg/analysis_server/lib/src/analysis_server_abstract.dart
@@ -17,7 +17,6 @@
 import 'package:analysis_server/src/server/diagnostic_server.dart';
 import 'package:analysis_server/src/server/performance.dart';
 import 'package:analysis_server/src/services/completion/completion_performance.dart';
-import 'package:analysis_server/src/services/completion/dart/documentation_cache.dart';
 import 'package:analysis_server/src/services/correction/namespace.dart';
 import 'package:analysis_server/src/services/pub/pub_api.dart';
 import 'package:analysis_server/src/services/pub/pub_command.dart';
@@ -30,7 +29,6 @@
 import 'package:analysis_server/src/utilities/process.dart';
 import 'package:analysis_server/src/utilities/request_statistics.dart';
 import 'package:analysis_server/src/utilities/tee_string_sink.dart';
-import 'package:analyzer/dart/analysis/analysis_context.dart';
 import 'package:analyzer/dart/analysis/results.dart';
 import 'package:analyzer/dart/analysis/session.dart';
 import 'package:analyzer/dart/ast/ast.dart';
@@ -96,10 +94,6 @@
   DeclarationsTracker? declarationsTracker;
   DeclarationsTrackerData? declarationsTrackerData;
 
-  /// A map from analysis contexts to the documentation cache associated with
-  /// each context.
-  Map<AnalysisContext, DocumentationCache> documentationForContext = {};
-
   /// The DiagnosticServer for this AnalysisServer. If available, it can be used
   /// to start an http diagnostics server or return the port for an existing
   /// server.
@@ -262,7 +256,6 @@
 
   void addContextsToDeclarationsTracker() {
     declarationsTracker?.discardContexts();
-    documentationForContext.clear();
     for (var driver in driverMap.values) {
       declarationsTracker?.addContext(driver.analysisContext!);
     }
@@ -338,26 +331,6 @@
         DartdocDirectiveInfo();
   }
 
-  /// Return the object used to cache the documentation for elements in the
-  /// context that produced the [result], or `null` if there is no cache for the
-  /// context.
-  DocumentationCache? getDocumentationCacheFor(ResolvedUnitResult result) {
-    return getDocumentationCacheForSession(result.session);
-  }
-
-  /// Return the object used to cache the documentation for elements in the
-  /// context that produced the [session], or `null` if there is no cache for
-  /// the context.
-  DocumentationCache? getDocumentationCacheForSession(AnalysisSession session) {
-    var context = session.analysisContext;
-    var tracker = declarationsTracker?.getContext(context);
-    if (tracker == null) {
-      return null;
-    }
-    return documentationForContext.putIfAbsent(
-        context, () => DocumentationCache(tracker.dartdocDirectiveInfo));
-  }
-
   /// Return a [Future] that completes with the [Element] at the given
   /// [offset] of the given [file], or with `null` if there is no node at the
   /// [offset] or the node does not have an element.
diff --git a/pkg/analysis_server/lib/src/cider/completion.dart b/pkg/analysis_server/lib/src/cider/completion.dart
index e9a515d..8a6c056 100644
--- a/pkg/analysis_server/lib/src/cider/completion.dart
+++ b/pkg/analysis_server/lib/src/cider/completion.dart
@@ -85,7 +85,6 @@
         enclosingNode: enclosingNode,
         offset: offset,
         dartdocDirectiveInfo: null,
-        documentationCache: null,
       );
 
       var suggestions = await performance.runAsync(
diff --git a/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestions.dart b/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestions.dart
index 570ccb6..62907af 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestions.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestions.dart
@@ -114,7 +114,6 @@
           dartdocDirectiveInfo: server.getDartdocDirectiveInfoFor(
             resolvedUnit,
           ),
-          documentationCache: server.getDocumentationCacheFor(resolvedUnit),
         );
 
         var completionId =
diff --git a/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestions2.dart b/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestions2.dart
index 0fbc2f7..d889bbd 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestions2.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestions2.dart
@@ -195,8 +195,6 @@
           offset: offset,
           dartdocDirectiveInfo:
               server.getDartdocDirectiveInfoForSession(analysisSession),
-          documentationCache:
-              server.getDocumentationCacheForSession(analysisSession),
         );
         setNewRequest(completionRequest);
 
diff --git a/pkg/analysis_server/lib/src/lsp/lsp_analysis_server.dart b/pkg/analysis_server/lib/src/lsp/lsp_analysis_server.dart
index 044ae3f..49cc0b8 100644
--- a/pkg/analysis_server/lib/src/lsp/lsp_analysis_server.dart
+++ b/pkg/analysis_server/lib/src/lsp/lsp_analysis_server.dart
@@ -1006,8 +1006,6 @@
   void _handleResolvedUnitResult(ResolvedUnitResult result) {
     var path = result.path;
 
-    analysisServer.getDocumentationCacheFor(result)?.cacheFromResult(result);
-
     final unit = result.unit;
     if (analysisServer.shouldSendClosingLabelsFor(path)) {
       final labels = DartUnitClosingLabelsComputer(result.lineInfo, unit)
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart b/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart
index 8e1cc46..e8241d4 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart
@@ -8,7 +8,6 @@
 import 'package:analysis_server/src/services/completion/dart/arglist_contributor.dart';
 import 'package:analysis_server/src/services/completion/dart/closure_contributor.dart';
 import 'package:analysis_server/src/services/completion/dart/combinator_contributor.dart';
-import 'package:analysis_server/src/services/completion/dart/documentation_cache.dart';
 import 'package:analysis_server/src/services/completion/dart/enum_constant_constructor_contributor.dart';
 import 'package:analysis_server/src/services/completion/dart/extension_member_contributor.dart';
 import 'package:analysis_server/src/services/completion/dart/feature_computer.dart';
@@ -296,8 +295,6 @@
   /// Return the object used to resolve macros in Dartdoc comments.
   final DartdocDirectiveInfo dartdocDirectiveInfo;
 
-  final DocumentationCache? documentationCache;
-
   /// Return the object used to compute the values of the features used to
   /// compute relevance scores for suggestions.
   final FeatureComputer featureComputer;
@@ -340,7 +337,6 @@
     required int offset,
     DartdocDirectiveInfo? dartdocDirectiveInfo,
     CompletionPreference completionPreference = CompletionPreference.insert,
-    DocumentationCache? documentationCache,
   }) {
     var target = CompletionTarget.forOffset(enclosingNode, offset);
 
@@ -366,7 +362,6 @@
       content: fileContent,
       contextType: contextType,
       dartdocDirectiveInfo: dartdocDirectiveInfo ?? DartdocDirectiveInfo(),
-      documentationCache: documentationCache,
       featureComputer: featureComputer,
       libraryElement: libraryElement,
       offset: offset,
@@ -383,7 +378,6 @@
     required int offset,
     DartdocDirectiveInfo? dartdocDirectiveInfo,
     CompletionPreference completionPreference = CompletionPreference.insert,
-    DocumentationCache? documentationCache,
   }) {
     return DartCompletionRequest(
       analysisSession: resolvedUnit.session,
@@ -394,7 +388,6 @@
       offset: offset,
       dartdocDirectiveInfo: dartdocDirectiveInfo,
       completionPreference: completionPreference,
-      documentationCache: documentationCache,
     );
   }
 
@@ -404,7 +397,6 @@
     required this.content,
     required this.contextType,
     required this.dartdocDirectiveInfo,
-    required this.documentationCache,
     required this.featureComputer,
     required this.libraryElement,
     required this.offset,
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/documentation_cache.dart b/pkg/analysis_server/lib/src/services/completion/dart/documentation_cache.dart
deleted file mode 100644
index 9ceca57..0000000
--- a/pkg/analysis_server/lib/src/services/completion/dart/documentation_cache.dart
+++ /dev/null
@@ -1,200 +0,0 @@
-// Copyright (c) 2021, 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 'package:analysis_server/src/computer/computer_hover.dart';
-import 'package:analyzer/dart/analysis/results.dart';
-import 'package:analyzer/dart/element/element.dart';
-import 'package:analyzer/src/dartdoc/dartdoc_directive_info.dart';
-
-/// Cached data about the documentation associated with the elements declared in
-/// a single analysis context.
-class DocumentationCache {
-  /// A shared instance for elements that have no documentation.
-  static final DocumentationWithSummary _emptyDocs =
-      DocumentationWithSummary(full: '', summary: '');
-
-  /// The object used to compute the documentation associated with a single
-  /// element.
-  final DartdocDirectiveInfo dartdocDirectiveInfo;
-
-  /// The documentation associated with the elements that have been cached. The
-  /// cache is keyed by the path of the file containing the declaration of the
-  /// element and the qualified name of the element.
-  final Map<String, Map<String, DocumentationWithSummary>> documentationCache =
-      {};
-
-  /// Initialize a newly created cache.
-  DocumentationCache(this.dartdocDirectiveInfo);
-
-  /// Fill the cache with data from the [result].
-  void cacheFromResult(ResolvedUnitResult result) {
-    var compilationUnit = result.unit.declaredElement;
-    if (compilationUnit != null) {
-      documentationCache.remove(_keyForUnit(compilationUnit));
-      _cacheFromElement(compilationUnit);
-      for (var library in result.libraryElement.importedLibraries) {
-        _cacheLibrary(library);
-      }
-    }
-  }
-
-  /// Return the data cached for the given [element], or `null` if there is no
-  /// cached data.
-  DocumentationWithSummary? dataFor(Element element) {
-    var parent = element.enclosingElement;
-    if (parent == null) {
-      return null;
-    }
-    var key = element.name;
-    if (key == null) {
-      return null;
-    }
-    if (parent is! CompilationUnitElement) {
-      var parentName = parent.name;
-      if (parentName == null) {
-        return null;
-      }
-      key = '$parentName.$key';
-      parent = parent.enclosingElement;
-    }
-    if (parent is CompilationUnitElement) {
-      var elementMap = documentationCache[_keyForUnit(parent)];
-      return elementMap?[key];
-    }
-    return null;
-  }
-
-  /// Fill the cache with data from the [compilationUnit].
-  void _cacheFromElement(CompilationUnitElement compilationUnit) {
-    var elementMap =
-        documentationCache.putIfAbsent(_keyForUnit(compilationUnit), () => {});
-    for (var element in compilationUnit.accessors) {
-      if (!element.isSynthetic) {
-        elementMap.cacheTopLevelElement(dartdocDirectiveInfo, element);
-      }
-    }
-    for (var element in compilationUnit.enums) {
-      var parentKey =
-          elementMap.cacheTopLevelElement(dartdocDirectiveInfo, element);
-      if (parentKey != null) {
-        for (var member in element.fields) {
-          elementMap.cacheMember(dartdocDirectiveInfo, parentKey, member);
-        }
-      }
-    }
-    for (var element in compilationUnit.extensions) {
-      var parentKey =
-          elementMap.cacheTopLevelElement(dartdocDirectiveInfo, element);
-      if (parentKey != null) {
-        for (var member in element.accessors) {
-          if (!member.isSynthetic) {
-            elementMap.cacheMember(dartdocDirectiveInfo, parentKey, member);
-          }
-        }
-        for (var member in element.fields) {
-          if (!member.isSynthetic) {
-            elementMap.cacheMember(dartdocDirectiveInfo, parentKey, member);
-          }
-        }
-        for (var member in element.methods) {
-          elementMap.cacheMember(dartdocDirectiveInfo, parentKey, member);
-        }
-      }
-    }
-    for (var element in compilationUnit.functions) {
-      elementMap.cacheTopLevelElement(dartdocDirectiveInfo, element);
-    }
-    for (var element in [
-      ...compilationUnit.mixins,
-      ...compilationUnit.classes
-    ]) {
-      var parentKey =
-          elementMap.cacheTopLevelElement(dartdocDirectiveInfo, element);
-      if (parentKey != null) {
-        for (var member in element.accessors) {
-          if (!element.isSynthetic) {
-            elementMap.cacheMember(dartdocDirectiveInfo, parentKey, member);
-          }
-        }
-        for (var member in element.fields) {
-          if (!element.isSynthetic) {
-            elementMap.cacheMember(dartdocDirectiveInfo, parentKey, member);
-          }
-        }
-        for (var member in element.methods) {
-          elementMap.cacheMember(dartdocDirectiveInfo, parentKey, member);
-        }
-      }
-    }
-    for (var element in compilationUnit.topLevelVariables) {
-      if (!element.isSynthetic) {
-        elementMap.cacheTopLevelElement(dartdocDirectiveInfo, element);
-      }
-    }
-    for (var element in compilationUnit.typeAliases) {
-      elementMap.cacheTopLevelElement(dartdocDirectiveInfo, element);
-    }
-  }
-
-  /// Cache the data for the given [library] and every library exported from it
-  /// if it hasn't already been cached.
-  void _cacheLibrary(LibraryElement library) {
-    if (_hasDataFor(library.definingCompilationUnit)) {
-      return;
-    }
-    for (var unit in library.units) {
-      _cacheFromElement(unit);
-    }
-    for (var exported in library.exportedLibraries) {
-      _cacheLibrary(exported);
-    }
-  }
-
-  /// Return `true` if the cache contains data for the [compilationUnit].
-  bool _hasDataFor(CompilationUnitElement compilationUnit) {
-    return documentationCache.containsKey(_keyForUnit(compilationUnit));
-  }
-
-  /// Return the key used in the [documentationCache] for the [compilationUnit].
-  String _keyForUnit(CompilationUnitElement compilationUnit) =>
-      compilationUnit.source.fullName;
-}
-
-extension on Map<String, DocumentationWithSummary> {
-  /// Cache the data associated with the [element], using the given [key].
-  DocumentationWithSummary? cacheElement(
-      DartdocDirectiveInfo dartdocDirectiveInfo, String key, Element element) {
-    var documentation = DartUnitHoverComputer.computeDocumentation(
-        dartdocDirectiveInfo, element,
-        includeSummary: true);
-    if (documentation is DocumentationWithSummary) {
-      return this[key] = documentation;
-    }
-    return this[key] = DocumentationCache._emptyDocs;
-  }
-
-  /// Cache the data associated with the [member] element given that the key
-  /// associated with the member's parent is [parentKey].
-  void cacheMember(DartdocDirectiveInfo dartdocDirectiveInfo, String parentKey,
-      Element member) {
-    var name = member.name;
-    if (name == null) {
-      return;
-    }
-    cacheElement(dartdocDirectiveInfo, '$parentKey.$name', member);
-  }
-
-  /// Cache the data associated with the top-level [element], and return the
-  /// [key] used for the element. This does not cache any data associated with
-  /// any other elements, including children of the [element].
-  String? cacheTopLevelElement(
-      DartdocDirectiveInfo dartdocDirectiveInfo, Element element) {
-    var key = element.name;
-    if (key == null) {
-      return null;
-    }
-    cacheElement(dartdocDirectiveInfo, key, element);
-    return key;
-  }
-}
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart b/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart
index 322ebfa..ad77b39 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart
@@ -1354,14 +1354,6 @@
 
   /// If the [element] has a documentation comment, return it.
   _ElementDocumentation? _getDocumentation(Element element) {
-    var documentationCache = request.documentationCache;
-    var data = documentationCache?.dataFor(element);
-    if (data != null) {
-      return _ElementDocumentation(
-        full: data.full,
-        summary: data.summary,
-      );
-    }
     var doc = DartUnitHoverComputer.computeDocumentation(
       request.dartdocDirectiveInfo,
       element,
@@ -1452,13 +1444,6 @@
   /// If the [element] has a documentation comment, fill the [suggestion]'s
   /// documentation fields.
   void _setDocumentation(CompletionSuggestion suggestion, Element element) {
-    var documentationCache = request.documentationCache;
-    var data = documentationCache?.dataFor(element);
-    if (data != null) {
-      suggestion.docComplete = data.full;
-      suggestion.docSummary = data.summary;
-      return;
-    }
     var doc = DartUnitHoverComputer.computeDocumentation(
         request.dartdocDirectiveInfo, element,
         includeSummary: true);
diff --git a/pkg/analysis_server/tool/code_completion/completion_metrics.dart b/pkg/analysis_server/tool/code_completion/completion_metrics.dart
index 0520b3f..3cd822f 100644
--- a/pkg/analysis_server/tool/code_completion/completion_metrics.dart
+++ b/pkg/analysis_server/tool/code_completion/completion_metrics.dart
@@ -12,7 +12,6 @@
 import 'package:analysis_server/src/protocol/protocol_internal.dart';
 import 'package:analysis_server/src/protocol_server.dart' as protocol;
 import 'package:analysis_server/src/services/completion/dart/completion_manager.dart';
-import 'package:analysis_server/src/services/completion/dart/documentation_cache.dart';
 import 'package:analysis_server/src/services/completion/dart/feature_computer.dart';
 import 'package:analysis_server/src/services/completion/dart/probability_range.dart';
 import 'package:analysis_server/src/services/completion/dart/relevance_tables.g.dart';
@@ -836,7 +835,6 @@
   Future<void> computeSuggestionsAndMetrics(
     ExpectedCompletion expectedCompletion,
     AnalysisContext context,
-    DocumentationCache documentationCache,
   ) async {
     // As this point the completion suggestions are computed,
     // and results are collected with varying settings for
@@ -850,7 +848,6 @@
       var request = DartCompletionRequest.forResolvedUnit(
         resolvedUnit: resolvedUnitResult,
         offset: expectedCompletion.offset,
-        documentationCache: documentationCache,
       );
 
       var opType = OpType.forCompletion(request.target, request.offset);
diff --git a/pkg/analysis_server/tool/code_completion/completion_metrics_base.dart b/pkg/analysis_server/tool/code_completion/completion_metrics_base.dart
index 34056c4..3e13f79 100644
--- a/pkg/analysis_server/tool/code_completion/completion_metrics_base.dart
+++ b/pkg/analysis_server/tool/code_completion/completion_metrics_base.dart
@@ -5,7 +5,6 @@
 import 'dart:io' show stdout;
 import 'dart:math' as math;
 
-import 'package:analysis_server/src/services/completion/dart/documentation_cache.dart';
 import 'package:analyzer/dart/analysis/analysis_context.dart';
 import 'package:analyzer/dart/analysis/context_root.dart';
 import 'package:analyzer/dart/analysis/results.dart';
@@ -14,7 +13,6 @@
 import 'package:analyzer/file_system/overlay_file_system.dart';
 import 'package:analyzer/file_system/physical_file_system.dart';
 import 'package:analyzer/src/dart/analysis/analysis_context_collection.dart';
-import 'package:analyzer/src/dartdoc/dartdoc_directive_info.dart';
 import 'package:analyzer/src/util/file_paths.dart' as file_paths;
 import 'package:args/args.dart';
 import 'package:cli_util/cli_logging.dart';
@@ -60,11 +58,9 @@
     setupForResolution(context);
 
     logger.write('Computing completions at root: ${root.root.path}\n');
-    var documentationCache = DocumentationCache(DartdocDirectiveInfo());
 
     var results = await resolveAnalyzedFiles(
       context: context,
-      documentationCache: documentationCache,
     );
 
     logger.write('Analyzing completion suggestions...\n');
@@ -84,7 +80,6 @@
         await computeSuggestionsAndMetrics(
           expectedCompletion,
           context,
-          documentationCache,
         );
 
         await removeOverlay(filePath);
@@ -109,7 +104,6 @@
   Future<void> computeSuggestionsAndMetrics(
     ExpectedCompletion expectedCompletion,
     AnalysisContext context,
-    DocumentationCache documentationCache,
   );
 
   /// Removes the overlay which has been applied to [filePath].
@@ -118,7 +112,6 @@
   /// Resolves all analyzed files within [context].
   Future<List<ResolvedUnitResult>> resolveAnalyzedFiles({
     required AnalysisContext context,
-    required DocumentationCache documentationCache,
   }) async {
     final analyzedFileCount = context.contextRoot.analyzedFiles().length;
     logger.write('Resolving $analyzedFileCount files...\n');
@@ -141,7 +134,6 @@
             continue;
           } else {
             results.add(result);
-            documentationCache.cacheFromResult(result);
           }
         } catch (exception, stackTrace) {
           progress.clear();
diff --git a/pkg/analysis_server/tool/code_completion/completion_metrics_client.dart b/pkg/analysis_server/tool/code_completion/completion_metrics_client.dart
index 00e636e..0fa0e39 100644
--- a/pkg/analysis_server/tool/code_completion/completion_metrics_client.dart
+++ b/pkg/analysis_server/tool/code_completion/completion_metrics_client.dart
@@ -9,7 +9,6 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/protocol/protocol_internal.dart';
 import 'package:analysis_server/src/server/driver.dart';
-import 'package:analysis_server/src/services/completion/dart/documentation_cache.dart';
 import 'package:analyzer/dart/analysis/analysis_context.dart';
 import 'package:args/args.dart';
 import 'package:path/path.dart' as path;
@@ -506,7 +505,6 @@
   Future<void> computeSuggestionsAndMetrics(
     ExpectedCompletion expectedCompletion,
     AnalysisContext context,
-    DocumentationCache documentationCache,
   ) async {
     var stopwatch = Stopwatch()..start();
     var suggestionsData = await client.requestCompletion(
diff --git a/pkg/compiler/lib/src/serialization/indexed_sink_source.dart b/pkg/compiler/lib/src/serialization/indexed_sink_source.dart
index 58d1849..ec54310 100644
--- a/pkg/compiler/lib/src/serialization/indexed_sink_source.dart
+++ b/pkg/compiler/lib/src/serialization/indexed_sink_source.dart
@@ -88,7 +88,8 @@
 
   UnorderedIndexedSource(this._sourceReader, {this.previousSource})
       // [cache] slot 1 is pre-allocated to `null`.
-      : _cache = previousSource?._cache ?? {1: null};
+      : _cache =
+            previousSource != null ? {...previousSource._cache} : {1: null};
 
   /// Reads a reference to an [E?] value from the data source.
   ///
diff --git a/pkg/compiler/lib/src/serialization/source.dart b/pkg/compiler/lib/src/serialization/source.dart
index 7fab209..bd55802 100644
--- a/pkg/compiler/lib/src/serialization/source.dart
+++ b/pkg/compiler/lib/src/serialization/source.dart
@@ -96,11 +96,15 @@
 
   DataSourceReader(this._sourceReader, CompilerOptions options,
       {this.useDataKinds = false,
-      this.importedIndices,
+      DataSourceIndices? importedIndices,
       this.interner,
       this.useDeferredStrategy = false})
       : enableDeferredStrategy =
             (options.features.deferredSerialization.isEnabled),
+        this.importedIndices = importedIndices == null
+            ? null
+            : (DataSourceIndices(importedIndices.previousSourceReader)
+              ..caches.addAll(importedIndices.caches)),
         endOffset = (importedIndices?.previousSourceReader?.endOffset ?? 0) +
             _sourceReader.length {
     if (!enableDeferredStrategy) {
diff --git a/pkg/kernel/lib/src/constant_replacer.dart b/pkg/kernel/lib/src/constant_replacer.dart
new file mode 100644
index 0000000..7661867
--- /dev/null
+++ b/pkg/kernel/lib/src/constant_replacer.dart
@@ -0,0 +1,208 @@
+// 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.md file.
+
+import '../ast.dart';
+
+/// Replacement visitor to clone a Constant if a subnode is replaced, and
+/// otherwise returns `null`.
+class ConstantReplacer implements ConstantVisitor<Constant?> {
+  ConstantReplacer();
+  final Map<Constant, Constant?> cache = {};
+
+  /// Like with Constants, `null` is used to signal that the [type] has not
+  /// changed.
+  DartType? visitDartType(DartType type) => null;
+
+  /// Unlike Constants and DartTypes, TreeNodes' equality checks are not
+  /// structural and therefore can be checked directly without needing `null`.
+  TreeNode visitTreeNode(TreeNode node) => node;
+
+  /// Returns a new type list that contains the recursively visited [types].
+  ///
+  /// Returns `null` if a recursive visit of [types] does not change the list.
+  List<DartType>? visitDartTypeList(List<DartType> types) {
+    List<DartType>? newTypes;
+    for (int i = 0; i < types.length; i++) {
+      DartType? result = visitDartType(types[i]);
+      if (result != null) {
+        (newTypes ??= List.of(types))[i] = result;
+      }
+    }
+    return newTypes;
+  }
+
+  /// Returns a new Constant list that contains the recursively visited
+  /// [constants].
+  ///
+  /// Returns `null` if a recursive visit of [constants] does not change the
+  /// list.
+  List<Constant>? visitConstantList(List<Constant> constants) {
+    List<Constant>? newConstants;
+    for (int i = 0; i < constants.length; i++) {
+      Constant? result = visitConstant(constants[i]);
+      if (result != null) {
+        (newConstants ??= List.of(constants))[i] = result;
+      }
+    }
+    return newConstants;
+  }
+
+  /// By default, don't change the [node].
+  @override
+  Constant? defaultConstant(Constant node) => null;
+
+  /// Visits [node] if not already visited to compute a value for [node].
+  ///
+  /// If the value has already been computed the cached value is returned
+  /// immediately.
+  ///
+  /// Call this method to compute values for subnodes recursively, while only
+  /// visiting each subnode once.
+  Constant? visitConstant(Constant node) {
+    return cache[node] ??= node.accept(this);
+  }
+
+  @override
+  Constant? visitBoolConstant(BoolConstant node) => defaultConstant(node);
+
+  @override
+  Constant? visitConstructorTearOffConstant(ConstructorTearOffConstant node) =>
+      defaultConstant(node);
+
+  @override
+  Constant? visitDoubleConstant(DoubleConstant node) => defaultConstant(node);
+
+  @override
+  Constant? visitIntConstant(IntConstant node) => defaultConstant(node);
+
+  @override
+  Constant? visitNullConstant(NullConstant node) => defaultConstant(node);
+
+  @override
+  Constant? visitRedirectingFactoryTearOffConstant(
+          RedirectingFactoryTearOffConstant node) =>
+      defaultConstant(node);
+
+  @override
+  Constant? visitStaticTearOffConstant(StaticTearOffConstant node) =>
+      defaultConstant(node);
+
+  @override
+  Constant? visitStringConstant(StringConstant node) => defaultConstant(node);
+
+  @override
+  Constant? visitSymbolConstant(SymbolConstant node) => defaultConstant(node);
+
+  @override
+  Constant? visitInstanceConstant(InstanceConstant node) {
+    List<DartType>? typeArguments = visitDartTypeList(node.typeArguments);
+    Map<Reference, Constant>? fieldValues;
+    for (Reference reference in node.fieldValues.keys) {
+      Constant? result = visitConstant(node.fieldValues[reference]!);
+      if (result != null) {
+        (fieldValues ??= Map.of(node.fieldValues))[reference] = result;
+      }
+    }
+    if (typeArguments == null && fieldValues == null) {
+      return null;
+    } else {
+      return InstanceConstant(node.classReference,
+          typeArguments ?? node.typeArguments, fieldValues ?? node.fieldValues);
+    }
+  }
+
+  @override
+  Constant? visitInstantiationConstant(InstantiationConstant node) {
+    List<DartType>? types = visitDartTypeList(node.types);
+    Constant? tearOffConstant = visitConstant(node.tearOffConstant);
+    if (types == null && tearOffConstant == null) {
+      return null;
+    } else {
+      return InstantiationConstant(
+          tearOffConstant ?? node.tearOffConstant, types ?? node.types);
+    }
+  }
+
+  @override
+  Constant? visitListConstant(ListConstant node) {
+    DartType? typeArgument = visitDartType(node.typeArgument);
+    List<Constant>? entries = visitConstantList(node.entries);
+    if (typeArgument == null && entries == null) {
+      return null;
+    } else {
+      return ListConstant(
+          typeArgument ?? node.typeArgument, entries ?? node.entries);
+    }
+  }
+
+  @override
+  Constant? visitMapConstant(MapConstant node) {
+    DartType? keyType = visitDartType(node.keyType);
+    DartType? valueType = visitDartType(node.valueType);
+    List<ConstantMapEntry>? entries;
+    for (int i = 0; i < node.entries.length; i++) {
+      ConstantMapEntry entry = node.entries[i];
+      Constant? key = visitConstant(entry.key);
+      Constant? value = visitConstant(entry.value);
+      if (key != null || value != null) {
+        (entries ??= List.of(node.entries))[i] =
+            ConstantMapEntry(key ?? entry.key, value ?? entry.value);
+      }
+    }
+    if (keyType == null && valueType == null && entries == null) {
+      return null;
+    } else {
+      return MapConstant(keyType ?? node.keyType, valueType ?? node.valueType,
+          entries ?? node.entries);
+    }
+  }
+
+  @override
+  Constant? visitSetConstant(SetConstant node) {
+    DartType? typeArgument = visitDartType(node.typeArgument);
+    List<Constant>? entries = visitConstantList(node.entries);
+    if (typeArgument == null && entries == null) {
+      return null;
+    } else {
+      return SetConstant(
+          typeArgument ?? node.typeArgument, entries ?? node.entries);
+    }
+  }
+
+  @override
+  Constant? visitTypeLiteralConstant(TypeLiteralConstant node) {
+    DartType? type = visitDartType(node.type);
+    return type == null ? null : TypeLiteralConstant(type);
+  }
+
+  @override
+  Constant? visitTypedefTearOffConstant(TypedefTearOffConstant node) {
+    TearOffConstant? tearOffConstant =
+        visitConstant(node.tearOffConstant) as TearOffConstant?;
+    List<DartType>? types = visitDartTypeList(node.types);
+    List<TypeParameter>? parameters;
+    for (int i = 0; i < node.parameters.length; i++) {
+      TypeParameter result = visitTreeNode(node.parameters[i]) as TypeParameter;
+      if (result != node.parameters[i]) {
+        (parameters ??= List.of(node.parameters))[i] = result;
+      }
+    }
+    if (tearOffConstant == null && types == null && parameters == null) {
+      return null;
+    } else {
+      return TypedefTearOffConstant(parameters ?? node.parameters,
+          tearOffConstant ?? node.tearOffConstant, types ?? node.types);
+    }
+  }
+
+  @override
+  Constant? visitUnevaluatedConstant(UnevaluatedConstant node) {
+    Expression expression = visitTreeNode(node.expression) as Expression;
+    if (expression == node.expression) {
+      return null;
+    } else {
+      return UnevaluatedConstant(expression);
+    }
+  }
+}
diff --git a/runtime/lib/timeline.cc b/runtime/lib/timeline.cc
index 0b3816c..7deea5c 100644
--- a/runtime/lib/timeline.cc
+++ b/runtime/lib/timeline.cc
@@ -24,15 +24,11 @@
   return Bool::False().ptr();
 }
 
-DEFINE_NATIVE_ENTRY(Timeline_getNextAsyncId, 0, 0) {
+DEFINE_NATIVE_ENTRY(Timeline_getNextTaskId, 0, 0) {
 #if !defined(SUPPORT_TIMELINE)
   return Integer::New(0);
 #else
-  TimelineEventRecorder* recorder = Timeline::recorder();
-  if (recorder == NULL) {
-    return Integer::New(0);
-  }
-  return Integer::New(recorder->GetNextAsyncId());
+  return Integer::New(thread->GetNextTaskId());
 #endif
 }
 
diff --git a/runtime/vm/bootstrap_natives.h b/runtime/vm/bootstrap_natives.h
index 00a3c4c..c2b2ddc 100644
--- a/runtime/vm/bootstrap_natives.h
+++ b/runtime/vm/bootstrap_natives.h
@@ -152,7 +152,7 @@
   V(TypeError_throwNew, 4)                                                     \
   V(Stopwatch_now, 0)                                                          \
   V(Stopwatch_frequency, 0)                                                    \
-  V(Timeline_getNextAsyncId, 0)                                                \
+  V(Timeline_getNextTaskId, 0)                                                 \
   V(Timeline_getTraceClock, 0)                                                 \
   V(Timeline_isDartStreamEnabled, 0)                                           \
   V(Timeline_reportFlowEvent, 5)                                               \
diff --git a/runtime/vm/compiler/asm_intrinsifier_arm.cc b/runtime/vm/compiler/asm_intrinsifier_arm.cc
index 5bd61d7..c061a93 100644
--- a/runtime/vm/compiler/asm_intrinsifier_arm.cc
+++ b/runtime/vm/compiler/asm_intrinsifier_arm.cc
@@ -1900,6 +1900,23 @@
 #endif
 }
 
+void AsmIntrinsifier::Timeline_getNextTaskId(Assembler* assembler,
+                                             Label* normal_ir_body) {
+#if !defined(SUPPORT_TIMELINE)
+  __ LoadImmediate(R0, target::ToRawSmi(0));
+  __ Ret();
+#else
+  __ ldr(R1, Address(THR, target::Thread::next_task_id_offset()));
+  __ ldr(R2, Address(THR, target::Thread::next_task_id_offset() + 4));
+  __ SmiTag(R0, R1);  // Ignore loss of precision.
+  __ adds(R1, R1, Operand(1));
+  __ adcs(R2, R2, Operand(0));
+  __ str(R1, Address(THR, target::Thread::next_task_id_offset()));
+  __ str(R2, Address(THR, target::Thread::next_task_id_offset() + 4));
+  __ Ret();
+#endif
+}
+
 #undef __
 
 }  // namespace compiler
diff --git a/runtime/vm/compiler/asm_intrinsifier_arm64.cc b/runtime/vm/compiler/asm_intrinsifier_arm64.cc
index 2cd0d6e..33e850c 100644
--- a/runtime/vm/compiler/asm_intrinsifier_arm64.cc
+++ b/runtime/vm/compiler/asm_intrinsifier_arm64.cc
@@ -2146,6 +2146,20 @@
 #endif
 }
 
+void AsmIntrinsifier::Timeline_getNextTaskId(Assembler* assembler,
+                                             Label* normal_ir_body) {
+#if !defined(SUPPORT_TIMELINE)
+  __ LoadImmediate(R0, target::ToRawSmi(0));
+  __ ret();
+#else
+  __ ldr(R0, Address(THR, target::Thread::next_task_id_offset()));
+  __ add(R1, R0, Operand(1));
+  __ str(R1, Address(THR, target::Thread::next_task_id_offset()));
+  __ SmiTag(R0);  // Ignore loss of precision.
+  __ ret();
+#endif
+}
+
 #undef __
 
 }  // namespace compiler
diff --git a/runtime/vm/compiler/asm_intrinsifier_ia32.cc b/runtime/vm/compiler/asm_intrinsifier_ia32.cc
index 538ce05..bc39517 100644
--- a/runtime/vm/compiler/asm_intrinsifier_ia32.cc
+++ b/runtime/vm/compiler/asm_intrinsifier_ia32.cc
@@ -1937,6 +1937,24 @@
 #endif
 }
 
+void AsmIntrinsifier::Timeline_getNextTaskId(Assembler* assembler,
+                                             Label* normal_ir_body) {
+#if !defined(SUPPORT_TIMELINE)
+  __ LoadImmediate(EAX, target::ToRawSmi(0));
+  __ ret();
+#else
+  __ movl(EBX, Address(THR, target::Thread::next_task_id_offset()));
+  __ movl(ECX, Address(THR, target::Thread::next_task_id_offset() + 4));
+  __ movl(EAX, EBX);
+  __ SmiTag(EAX);  // Ignore loss of precision.
+  __ addl(EBX, Immediate(1));
+  __ adcl(ECX, Immediate(0));
+  __ movl(Address(THR, target::Thread::next_task_id_offset()), EBX);
+  __ movl(Address(THR, target::Thread::next_task_id_offset() + 4), ECX);
+  __ ret();
+#endif
+}
+
 #undef __
 
 }  // namespace compiler
diff --git a/runtime/vm/compiler/asm_intrinsifier_riscv.cc b/runtime/vm/compiler/asm_intrinsifier_riscv.cc
index a1b94de..e6bdde0 100644
--- a/runtime/vm/compiler/asm_intrinsifier_riscv.cc
+++ b/runtime/vm/compiler/asm_intrinsifier_riscv.cc
@@ -2160,6 +2160,30 @@
 #endif
 }
 
+void AsmIntrinsifier::Timeline_getNextTaskId(Assembler* assembler,
+                                             Label* normal_ir_body) {
+#if !defined(SUPPORT_TIMELINE)
+  __ LoadImmediate(A0, target::ToRawSmi(0));
+  __ ret();
+#elif XLEN == 64
+  __ ld(A0, Address(THR, target::Thread::next_task_id_offset()));
+  __ addi(A1, A0, 1);
+  __ sd(A1, Address(THR, target::Thread::next_task_id_offset()));
+  __ SmiTag(A0);  // Ignore loss of precision.
+  __ ret();
+#else
+  __ lw(T0, Address(THR, target::Thread::next_task_id_offset()));
+  __ lw(T1, Address(THR, target::Thread::next_task_id_offset() + 4));
+  __ SmiTag(A0, T0);  // Ignore loss of precision.
+  __ addi(T2, T0, 1);
+  __ sltu(T3, T2, T0);  // Carry.
+  __ add(T1, T1, T3);
+  __ sw(T2, Address(THR, target::Thread::next_task_id_offset()));
+  __ sw(T1, Address(THR, target::Thread::next_task_id_offset() + 4));
+  __ ret();
+#endif
+}
+
 #undef __
 
 }  // namespace compiler
diff --git a/runtime/vm/compiler/asm_intrinsifier_x64.cc b/runtime/vm/compiler/asm_intrinsifier_x64.cc
index 9ff337a..ad0d3a8 100644
--- a/runtime/vm/compiler/asm_intrinsifier_x64.cc
+++ b/runtime/vm/compiler/asm_intrinsifier_x64.cc
@@ -2034,6 +2034,21 @@
 #endif
 }
 
+void AsmIntrinsifier::Timeline_getNextTaskId(Assembler* assembler,
+                                             Label* normal_ir_body) {
+#if !defined(SUPPORT_TIMELINE)
+  __ xorq(RAX, RAX);  // Return Smi 0.
+  __ ret();
+#else
+  __ movq(RAX, Address(THR, target::Thread::next_task_id_offset()));
+  __ movq(RBX, RAX);
+  __ incq(RBX);
+  __ movq(Address(THR, target::Thread::next_task_id_offset()), RBX);
+  __ SmiTag(RAX);  // Ignore loss of precision.
+  __ ret();
+#endif
+}
+
 #undef __
 
 }  // namespace compiler
diff --git a/runtime/vm/compiler/recognized_methods_list.h b/runtime/vm/compiler/recognized_methods_list.h
index 010e653..36d758a 100644
--- a/runtime/vm/compiler/recognized_methods_list.h
+++ b/runtime/vm/compiler/recognized_methods_list.h
@@ -438,6 +438,7 @@
   V(::, _getDefaultTag, UserTag_defaultTag, 0x6c19c8a5)                        \
   V(::, _getCurrentTag, Profiler_getCurrentTag, 0x70ead08e)                    \
   V(::, _isDartStreamEnabled, Timeline_isDartStreamEnabled, 0xc97aafb3)        \
+  V(::, _getNextTaskId, Timeline_getNextTaskId, 0x5b2b0b0b)                    \
 
 #define INTERNAL_LIB_INTRINSIC_LIST(V)                                         \
   V(::, allocateOneByteString, AllocateOneByteString, 0x9e7745d5)              \
diff --git a/runtime/vm/compiler/runtime_api.h b/runtime/vm/compiler/runtime_api.h
index fb828f0..ecbf16a 100644
--- a/runtime/vm/compiler/runtime_api.h
+++ b/runtime/vm/compiler/runtime_api.h
@@ -1250,6 +1250,7 @@
   THREAD_XMM_CONSTANT_LIST(DECLARE_CONSTANT_OFFSET_GETTER)
 #undef DECLARE_CONSTANT_OFFSET_GETTER
 
+  static word next_task_id_offset();
   static word random_offset();
 
   static word suspend_state_init_async_entry_point_offset();
diff --git a/runtime/vm/compiler/runtime_offsets_extracted.h b/runtime/vm/compiler/runtime_offsets_extracted.h
index fe183da..fea08a0 100644
--- a/runtime/vm/compiler/runtime_offsets_extracted.h
+++ b/runtime/vm/compiler/runtime_offsets_extracted.h
@@ -322,13 +322,13 @@
     Thread_call_to_runtime_entry_point_offset = 300;
 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 = 912;
 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;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 908;
+    Thread_service_extension_stream_offset = 916;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
     340;
 static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 252;
@@ -372,7 +372,7 @@
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
     872;
 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 = 920;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     64;
 static constexpr dart::compiler::target::word
@@ -486,10 +486,11 @@
 static constexpr dart::compiler::target::word Thread_callback_code_offset = 864;
 static constexpr dart::compiler::target::word
     Thread_callback_stack_return_offset = 868;
-static constexpr dart::compiler::target::word Thread_random_offset = 888;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 888;
+static constexpr dart::compiler::target::word Thread_random_offset = 896;
 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;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 904;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -990,13 +991,13 @@
     Thread_call_to_runtime_entry_point_offset = 576;
 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 = 1800;
 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;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1800;
+    Thread_service_extension_stream_offset = 1808;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
@@ -1041,7 +1042,7 @@
     1744;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1808;
+    1816;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
@@ -1156,10 +1157,11 @@
     1728;
 static constexpr dart::compiler::target::word
     Thread_callback_stack_return_offset = 1736;
-static constexpr dart::compiler::target::word Thread_random_offset = 1768;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1768;
+static constexpr dart::compiler::target::word Thread_random_offset = 1776;
 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;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1784;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -1659,13 +1661,13 @@
     Thread_call_to_runtime_entry_point_offset = 300;
 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 = 880;
 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;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 876;
+    Thread_service_extension_stream_offset = 884;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
     340;
 static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 252;
@@ -1709,7 +1711,7 @@
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
     840;
 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 = 888;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     64;
 static constexpr dart::compiler::target::word
@@ -1823,10 +1825,11 @@
 static constexpr dart::compiler::target::word Thread_callback_code_offset = 832;
 static constexpr dart::compiler::target::word
     Thread_callback_stack_return_offset = 836;
-static constexpr dart::compiler::target::word Thread_random_offset = 856;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 856;
+static constexpr dart::compiler::target::word Thread_random_offset = 864;
 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;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 872;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -2324,13 +2327,13 @@
     Thread_call_to_runtime_entry_point_offset = 576;
 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 = 1864;
 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;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1864;
+    Thread_service_extension_stream_offset = 1872;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
@@ -2375,7 +2378,7 @@
     1808;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1872;
+    1880;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
@@ -2490,10 +2493,11 @@
     1792;
 static constexpr dart::compiler::target::word
     Thread_callback_stack_return_offset = 1800;
-static constexpr dart::compiler::target::word Thread_random_offset = 1832;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1832;
+static constexpr dart::compiler::target::word Thread_random_offset = 1840;
 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;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1848;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -2996,13 +3000,13 @@
     Thread_call_to_runtime_entry_point_offset = 576;
 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 = 1800;
 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;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1800;
+    Thread_service_extension_stream_offset = 1808;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
@@ -3047,7 +3051,7 @@
     1744;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1808;
+    1816;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
@@ -3162,10 +3166,11 @@
     1728;
 static constexpr dart::compiler::target::word
     Thread_callback_stack_return_offset = 1736;
-static constexpr dart::compiler::target::word Thread_random_offset = 1768;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1768;
+static constexpr dart::compiler::target::word Thread_random_offset = 1776;
 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;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1784;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -3667,13 +3672,13 @@
     Thread_call_to_runtime_entry_point_offset = 576;
 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 = 1864;
 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;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1864;
+    Thread_service_extension_stream_offset = 1872;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
@@ -3718,7 +3723,7 @@
     1808;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1872;
+    1880;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
@@ -3833,10 +3838,11 @@
     1792;
 static constexpr dart::compiler::target::word
     Thread_callback_stack_return_offset = 1800;
-static constexpr dart::compiler::target::word Thread_random_offset = 1832;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1832;
+static constexpr dart::compiler::target::word Thread_random_offset = 1840;
 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;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1848;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -4337,13 +4343,13 @@
     Thread_call_to_runtime_entry_point_offset = 300;
 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 = 952;
 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;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 948;
+    Thread_service_extension_stream_offset = 956;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
     340;
 static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 252;
@@ -4387,7 +4393,7 @@
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
     912;
 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 = 960;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     64;
 static constexpr dart::compiler::target::word
@@ -4501,10 +4507,11 @@
 static constexpr dart::compiler::target::word Thread_callback_code_offset = 904;
 static constexpr dart::compiler::target::word
     Thread_callback_stack_return_offset = 908;
-static constexpr dart::compiler::target::word Thread_random_offset = 928;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 928;
+static constexpr dart::compiler::target::word Thread_random_offset = 936;
 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;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 944;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -5007,13 +5014,13 @@
     Thread_call_to_runtime_entry_point_offset = 576;
 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 = 1856;
 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;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1856;
+    Thread_service_extension_stream_offset = 1864;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
@@ -5058,7 +5065,7 @@
     1800;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1864;
+    1872;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
@@ -5173,10 +5180,11 @@
     1784;
 static constexpr dart::compiler::target::word
     Thread_callback_stack_return_offset = 1792;
-static constexpr dart::compiler::target::word Thread_random_offset = 1824;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1824;
+static constexpr dart::compiler::target::word Thread_random_offset = 1832;
 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;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1840;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -5671,13 +5679,13 @@
     Thread_call_to_runtime_entry_point_offset = 300;
 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 = 912;
 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;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 908;
+    Thread_service_extension_stream_offset = 916;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
     340;
 static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 252;
@@ -5721,7 +5729,7 @@
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
     872;
 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 = 920;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     64;
 static constexpr dart::compiler::target::word
@@ -5835,10 +5843,11 @@
 static constexpr dart::compiler::target::word Thread_callback_code_offset = 864;
 static constexpr dart::compiler::target::word
     Thread_callback_stack_return_offset = 868;
-static constexpr dart::compiler::target::word Thread_random_offset = 888;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 888;
+static constexpr dart::compiler::target::word Thread_random_offset = 896;
 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;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 904;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -6331,13 +6340,13 @@
     Thread_call_to_runtime_entry_point_offset = 576;
 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 = 1800;
 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;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1800;
+    Thread_service_extension_stream_offset = 1808;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
@@ -6382,7 +6391,7 @@
     1744;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1808;
+    1816;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
@@ -6497,10 +6506,11 @@
     1728;
 static constexpr dart::compiler::target::word
     Thread_callback_stack_return_offset = 1736;
-static constexpr dart::compiler::target::word Thread_random_offset = 1768;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1768;
+static constexpr dart::compiler::target::word Thread_random_offset = 1776;
 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;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1784;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -6992,13 +7002,13 @@
     Thread_call_to_runtime_entry_point_offset = 300;
 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 = 880;
 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;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 876;
+    Thread_service_extension_stream_offset = 884;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
     340;
 static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 252;
@@ -7042,7 +7052,7 @@
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
     840;
 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 = 888;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     64;
 static constexpr dart::compiler::target::word
@@ -7156,10 +7166,11 @@
 static constexpr dart::compiler::target::word Thread_callback_code_offset = 832;
 static constexpr dart::compiler::target::word
     Thread_callback_stack_return_offset = 836;
-static constexpr dart::compiler::target::word Thread_random_offset = 856;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 856;
+static constexpr dart::compiler::target::word Thread_random_offset = 864;
 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;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 872;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -7649,13 +7660,13 @@
     Thread_call_to_runtime_entry_point_offset = 576;
 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 = 1864;
 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;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1864;
+    Thread_service_extension_stream_offset = 1872;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
@@ -7700,7 +7711,7 @@
     1808;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1872;
+    1880;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
@@ -7815,10 +7826,11 @@
     1792;
 static constexpr dart::compiler::target::word
     Thread_callback_stack_return_offset = 1800;
-static constexpr dart::compiler::target::word Thread_random_offset = 1832;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1832;
+static constexpr dart::compiler::target::word Thread_random_offset = 1840;
 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;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1848;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -8313,13 +8325,13 @@
     Thread_call_to_runtime_entry_point_offset = 576;
 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 = 1800;
 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;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1800;
+    Thread_service_extension_stream_offset = 1808;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
@@ -8364,7 +8376,7 @@
     1744;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1808;
+    1816;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
@@ -8479,10 +8491,11 @@
     1728;
 static constexpr dart::compiler::target::word
     Thread_callback_stack_return_offset = 1736;
-static constexpr dart::compiler::target::word Thread_random_offset = 1768;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1768;
+static constexpr dart::compiler::target::word Thread_random_offset = 1776;
 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;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1784;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -8976,13 +8989,13 @@
     Thread_call_to_runtime_entry_point_offset = 576;
 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 = 1864;
 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;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1864;
+    Thread_service_extension_stream_offset = 1872;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
@@ -9027,7 +9040,7 @@
     1808;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1872;
+    1880;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
@@ -9142,10 +9155,11 @@
     1792;
 static constexpr dart::compiler::target::word
     Thread_callback_stack_return_offset = 1800;
-static constexpr dart::compiler::target::word Thread_random_offset = 1832;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1832;
+static constexpr dart::compiler::target::word Thread_random_offset = 1840;
 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;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1848;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -9638,13 +9652,13 @@
     Thread_call_to_runtime_entry_point_offset = 300;
 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 = 952;
 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;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 948;
+    Thread_service_extension_stream_offset = 956;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
     340;
 static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 252;
@@ -9688,7 +9702,7 @@
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
     912;
 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 = 960;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     64;
 static constexpr dart::compiler::target::word
@@ -9802,10 +9816,11 @@
 static constexpr dart::compiler::target::word Thread_callback_code_offset = 904;
 static constexpr dart::compiler::target::word
     Thread_callback_stack_return_offset = 908;
-static constexpr dart::compiler::target::word Thread_random_offset = 928;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 928;
+static constexpr dart::compiler::target::word Thread_random_offset = 936;
 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;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 944;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -10300,13 +10315,13 @@
     Thread_call_to_runtime_entry_point_offset = 576;
 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 = 1856;
 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;
 static constexpr dart::compiler::target::word
-    Thread_service_extension_stream_offset = 1856;
+    Thread_service_extension_stream_offset = 1864;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 480;
@@ -10351,7 +10366,7 @@
     1800;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word Thread_isolate_group_offset =
-    1864;
+    1872;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     128;
 static constexpr dart::compiler::target::word
@@ -10466,10 +10481,11 @@
     1784;
 static constexpr dart::compiler::target::word
     Thread_callback_stack_return_offset = 1792;
-static constexpr dart::compiler::target::word Thread_random_offset = 1824;
+static constexpr dart::compiler::target::word Thread_next_task_id_offset = 1824;
+static constexpr dart::compiler::target::word Thread_random_offset = 1832;
 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;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 1840;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
     0;
 static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -11002,13 +11018,13 @@
 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;
+    912;
 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;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 908;
+    AOT_Thread_service_extension_stream_offset = 916;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
     340;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -11054,7 +11070,7 @@
     AOT_Thread_exit_through_ffi_offset = 872;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 40;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    912;
+    920;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 64;
 static constexpr dart::compiler::target::word
@@ -11174,11 +11190,13 @@
     864;
 static constexpr dart::compiler::target::word
     AOT_Thread_callback_stack_return_offset = 868;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 888;
+static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
+    888;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 896;
 static constexpr dart::compiler::target::word
     AOT_Thread_jump_to_frame_entry_point_offset = 352;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    896;
+    904;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -11741,13 +11759,13 @@
 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;
+    1800;
 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;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1800;
+    AOT_Thread_service_extension_stream_offset = 1808;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -11793,7 +11811,7 @@
     AOT_Thread_exit_through_ffi_offset = 1744;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1808;
+    1816;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
@@ -11914,11 +11932,13 @@
     1728;
 static constexpr dart::compiler::target::word
     AOT_Thread_callback_stack_return_offset = 1736;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1768;
+static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
+    1768;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1776;
 static constexpr dart::compiler::target::word
     AOT_Thread_jump_to_frame_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1776;
+    1784;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -12486,13 +12506,13 @@
 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;
+    1864;
 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;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1864;
+    AOT_Thread_service_extension_stream_offset = 1872;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -12538,7 +12558,7 @@
     AOT_Thread_exit_through_ffi_offset = 1808;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1872;
+    1880;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
@@ -12659,11 +12679,13 @@
     1792;
 static constexpr dart::compiler::target::word
     AOT_Thread_callback_stack_return_offset = 1800;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1832;
+static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
+    1832;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1840;
 static constexpr dart::compiler::target::word
     AOT_Thread_jump_to_frame_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1840;
+    1848;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -13228,13 +13250,13 @@
 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;
+    1800;
 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;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1800;
+    AOT_Thread_service_extension_stream_offset = 1808;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -13280,7 +13302,7 @@
     AOT_Thread_exit_through_ffi_offset = 1744;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1808;
+    1816;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
@@ -13401,11 +13423,13 @@
     1728;
 static constexpr dart::compiler::target::word
     AOT_Thread_callback_stack_return_offset = 1736;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1768;
+static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
+    1768;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1776;
 static constexpr dart::compiler::target::word
     AOT_Thread_jump_to_frame_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1776;
+    1784;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -13969,13 +13993,13 @@
 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;
+    1864;
 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;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1864;
+    AOT_Thread_service_extension_stream_offset = 1872;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -14021,7 +14045,7 @@
     AOT_Thread_exit_through_ffi_offset = 1808;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1872;
+    1880;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
@@ -14142,11 +14166,13 @@
     1792;
 static constexpr dart::compiler::target::word
     AOT_Thread_callback_stack_return_offset = 1800;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1832;
+static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
+    1832;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1840;
 static constexpr dart::compiler::target::word
     AOT_Thread_jump_to_frame_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1840;
+    1848;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -14711,13 +14737,13 @@
 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;
+    952;
 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;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 948;
+    AOT_Thread_service_extension_stream_offset = 956;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
     340;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -14763,7 +14789,7 @@
     AOT_Thread_exit_through_ffi_offset = 912;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 40;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    952;
+    960;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 64;
 static constexpr dart::compiler::target::word
@@ -14883,11 +14909,13 @@
     904;
 static constexpr dart::compiler::target::word
     AOT_Thread_callback_stack_return_offset = 908;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 928;
+static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
+    928;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 936;
 static constexpr dart::compiler::target::word
     AOT_Thread_jump_to_frame_entry_point_offset = 352;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    936;
+    944;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -15452,13 +15480,13 @@
 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;
+    1856;
 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;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1856;
+    AOT_Thread_service_extension_stream_offset = 1864;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -15504,7 +15532,7 @@
     AOT_Thread_exit_through_ffi_offset = 1800;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1864;
+    1872;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
@@ -15625,11 +15653,13 @@
     1784;
 static constexpr dart::compiler::target::word
     AOT_Thread_callback_stack_return_offset = 1792;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1824;
+static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
+    1824;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1832;
 static constexpr dart::compiler::target::word
     AOT_Thread_jump_to_frame_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1832;
+    1840;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -16187,13 +16217,13 @@
 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;
+    912;
 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;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 908;
+    AOT_Thread_service_extension_stream_offset = 916;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
     340;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -16239,7 +16269,7 @@
     AOT_Thread_exit_through_ffi_offset = 872;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 40;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    912;
+    920;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 64;
 static constexpr dart::compiler::target::word
@@ -16359,11 +16389,13 @@
     864;
 static constexpr dart::compiler::target::word
     AOT_Thread_callback_stack_return_offset = 868;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 888;
+static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
+    888;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 896;
 static constexpr dart::compiler::target::word
     AOT_Thread_jump_to_frame_entry_point_offset = 352;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    896;
+    904;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -16917,13 +16949,13 @@
 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;
+    1800;
 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;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1800;
+    AOT_Thread_service_extension_stream_offset = 1808;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -16969,7 +17001,7 @@
     AOT_Thread_exit_through_ffi_offset = 1744;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1808;
+    1816;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
@@ -17090,11 +17122,13 @@
     1728;
 static constexpr dart::compiler::target::word
     AOT_Thread_callback_stack_return_offset = 1736;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1768;
+static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
+    1768;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1776;
 static constexpr dart::compiler::target::word
     AOT_Thread_jump_to_frame_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1776;
+    1784;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -17653,13 +17687,13 @@
 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;
+    1864;
 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;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1864;
+    AOT_Thread_service_extension_stream_offset = 1872;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -17705,7 +17739,7 @@
     AOT_Thread_exit_through_ffi_offset = 1808;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1872;
+    1880;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
@@ -17826,11 +17860,13 @@
     1792;
 static constexpr dart::compiler::target::word
     AOT_Thread_callback_stack_return_offset = 1800;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1832;
+static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
+    1832;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1840;
 static constexpr dart::compiler::target::word
     AOT_Thread_jump_to_frame_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1840;
+    1848;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -18386,13 +18422,13 @@
 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;
+    1800;
 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;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1800;
+    AOT_Thread_service_extension_stream_offset = 1808;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -18438,7 +18474,7 @@
     AOT_Thread_exit_through_ffi_offset = 1744;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1808;
+    1816;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
@@ -18559,11 +18595,13 @@
     1728;
 static constexpr dart::compiler::target::word
     AOT_Thread_callback_stack_return_offset = 1736;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1768;
+static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
+    1768;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1776;
 static constexpr dart::compiler::target::word
     AOT_Thread_jump_to_frame_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1776;
+    1784;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -19118,13 +19156,13 @@
 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;
+    1864;
 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;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1864;
+    AOT_Thread_service_extension_stream_offset = 1872;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -19170,7 +19208,7 @@
     AOT_Thread_exit_through_ffi_offset = 1808;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1872;
+    1880;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
@@ -19291,11 +19329,13 @@
     1792;
 static constexpr dart::compiler::target::word
     AOT_Thread_callback_stack_return_offset = 1800;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1832;
+static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
+    1832;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1840;
 static constexpr dart::compiler::target::word
     AOT_Thread_jump_to_frame_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1840;
+    1848;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -19851,13 +19891,13 @@
 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;
+    952;
 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;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 948;
+    AOT_Thread_service_extension_stream_offset = 956;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
     340;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -19903,7 +19943,7 @@
     AOT_Thread_exit_through_ffi_offset = 912;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 40;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    952;
+    960;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 64;
 static constexpr dart::compiler::target::word
@@ -20023,11 +20063,13 @@
     904;
 static constexpr dart::compiler::target::word
     AOT_Thread_callback_stack_return_offset = 908;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 928;
+static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
+    928;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 936;
 static constexpr dart::compiler::target::word
     AOT_Thread_jump_to_frame_entry_point_offset = 352;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    936;
+    944;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
@@ -20583,13 +20625,13 @@
 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;
+    1856;
 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;
 static constexpr dart::compiler::target::word
-    AOT_Thread_service_extension_stream_offset = 1856;
+    AOT_Thread_service_extension_stream_offset = 1864;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
     656;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -20635,7 +20677,7 @@
     AOT_Thread_exit_through_ffi_offset = 1800;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_group_offset =
-    1864;
+    1872;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 128;
 static constexpr dart::compiler::target::word
@@ -20756,11 +20798,13 @@
     1784;
 static constexpr dart::compiler::target::word
     AOT_Thread_callback_stack_return_offset = 1792;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1824;
+static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
+    1824;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 1832;
 static constexpr dart::compiler::target::word
     AOT_Thread_jump_to_frame_entry_point_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
-    1832;
+    1840;
 static constexpr dart::compiler::target::word
     AOT_TsanUtils_setjmp_function_offset = 0;
 static constexpr dart::compiler::target::word
diff --git a/runtime/vm/compiler/runtime_offsets_list.h b/runtime/vm/compiler/runtime_offsets_list.h
index 4b3ba6c..7450b1f 100644
--- a/runtime/vm/compiler/runtime_offsets_list.h
+++ b/runtime/vm/compiler/runtime_offsets_list.h
@@ -321,6 +321,7 @@
   FIELD(Thread, heap_base_offset)                                              \
   FIELD(Thread, callback_code_offset)                                          \
   FIELD(Thread, callback_stack_return_offset)                                  \
+  FIELD(Thread, next_task_id_offset)                                           \
   FIELD(Thread, random_offset)                                                 \
   FIELD(Thread, jump_to_frame_entry_point_offset)                              \
   FIELD(Thread, tsan_utils_offset)                                             \
diff --git a/runtime/vm/dart.cc b/runtime/vm/dart.cc
index 9d66e4d..a12f853 100644
--- a/runtime/vm/dart.cc
+++ b/runtime/vm/dart.cc
@@ -307,6 +307,7 @@
 #endif
 
   OSThread::Init();
+  Random::Init();
   Zone::Init();
 #if defined(SUPPORT_TIMELINE)
   Timeline::Init();
@@ -779,6 +780,7 @@
   Timeline::Cleanup();
 #endif
   Zone::Cleanup();
+  Random::Cleanup();
   // Delete the current thread's TLS and set it's TLS to null.
   // If it is the last thread then the destructor would call
   // OSThread::Cleanup.
diff --git a/runtime/vm/dart_api_impl.cc b/runtime/vm/dart_api_impl.cc
index adac74b..1522efb 100644
--- a/runtime/vm/dart_api_impl.cc
+++ b/runtime/vm/dart_api_impl.cc
@@ -6359,10 +6359,10 @@
   if (event != NULL) {
     switch (type) {
       case Dart_Timeline_Event_Begin:
-        event->Begin(label, timestamp0);
+        event->Begin(label, timestamp0, timestamp1_or_async_id);
         break;
       case Dart_Timeline_Event_End:
-        event->End(label, timestamp0);
+        event->End(label, timestamp0, timestamp1_or_async_id);
         break;
       case Dart_Timeline_Event_Instant:
         event->Instant(label, timestamp0);
diff --git a/runtime/vm/random.cc b/runtime/vm/random.cc
index 2cc2335..e14ab64 100644
--- a/runtime/vm/random.cc
+++ b/runtime/vm/random.cc
@@ -75,4 +75,26 @@
   return static_cast<uint32_t>(NextState() & MASK_32);
 }
 
+static Random* global_random = nullptr;
+static Mutex* global_random_mutex = nullptr;
+
+void Random::Init() {
+  ASSERT(global_random_mutex == nullptr);
+  global_random_mutex = new Mutex(NOT_IN_PRODUCT("global_random_mutex"));
+  ASSERT(global_random == nullptr);
+  global_random = new Random();
+}
+
+void Random::Cleanup() {
+  delete global_random_mutex;
+  global_random_mutex = nullptr;
+  delete global_random;
+  global_random = nullptr;
+}
+
+uint64_t Random::GlobalNextUInt64() {
+  MutexLocker locker(global_random_mutex);
+  return global_random->NextUInt64();
+}
+
 }  // namespace dart
diff --git a/runtime/vm/random.h b/runtime/vm/random.h
index 4af724b..077089b 100644
--- a/runtime/vm/random.h
+++ b/runtime/vm/random.h
@@ -28,6 +28,10 @@
            static_cast<uint64_t>(NextUInt32());
   }
 
+  static uint64_t GlobalNextUInt64();
+  static void Init();
+  static void Cleanup();
+
  private:
   uint64_t NextState();
   void Initialize(uint64_t seed);
diff --git a/runtime/vm/thread.cc b/runtime/vm/thread.cc
index 9689781..1bc5236 100644
--- a/runtime/vm/thread.cc
+++ b/runtime/vm/thread.cc
@@ -143,6 +143,12 @@
   if (!is_vm_isolate) {
     InitVMConstants();
   }
+
+#if defined(DART_HOST_OS_FUCHSIA)
+  next_task_id_ = trace_generate_nonce();
+#else
+  next_task_id_ = Random::GlobalNextUInt64();
+#endif
 }
 
 static const double double_nan_constant = NAN;
diff --git a/runtime/vm/thread.h b/runtime/vm/thread.h
index 5f9660d..ecfeec7 100644
--- a/runtime/vm/thread.h
+++ b/runtime/vm/thread.h
@@ -1096,6 +1096,10 @@
 
   void InitVMConstants();
 
+  int64_t GetNextTaskId() { return next_task_id_++; }
+  static intptr_t next_task_id_offset() {
+    return OFFSET_OF(Thread, next_task_id_);
+  }
   Random* random() { return &thread_random_; }
   static intptr_t random_offset() { return OFFSET_OF(Thread, thread_random_); }
 
@@ -1209,6 +1213,7 @@
   uword exit_through_ffi_ = 0;
   ApiLocalScope* api_top_scope_;
   uint8_t double_truncate_round_supported_;
+  ALIGN8 int64_t next_task_id_;
   ALIGN8 Random thread_random_;
 
   TsanUtils* tsan_utils_ = nullptr;
diff --git a/runtime/vm/timeline.cc b/runtime/vm/timeline.cc
index 086b86b..90b0a23 100644
--- a/runtime/vm/timeline.cc
+++ b/runtime/vm/timeline.cc
@@ -498,19 +498,25 @@
 }
 
 void TimelineEvent::Begin(const char* label,
+                          int64_t id,
                           int64_t micros,
                           int64_t thread_micros) {
   Init(kBegin, label);
   set_timestamp0(micros);
   set_thread_timestamp0(thread_micros);
+  // Overload timestamp1_ with the async_id.
+  set_timestamp1(id);
 }
 
 void TimelineEvent::End(const char* label,
+                        int64_t id,
                         int64_t micros,
                         int64_t thread_micros) {
   Init(kEnd, label);
   set_timestamp0(micros);
   set_thread_timestamp0(thread_micros);
+  // Overload timestamp1_ with the async_id.
+  set_timestamp1(id);
 }
 
 void TimelineEvent::Counter(const char* label, int64_t micros) {
@@ -655,31 +661,31 @@
     } break;
     case kAsyncBegin: {
       writer->PrintProperty("ph", "b");
-      writer->PrintfProperty("id", "%" Px64 "", AsyncId());
+      writer->PrintfProperty("id", "%" Px64 "", Id());
     } break;
     case kAsyncInstant: {
       writer->PrintProperty("ph", "n");
-      writer->PrintfProperty("id", "%" Px64 "", AsyncId());
+      writer->PrintfProperty("id", "%" Px64 "", Id());
     } break;
     case kAsyncEnd: {
       writer->PrintProperty("ph", "e");
-      writer->PrintfProperty("id", "%" Px64 "", AsyncId());
+      writer->PrintfProperty("id", "%" Px64 "", Id());
     } break;
     case kCounter: {
       writer->PrintProperty("ph", "C");
     } break;
     case kFlowBegin: {
       writer->PrintProperty("ph", "s");
-      writer->PrintfProperty("id", "%" Px64 "", AsyncId());
+      writer->PrintfProperty("id", "%" Px64 "", Id());
     } break;
     case kFlowStep: {
       writer->PrintProperty("ph", "t");
-      writer->PrintfProperty("id", "%" Px64 "", AsyncId());
+      writer->PrintfProperty("id", "%" Px64 "", Id());
     } break;
     case kFlowEnd: {
       writer->PrintProperty("ph", "f");
       writer->PrintProperty("bp", "e");
-      writer->PrintfProperty("id", "%" Px64 "", AsyncId());
+      writer->PrintfProperty("id", "%" Px64 "", Id());
     } break;
     case kMetadata: {
       writer->PrintProperty("ph", "M");
@@ -728,14 +734,6 @@
   writer->CloseObject();
 }
 
-int64_t TimelineEvent::TimeOrigin() const {
-  return timestamp0_;
-}
-
-int64_t TimelineEvent::AsyncId() const {
-  return timestamp1_;
-}
-
 int64_t TimelineEvent::LowTime() const {
   return timestamp0_;
 }
@@ -841,6 +839,13 @@
     return;
   }
   enabled_ = true;
+  Thread* thread = static_cast<Thread*>(this->thread());
+  if (thread != NULL) {
+    id_ = thread->GetNextTaskId();
+  } else {
+    static RelaxedAtomic<int64_t> next_bootstrap_task_id = {0};
+    id_ = next_bootstrap_task_id.fetch_add(1);
+  }
 }
 
 void TimelineEventScope::SetNumArguments(intptr_t length) {
@@ -919,7 +924,7 @@
   }
   ASSERT(event != NULL);
   // Emit a begin event.
-  event->Begin(label());
+  event->Begin(label(), id());
   event->Complete();
 }
 
@@ -935,7 +940,7 @@
   }
   ASSERT(event != NULL);
   // Emit an end event.
-  event->End(label());
+  event->End(label(), id());
   StealArguments(event);
   event->Complete();
 }
@@ -958,7 +963,7 @@
       isolate_id_(isolate_id) {}
 
 TimelineEventRecorder::TimelineEventRecorder()
-    : async_id_(0), time_low_micros_(0), time_high_micros_(0) {}
+    : time_low_micros_(0), time_high_micros_(0) {}
 
 #ifndef PRODUCT
 void TimelineEventRecorder::PrintJSONMeta(JSONArray* events) const {
@@ -1120,16 +1125,6 @@
 }
 #endif
 
-int64_t TimelineEventRecorder::GetNextAsyncId() {
-  // TODO(johnmccutchan): Gracefully handle wrap around.
-#if defined(DART_HOST_OS_FUCHSIA)
-  return trace_generate_nonce();
-#else
-  uint32_t next = static_cast<uint32_t>(async_id_.fetch_add(1u));
-  return static_cast<int64_t>(next);
-#endif
-}
-
 void TimelineEventRecorder::FinishBlock(TimelineEventBlock* block) {
   if (block == NULL) {
     return;
@@ -1706,10 +1701,10 @@
       event->AsyncEnd(name, id, start);
       break;
     case 'B':
-      event->Begin(name, start, start_cpu);
+      event->Begin(name, id, start, start_cpu);
       break;
     case 'E':
-      event->End(name, start, start_cpu);
+      event->End(name, id, start, start_cpu);
       break;
     default:
       UNREACHABLE();
diff --git a/runtime/vm/timeline.h b/runtime/vm/timeline.h
index 759e09f..7b89e4b 100644
--- a/runtime/vm/timeline.h
+++ b/runtime/vm/timeline.h
@@ -334,10 +334,12 @@
 
   void Begin(
       const char* label,
+      int64_t id,
       int64_t micros = OS::GetCurrentMonotonicMicrosForTimeline(),
       int64_t thread_micros = OS::GetCurrentThreadCPUMicrosForTimeline());
 
   void End(const char* label,
+           int64_t id,
            int64_t micros = OS::GetCurrentMonotonicMicrosForTimeline(),
            int64_t thread_micros = OS::GetCurrentThreadCPUMicrosForTimeline());
 
@@ -390,8 +392,11 @@
   int64_t ThreadCPUTimeDuration() const;
   int64_t ThreadCPUTimeOrigin() const;
 
-  int64_t TimeOrigin() const;
-  int64_t AsyncId() const;
+  int64_t TimeOrigin() const { return timestamp0_; }
+  int64_t Id() const {
+    ASSERT(event_type() != kDuration);
+    return timestamp1_;
+  }
   int64_t TimeDuration() const;
   int64_t TimeEnd() const {
     ASSERT(IsFinishedDuration());
@@ -598,6 +603,8 @@
 
   const char* label() const { return label_; }
 
+  int64_t id() const { return id_; }
+
   TimelineEventArgument* arguments() const { return arguments_.buffer(); }
 
   intptr_t arguments_length() const { return arguments_.length(); }
@@ -613,6 +620,7 @@
 
   TimelineStream* stream_;
   const char* label_;
+  int64_t id_;
   TimelineEventArguments arguments_;
   bool enabled_;
 
@@ -783,7 +791,6 @@
   virtual void PrintTraceEvent(JSONStream* js, TimelineEventFilter* filter) = 0;
 #endif
   virtual const char* name() const = 0;
-  int64_t GetNextAsyncId();
 
   void FinishBlock(TimelineEventBlock* block);
 
@@ -814,7 +821,6 @@
   int64_t TimeExtentMicros() const;
 
   Mutex lock_;
-  RelaxedAtomic<uintptr_t> async_id_;
   int64_t time_low_micros_;
   int64_t time_high_micros_;
 
diff --git a/runtime/vm/timeline_android.cc b/runtime/vm/timeline_android.cc
index f91ee42..37844f7 100644
--- a/runtime/vm/timeline_android.cc
+++ b/runtime/vm/timeline_android.cc
@@ -79,12 +79,12 @@
     }
     case TimelineEvent::kAsyncBegin: {
       length = Utils::SNPrint(buffer, buffer_size, "S|%" Pd64 "|%s|%" Pd64 "",
-                              pid, event->label(), event->AsyncId());
+                              pid, event->label(), event->Id());
       break;
     }
     case TimelineEvent::kAsyncEnd: {
       length = Utils::SNPrint(buffer, buffer_size, "F|%" Pd64 "|%s|%" Pd64 "",
-                              pid, event->label(), event->AsyncId());
+                              pid, event->label(), event->Id());
       break;
     }
     default:
diff --git a/runtime/vm/timeline_fuchsia.cc b/runtime/vm/timeline_fuchsia.cc
index 38bca29..6dd671a 100644
--- a/runtime/vm/timeline_fuchsia.cc
+++ b/runtime/vm/timeline_fuchsia.cc
@@ -78,19 +78,19 @@
           args, num_args);
       break;
     case TimelineEvent::kAsyncBegin:
-      trace_context_write_async_begin_event_record(
-          context, start_time, &thread, &category, &name, event->AsyncId(),
-          args, num_args);
+      trace_context_write_async_begin_event_record(context, start_time, &thread,
+                                                   &category, &name,
+                                                   event->Id(), args, num_args);
       break;
     case TimelineEvent::kAsyncEnd:
-      trace_context_write_async_end_event_record(
-          context, end_time, &thread, &category, &name, event->AsyncId(), args,
-          num_args);
+      trace_context_write_async_end_event_record(context, end_time, &thread,
+                                                 &category, &name, event->Id(),
+                                                 args, num_args);
       break;
     case TimelineEvent::kAsyncInstant:
       trace_context_write_async_instant_event_record(
-          context, start_time, &thread, &category, &name, event->AsyncId(),
-          args, num_args);
+          context, start_time, &thread, &category, &name, event->Id(), args,
+          num_args);
       break;
     case TimelineEvent::kDuration:
       trace_context_write_duration_event_record(context, start_time, end_time,
@@ -98,19 +98,19 @@
                                                 num_args);
       break;
     case TimelineEvent::kFlowBegin:
-      trace_context_write_flow_begin_event_record(
-          context, start_time, &thread, &category, &name, event->AsyncId(),
-          args, num_args);
+      trace_context_write_flow_begin_event_record(context, start_time, &thread,
+                                                  &category, &name, event->Id(),
+                                                  args, num_args);
       break;
     case TimelineEvent::kFlowStep:
-      trace_context_write_flow_step_event_record(
-          context, start_time, &thread, &category, &name, event->AsyncId(),
-          args, num_args);
+      trace_context_write_flow_step_event_record(context, start_time, &thread,
+                                                 &category, &name, event->Id(),
+                                                 args, num_args);
       break;
     case TimelineEvent::kFlowEnd:
-      trace_context_write_flow_end_event_record(
-          context, start_time, &thread, &category, &name, event->AsyncId(),
-          args, num_args);
+      trace_context_write_flow_end_event_record(context, start_time, &thread,
+                                                &category, &name, event->Id(),
+                                                args, num_args);
       break;
     default:
       // TODO(zra): Figure out what to do with kCounter and kMetadata.
diff --git a/runtime/vm/timeline_linux.cc b/runtime/vm/timeline_linux.cc
index a85f9e5..407a790 100644
--- a/runtime/vm/timeline_linux.cc
+++ b/runtime/vm/timeline_linux.cc
@@ -79,12 +79,12 @@
     }
     case TimelineEvent::kAsyncBegin: {
       length = Utils::SNPrint(buffer, buffer_size, "S|%" Pd64 "|%s|%" Pd64 "",
-                              pid, event->label(), event->AsyncId());
+                              pid, event->label(), event->Id());
       break;
     }
     case TimelineEvent::kAsyncEnd: {
       length = Utils::SNPrint(buffer, buffer_size, "F|%" Pd64 "|%s|%" Pd64 "",
-                              pid, event->label(), event->AsyncId());
+                              pid, event->label(), event->Id());
       break;
     }
     default:
diff --git a/runtime/vm/timeline_macos.cc b/runtime/vm/timeline_macos.cc
index cbb2efa..d187617 100644
--- a/runtime/vm/timeline_macos.cc
+++ b/runtime/vm/timeline_macos.cc
@@ -40,28 +40,18 @@
                                        buffer, sizeof(buffer));
       break;
     }
-    case TimelineEvent::kBegin: {
-      _os_signpost_emit_with_name_impl(
-          &__dso_handle, log, OS_SIGNPOST_INTERVAL_BEGIN,
-          OS_SIGNPOST_ID_EXCLUSIVE, label, "", buffer, sizeof(buffer));
-      break;
-    }
-    case TimelineEvent::kEnd: {
-      _os_signpost_emit_with_name_impl(
-          &__dso_handle, log, OS_SIGNPOST_INTERVAL_END,
-          OS_SIGNPOST_ID_EXCLUSIVE, label, "", buffer, sizeof(buffer));
-      break;
-    }
+    case TimelineEvent::kBegin:
     case TimelineEvent::kAsyncBegin: {
-      _os_signpost_emit_with_name_impl(
-          &__dso_handle, log, OS_SIGNPOST_INTERVAL_BEGIN, event->AsyncId(),
-          label, "", buffer, sizeof(buffer));
+      _os_signpost_emit_with_name_impl(&__dso_handle, log,
+                                       OS_SIGNPOST_INTERVAL_BEGIN, event->Id(),
+                                       label, "", buffer, sizeof(buffer));
       break;
     }
+    case TimelineEvent::kEnd:
     case TimelineEvent::kAsyncEnd: {
-      _os_signpost_emit_with_name_impl(
-          &__dso_handle, log, OS_SIGNPOST_INTERVAL_END, event->AsyncId(), label,
-          "", buffer, sizeof(buffer));
+      _os_signpost_emit_with_name_impl(&__dso_handle, log,
+                                       OS_SIGNPOST_INTERVAL_END, event->Id(),
+                                       label, "", buffer, sizeof(buffer));
       break;
     }
     case TimelineEvent::kCounter: {
@@ -69,8 +59,8 @@
       Utils::SNPrint(reinterpret_cast<char*>(buffer), sizeof(buffer), fmt,
                      event->arguments()[0].value);
       _os_signpost_emit_with_name_impl(&__dso_handle, log, OS_SIGNPOST_EVENT,
-                                       event->AsyncId(), label, fmt, buffer,
-                                       sizeof(buffer));
+                                       OS_SIGNPOST_ID_EXCLUSIVE, label, fmt,
+                                       buffer, sizeof(buffer));
       break;
     }
     default:
diff --git a/runtime/vm/timeline_test.cc b/runtime/vm/timeline_test.cc
index 97699cd..3c5ec04 100644
--- a/runtime/vm/timeline_test.cc
+++ b/runtime/vm/timeline_test.cc
@@ -318,8 +318,8 @@
 
   event = stream.StartEvent();
   EXPECT_EQ(0, override.recorder()->CountFor(TimelineEvent::kAsyncBegin));
-  int64_t async_id = override.recorder()->GetNextAsyncId();
-  EXPECT(async_id >= 0);
+  int64_t async_id = thread->GetNextTaskId();
+  EXPECT(async_id != 0);
   event->AsyncBegin("asyncBeginCabbage", async_id);
   EXPECT_EQ(0, override.recorder()->CountFor(TimelineEvent::kAsyncBegin));
   event->Complete();
diff --git a/sdk/lib/_internal/js_dev_runtime/patch/developer_patch.dart b/sdk/lib/_internal/js_dev_runtime/patch/developer_patch.dart
index c451d7f..1a7ec1c 100644
--- a/sdk/lib/_internal/js_dev_runtime/patch/developer_patch.dart
+++ b/sdk/lib/_internal/js_dev_runtime/patch/developer_patch.dart
@@ -157,7 +157,7 @@
 }
 
 @patch
-int _getNextAsyncId() {
+int _getNextTaskId() {
   return 0;
 }
 
diff --git a/sdk/lib/_internal/js_runtime/lib/developer_patch.dart b/sdk/lib/_internal/js_runtime/lib/developer_patch.dart
index 54f7ca1..5b32bea 100644
--- a/sdk/lib/_internal/js_runtime/lib/developer_patch.dart
+++ b/sdk/lib/_internal/js_runtime/lib/developer_patch.dart
@@ -80,7 +80,7 @@
 }
 
 @patch
-int _getNextAsyncId() {
+int _getNextTaskId() {
   return 0;
 }
 
diff --git a/sdk/lib/_internal/vm/lib/timeline.dart b/sdk/lib/_internal/vm/lib/timeline.dart
index e3e172c..d65d975 100644
--- a/sdk/lib/_internal/vm/lib/timeline.dart
+++ b/sdk/lib/_internal/vm/lib/timeline.dart
@@ -13,8 +13,8 @@
 external int _getTraceClock();
 
 @patch
-@pragma("vm:external-name", "Timeline_getNextAsyncId")
-external int _getNextAsyncId();
+@pragma("vm:external-name", "Timeline_getNextTaskId")
+external int _getNextTaskId();
 
 @patch
 @pragma("vm:external-name", "Timeline_reportTaskEvent")
diff --git a/sdk/lib/_internal/wasm/lib/developer.dart b/sdk/lib/_internal/wasm/lib/developer.dart
index 32d3050..32eb53d 100644
--- a/sdk/lib/_internal/wasm/lib/developer.dart
+++ b/sdk/lib/_internal/wasm/lib/developer.dart
@@ -49,7 +49,7 @@
 int _traceClock = 0;
 
 @patch
-int _getNextAsyncId() => 0;
+int _getNextTaskId() => 0;
 
 @patch
 void _reportTaskEvent(int taskId, String phase, String category, String name,
diff --git a/sdk/lib/developer/timeline.dart b/sdk/lib/developer/timeline.dart
index a9990a3..fc4abd4 100644
--- a/sdk/lib/developer/timeline.dart
+++ b/sdk/lib/developer/timeline.dart
@@ -60,7 +60,7 @@
   /// If [id] is not provided, an id that conflicts with no other Dart-generated
   /// flow id's will be generated.
   static Flow begin({int? id}) {
-    return new Flow._(_begin, id ?? _getNextAsyncId());
+    return new Flow._(_begin, id ?? _getNextTaskId());
   }
 
   /// A "step" Flow event.
@@ -112,7 +112,8 @@
       _stack.add(null);
       return;
     }
-    var block = new _SyncBlock._(name, arguments: arguments, flow: flow);
+    var block = new _SyncBlock._(name, _getNextTaskId(),
+        arguments: arguments, flow: flow);
     _stack.add(block);
     block._startSync();
   }
@@ -190,7 +191,7 @@
   TimelineTask({TimelineTask? parent, String? filterKey})
       : _parent = parent,
         _filterKey = filterKey,
-        _taskId = _getNextAsyncId() {}
+        _taskId = _getNextTaskId() {}
 
   /// Create a task with an explicit [taskId]. This is useful if you are
   /// passing a task from one isolate to another.
@@ -335,6 +336,9 @@
   /// The name of this block.
   final String name;
 
+  /// Signpost needs help matching begin and end events.
+  final int taskId;
+
   /// An (optional) set of arguments which will be serialized to JSON and
   /// associated with this block.
   final Map? arguments;
@@ -344,18 +348,18 @@
 
   late final String _jsonArguments = _argumentsAsJson(arguments);
 
-  _SyncBlock._(this.name, {this.arguments, this.flow});
+  _SyncBlock._(this.name, this.taskId, {this.arguments, this.flow});
 
   /// Start this block of time.
   void _startSync() {
-    _reportTaskEvent(0, 'B', category, name, _jsonArguments);
+    _reportTaskEvent(taskId, 'B', category, name, _jsonArguments);
   }
 
   /// Finish this block of time. At this point, this block can no longer be
   /// used.
   void finish() {
     // Report event to runtime.
-    _reportTaskEvent(0, 'E', category, name, _jsonArguments);
+    _reportTaskEvent(taskId, 'E', category, name, _jsonArguments);
     final Flow? tempFlow = flow;
     if (tempFlow != null) {
       _reportFlowEvent(category, "${tempFlow.id}", tempFlow._type, tempFlow.id,
@@ -376,8 +380,9 @@
 @pragma("vm:recognized", "asm-intrinsic")
 external bool _isDartStreamEnabled();
 
-/// Returns the next async task id.
-external int _getNextAsyncId();
+/// Returns the next task id.
+@pragma("vm:recognized", "asm-intrinsic")
+external int _getNextTaskId();
 
 /// Returns the current value from the trace clock.
 external int _getTraceClock();
diff --git a/tools/VERSION b/tools/VERSION
index 1a17e19..ef321a3 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 18
 PATCH 0
-PRERELEASE 241
+PRERELEASE 242
 PRERELEASE_PATCH 0
\ No newline at end of file
