Version 2.12.0-102.0.dev

Merge commit '33b7721c51ad499f8a6adf9c0366ca1bfcbbe84b' into 'dev'
diff --git a/pkg/analyzer/lib/src/dart/error/hint_codes.dart b/pkg/analyzer/lib/src/dart/error/hint_codes.dart
index 0b776c8..c72f379 100644
--- a/pkg/analyzer/lib/src/dart/error/hint_codes.dart
+++ b/pkg/analyzer/lib/src/dart/error/hint_codes.dart
@@ -1150,6 +1150,7 @@
   // is required:
   //
   // ```dart
+  // %language=2.9
   // import 'package:meta/meta.dart';
   //
   // void f({@required int x}) {}
@@ -1164,6 +1165,7 @@
   // Provide the required value:
   //
   // ```dart
+  // %language=2.9
   // import 'package:meta/meta.dart';
   //
   // void f({@required int x}) {}
@@ -1207,6 +1209,7 @@
   // return:
   //
   // ```dart
+  // %language=2.9
   // int [!f!](int x) {
   //   if (x < 0) {
   //     return 0;
@@ -1512,7 +1515,6 @@
   // specified to allow `null` when `null` can't be thrown:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f() {
   //   try {
   //     // ...
@@ -1526,7 +1528,6 @@
   // Remove the question mark from the type:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f() {
   //   try {
   //     // ...
@@ -1880,6 +1881,7 @@
   // diagnostic:
   //
   // ```dart
+  // %language=2.9
   // class C {}
   // const C a = null;
   // const C b = null;
@@ -1901,6 +1903,7 @@
   // expression isn't in a [constant context][]:
   //
   // ```dart
+  // %language=2.9
   // class C {}
   // const C a = null;
   // const C b = null;
@@ -2114,6 +2117,7 @@
   // diagnostic:
   //
   // ```dart
+  // %language=2.9
   // [!Never!] n;
   // ```
   //
@@ -2502,7 +2506,6 @@
   // `null`, so the comparison always evaluates to `true`:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(int x) {
   //   if (x [!!= null!]) {
   //     print(x);
@@ -2514,7 +2517,6 @@
   // `null`, so the comparison always evaluates to `false`:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(int x) {
   //   if (x [!== null!]) {
   //     throw ArgumentError("x can't be null");
@@ -2528,7 +2530,6 @@
   // the operand:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(int? x) {
   //   if (x != null) {
   //     print(x);
@@ -2539,7 +2540,6 @@
   // If the other operand really can't be `null`, then remove the condition:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(int x) {
   //   print(x);
   // }
@@ -2704,6 +2704,7 @@
   // invocation of `_m`, the following code produces this diagnostic:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   void _m(int x, [int [!y!]]) {}
   //
@@ -2755,6 +2756,7 @@
   // anywhere in the library:
   //
   // ```dart
+  // %language=2.9
   // class Point {
   //   int [!_x!];
   // }
diff --git a/pkg/analyzer/lib/src/dart/error/syntactic_errors.dart b/pkg/analyzer/lib/src/dart/error/syntactic_errors.dart
index 46bede3..d2d3c6c 100644
--- a/pkg/analyzer/lib/src/dart/error/syntactic_errors.dart
+++ b/pkg/analyzer/lib/src/dart/error/syntactic_errors.dart
@@ -309,6 +309,7 @@
   // field:
   //
   // ```dart
+  // %language=2.9
   // extension E on String {
   //   String [!s!];
   // }
diff --git a/pkg/analyzer/lib/src/error/codes.dart b/pkg/analyzer/lib/src/error/codes.dart
index caddb18..f12b3a7 100644
--- a/pkg/analyzer/lib/src/error/codes.dart
+++ b/pkg/analyzer/lib/src/error/codes.dart
@@ -36,7 +36,6 @@
   // `abstract` and has an initializer:
   //
   // ```dart
-  // %experiments=non-nullable
   // abstract class C {
   //   abstract int [!f!] = 0;
   // }
@@ -46,7 +45,6 @@
   // `abstract` and there's an initializer in the constructor:
   //
   // ```dart
-  // %experiments=non-nullable
   // abstract class C {
   //   abstract int f;
   //
@@ -59,7 +57,6 @@
   // If the field must be abstract, then remove the initializer:
   //
   // ```dart
-  // %experiments=non-nullable
   // abstract class C {
   //   abstract int f;
   // }
@@ -514,6 +511,7 @@
   // assigned to a `String`:
   //
   // ```dart
+  // %language=2.9
   // String f(String x) => x;
   // String g(num y) => f([!y!]);
   // ```
@@ -524,6 +522,7 @@
   // example above you might be able to change the type of the parameter `y`:
   //
   // ```dart
+  // %language=2.9
   // String f(String x) => x;
   // String g(String y) => f(y);
   // ```
@@ -533,6 +532,7 @@
   // types to the required type:
   //
   // ```dart
+  // %language=2.9
   // String f(String x) => x;
   // String g(num y) => f(y.toString());
   // ```
@@ -540,6 +540,7 @@
   // Another approach is to add explicit type tests and fallback code:
   //
   // ```dart
+  // %language=2.9
   // String f(String x) => x;
   // String g(num y) => f(y is String ? y : '');
   // ```
@@ -881,7 +882,6 @@
   // is used in the initializer for `v`, a local variable that is marked `late`:
   //
   // ```dart
-  // %experiments=non-nullable
   // Future<int> f() async {
   //   late var v = [!await!] 42;
   //   return v;
@@ -893,7 +893,6 @@
   // If the initializer can be rewritten to not use `await`, then rewrite it:
   //
   // ```dart
-  // %experiments=non-nullable
   // Future<int> f() async {
   //   late var v = 42;
   //   return v;
@@ -903,7 +902,6 @@
   // If the initializer can't be rewritten, then remove the `late` modifier:
   //
   // ```dart
-  // %experiments=non-nullable
   // Future<int> f() async {
   //   var v = await 42;
   //   return v;
@@ -946,7 +944,6 @@
   // is declared to not return `null`:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C {
   //   int [!m!](int t) {
   //     print(t);
@@ -960,7 +957,6 @@
   // method is effectively declared to not return `null`:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C<T> {
   //   T [!m!](T t) {
   //     print(t);
@@ -974,7 +970,6 @@
   // statement at the end of the method:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C<T> {
   //   T m(T t) {
   //     print(t);
@@ -987,7 +982,6 @@
   // end of the method:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C<T> {
   //   T m(T t) {
   //     print(t);
@@ -1000,7 +994,6 @@
   // return type so that it's valid to return `null`:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C<T> {
   //   T? m(T t) {
   //     print(t);
@@ -1147,6 +1140,7 @@
   // with an assignment:
   //
   // ```dart
+  // %language=2.9
   // void f(int x) {
   //   switch (x) {
   //     [!case!] 0:
@@ -1162,6 +1156,7 @@
   // Add one of the required terminators:
   //
   // ```dart
+  // %language=2.9
   // void f(int x) {
   //   switch (x) {
   //     case 0:
@@ -1210,7 +1205,6 @@
   // isn't a subtype of `String` (the type of `s`):
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(String s) {
   //   switch (s) {
   //     case [!1!]:
@@ -1225,7 +1219,6 @@
   // expression so that it has the required type:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(String s) {
   //   switch (s) {
   //     case '1':
@@ -1238,7 +1231,6 @@
   // expression to have the required type:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(int s) {
   //   switch (s) {
   //     case 1:
@@ -2024,6 +2016,7 @@
   // `null`, which is neither a list nor a set:
   //
   // ```dart
+  // %language=2.9
   // const List<int> list1 = null;
   // const List<int> list2 = [...[!list1!]];
   // ```
@@ -2034,6 +2027,7 @@
   // or a constant set:
   //
   // ```dart
+  // %language=2.9
   // const List<int> list1 = [];
   // const List<int> list2 = [...list1];
   // ```
@@ -2056,6 +2050,7 @@
   // `null`, which isn't a map:
   //
   // ```dart
+  // %language=2.9
   // const Map<String, int> map1 = null;
   // const Map<String, int> map2 = {...[!map1!]};
   // ```
@@ -2065,6 +2060,7 @@
   // Change the expression to something that evaluates to a constant map:
   //
   // ```dart
+  // %language=2.9
   // const Map<String, int> map1 = {};
   // const Map<String, int> map2 = {...map1};
   // ```
@@ -2268,7 +2264,6 @@
   // diagnostic because it uses the default `List` constructor:
   //
   // ```dart
-  // %experiments=non-nullable
   // var l = [!List<int>!]();
   // ```
   //
@@ -2278,7 +2273,6 @@
   // literal:
   //
   // ```dart
-  // %experiments=non-nullable
   // var l = <int>[];
   // ```
   //
@@ -2286,7 +2280,6 @@
   // initial value for the elements, then use `List.filled`:
   //
   // ```dart
-  // %experiments=non-nullable
   // var l = List.filled(3, 0);
   // ```
   //
@@ -2294,7 +2287,6 @@
   // computed, then use `List.generate`:
   //
   // ```dart
-  // %experiments=non-nullable
   // var l = List.generate(3, (i) => i);
   // ```
   static const CompileTimeErrorCode DEFAULT_LIST_CONSTRUCTOR =
@@ -2382,7 +2374,6 @@
   // value before being read:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(bool b) {
   //   late int x;
   //   print([!x!]);
@@ -2394,7 +2385,6 @@
   // Assign a value to the variable before reading from it:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(bool b) {
   //   late int x;
   //   x = b ? 1 : 0;
@@ -2551,6 +2541,7 @@
   // with the name `a`:
   //
   // ```dart
+  // %language=2.9
   // void f(C c) {
   //   c.m(a: 0, [!a!]: 1);
   // }
@@ -2565,6 +2556,7 @@
   // If one of the arguments should have a different name, then change the name:
   //
   // ```dart
+  // %language=2.9
   // void f(C c) {
   //   c.m(a: 0, b: 1);
   // }
@@ -2577,6 +2569,7 @@
   // If one of the arguments is wrong, then remove it:
   //
   // ```dart
+  // %language=2.9
   // void f(C c) {
   //   c.m(a: 1);
   // }
@@ -2844,7 +2837,6 @@
   // from an opted-out library:
   //
   // ```dart
-  // %experiments=non-nullable
   // export [!'optedOut.dart'!];
   //
   // class C {}
@@ -2856,7 +2848,6 @@
   // need to opt out:
   //
   // ```dart
-  // %experiments=non-nullable
   // String? s;
   // ```
   //
@@ -3472,6 +3463,7 @@
   // third argument:
   //
   // ```dart
+  // %language=2.9
   // void f(int a, int b, {int c}) {}
   // void g() {
   //   f[!(1, 2, 3)!];
@@ -3484,6 +3476,7 @@
   // the names before the arguments:
   //
   // ```dart
+  // %language=2.9
   // void f(int a, int b, {int c}) {}
   // void g() {
   //   f(1, 2, c: 3);
@@ -3494,6 +3487,7 @@
   // parameters:
   //
   // ```dart
+  // %language=2.9
   // void f(int a, int b, {int c}) {}
   // void g() {
   //   f(1, 2);
@@ -4016,7 +4010,6 @@
   // `num` isn't a subtype of `int`:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C {
   //   num get [!x!] => 0;
   //
@@ -4029,7 +4022,6 @@
   // If the type of the getter is correct, then change the type of the setter:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C {
   //   num get x => 0;
   //
@@ -4040,7 +4032,6 @@
   // If the type of the setter is correct, then change the type of the getter:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C {
   //   int get x => 0;
   //
@@ -4463,6 +4454,7 @@
   // the signature of `m` that's inherited from `B`:
   //
   // ```dart
+  // %language=2.9
   // class A {
   //   void m({int a}) {}
   // }
@@ -4481,6 +4473,7 @@
   // signatures:
   //
   // ```dart
+  // %language=2.9
   // class A {
   //   void m({int a}) {}
   // }
@@ -4554,6 +4547,7 @@
   // initializing `x`, but `x` isn't a field in the class:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   int y;
   //
@@ -4567,6 +4561,7 @@
   // name of the field:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   int y;
   //
@@ -4577,6 +4572,7 @@
   // If the field must be declared, then add a declaration:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   int x;
   //   int y;
@@ -4628,6 +4624,7 @@
   // defined:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   int y;
   //
@@ -4641,6 +4638,7 @@
   // field:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   int y;
   //
@@ -4652,6 +4650,7 @@
   // field:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   int x;
   //   int y;
@@ -4664,6 +4663,7 @@
   // it to a normal parameter and use it:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   int y;
   //
@@ -4674,6 +4674,7 @@
   // If the parameter isn't needed, then remove it:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   int y;
   //
@@ -4811,6 +4812,7 @@
   // is being referenced in a static method:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   int x;
   //
@@ -4826,6 +4828,7 @@
   // so remove the keyword:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   int x;
   //
@@ -4839,6 +4842,7 @@
   // that an instance of the class can be passed in:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   int x;
   //
@@ -5628,7 +5632,6 @@
   // `null`:
   //
   // ```dart
-  // %experiments=non-nullable
   // int f(Null x) {
   //   return [!x!].length;
   // }
@@ -5640,7 +5643,6 @@
   // type of the expression:
   //
   // ```dart
-  // %experiments=non-nullable
   // int f(String? x) {
   //   return x!.length;
   // }
@@ -5884,7 +5886,6 @@
   // `const` constructor and the `final` field `f` is marked as `late`:
   //
   // ```dart
-  // %experiments=non-nullable
   // class A {
   //   [!late!] final int f;
   //
@@ -5909,7 +5910,6 @@
   // the constructors:
   //
   // ```dart
-  // %experiments=non-nullable
   // class A {
   //   late final int f;
   //
@@ -5941,7 +5941,6 @@
   // `v` is assigned a value in two places:
   //
   // ```dart
-  // %experiments=non-nullable
   // int f() {
   //   late final int v;
   //   v = 0;
@@ -5956,7 +5955,6 @@
   // keyword:
   //
   // ```dart
-  // %experiments=non-nullable
   // int f() {
   //   late int v;
   //   v = 0;
@@ -5969,7 +5967,6 @@
   // first of the assignments:
   //
   // ```dart
-  // %experiments=non-nullable
   // int f() {
   //   late final int v;
   //   v = 0;
@@ -6075,7 +6072,6 @@
   // being used to declare a top-level variable:
   //
   // ```dart
-  // %experiments=non-nullable
   // var [!main!] = 3;
   // ```
   //
@@ -6084,7 +6080,6 @@
   // Use a different name for the declaration:
   //
   // ```dart
-  // %experiments=non-nullable
   // var mainIndex = 3;
   // ```
   static const CompileTimeErrorCode MAIN_IS_NOT_FUNCTION = CompileTimeErrorCode(
@@ -6269,14 +6264,12 @@
   // and no non-`null` default value is specified:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f([int [!x!]]) {}
   // ```
   //
   // As does this:
   //
   // ```dart
-  // %experiments=non-nullable
   // void g({int [!x!]}) {}
   // ```
   //
@@ -6286,7 +6279,6 @@
   // need to make the type nullable:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f([int? x]) {}
   // void g({int? x}) {}
   // ```
@@ -6294,7 +6286,6 @@
   // If the parameter can't be null, then either provide a default value:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f([int x = 1]) {}
   // void g({int x = 2}) {}
   // ```
@@ -6302,7 +6293,6 @@
   // or make the parameter a required parameter:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(int x) {}
   // void g({required int x}) {}
   // ```
@@ -6331,7 +6321,6 @@
   // doesn't include a value for the required named parameter `end`:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(int start, {required int end}) {}
   // void g() {
   //   [!f!](3);
@@ -6343,7 +6332,6 @@
   // Add a named argument corresponding to the missing required parameter:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(int start, {required int end}) {}
   // void g() {
   //   f(3, end: 5);
@@ -7300,6 +7288,7 @@
   // The following code produces this diagnostic:
   //
   // ```dart
+  // %language=2.9
   // var defaultValue = 3;
   //
   // void f([int value = [!defaultValue!]]) {}
@@ -7310,6 +7299,7 @@
   // If the default value can be converted to be a constant, then convert it:
   //
   // ```dart
+  // %language=2.9
   // const defaultValue = 3;
   //
   // void f([int value = defaultValue]) {}
@@ -7319,6 +7309,7 @@
   // value inside the function:
   //
   // ```dart
+  // %language=2.9
   // var defaultValue = 3;
   //
   // void f([int value]) {
@@ -7697,6 +7688,7 @@
   // a type:
   //
   // ```dart
+  // %language=2.9
   // void f() {
   //   try {
   //     // ...
@@ -7711,6 +7703,7 @@
   // Change the name to the type of object that should be caught:
   //
   // ```dart
+  // %language=2.9
   // void f() {
   //   try {
   //     // ...
@@ -7792,7 +7785,6 @@
   // of `null`, but is referenced before a value was assigned to it:
   //
   // ```dart
-  // %experiments=non-nullable
   // String f() {
   //   int x;
   //   return [!x!].toString();
@@ -7803,7 +7795,6 @@
   // might not be executed, so it might have a value of `null`:
   //
   // ```dart
-  // %experiments=non-nullable
   // int g(bool b) {
   //   int x;
   //   if (b) {
@@ -7818,7 +7809,6 @@
   // without having a value assigned to it:
   //
   // ```dart
-  // %experiments=non-nullable
   // int h(bool b) {
   //   int x;
   //   if (b) {
@@ -7836,7 +7826,6 @@
   // If `null` is a valid value, then make the variable nullable:
   //
   // ```dart
-  // %experiments=non-nullable
   // String f() {
   //   int? x;
   //   return x!.toString();
@@ -7847,7 +7836,6 @@
   // add an initializer:
   //
   // ```dart
-  // %experiments=non-nullable
   // int g(bool b) {
   //   int x = 2;
   //   if (b) {
@@ -7861,7 +7849,6 @@
   // before the value is accessed:
   //
   // ```dart
-  // %experiments=non-nullable
   // int g(bool b) {
   //   int x;
   //   if (b) {
@@ -7880,7 +7867,6 @@
   // though the analyzer can't prove it based on definite assignment analysis.
   //
   // ```dart
-  // %experiments=non-nullable
   // int h(bool b) {
   //   late int x;
   //   if (b) {
@@ -7959,7 +7945,6 @@
   // initialized to `null` when it isn't allowed to be `null`:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C {
   //   int [!x!];
   // }
@@ -7971,7 +7956,6 @@
   // constructors:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C {
   //   int x;
   //
@@ -7987,7 +7971,6 @@
   // instances, then add an initializer expression:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C {
   //   int x = 0;
   // }
@@ -7998,7 +7981,6 @@
   // existing constructor:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C {
   //   int x;
   //
@@ -8012,7 +7994,6 @@
   // you're sure that the field will always be assigned before it's referenced.
   //
   // ```dart
-  // %experiments=non-nullable
   // class C {
   //   late int x;
   // }
@@ -8059,7 +8040,6 @@
   // initialized to `null`:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C {
   //   static int [!f!];
   // }
@@ -8069,7 +8049,6 @@
   // top-level variable `v` can't be initialized to `null`:
   //
   // ```dart
-  // %experiments=non-nullable
   // int [!v!];
   // ```
   //
@@ -8079,7 +8058,6 @@
   // initializer that sets it to a non-null value:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C {
   //   static int f = 0;
   // }
@@ -8089,7 +8067,6 @@
   // type to be nullable:
   //
   // ```dart
-  // %experiments=non-nullable
   // int? v;
   // ```
   //
@@ -8097,7 +8074,6 @@
   // always be initialized before it's referenced, then mark it as being `late`:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C {
   //   static late int f;
   // }
@@ -8210,7 +8186,6 @@
   // type, and nullable types can't be used in an `extends` clause:
   //
   // ```dart
-  // %experiments=non-nullable
   // class A {}
   // class B extends [!A?!] {}
   // ```
@@ -8220,7 +8195,6 @@
   // Remove the question mark from the type:
   //
   // ```dart
-  // %experiments=non-nullable
   // class A {}
   // class B extends A {}
   // ```
@@ -8252,7 +8226,6 @@
   // type, and nullable types can't be used in an `implements` clause:
   //
   // ```dart
-  // %experiments=non-nullable
   // class A {}
   // class B implements [!A?!] {}
   // ```
@@ -8262,7 +8235,6 @@
   // Remove the question mark from the type:
   //
   // ```dart
-  // %experiments=non-nullable
   // class A {}
   // class B implements A {}
   // ```
@@ -8295,7 +8267,6 @@
   // and nullable types can't be used in an `on` clause:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C {}
   // mixin M on [!C?!] {}
   // ```
@@ -8305,7 +8276,6 @@
   // Remove the question mark from the type:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C {}
   // mixin M on C {}
   // ```
@@ -8336,7 +8306,6 @@
   // type, and nullable types can't be used in a `with` clause:
   //
   // ```dart
-  // %experiments=non-nullable
   // mixin M {}
   // class C with [!M?!] {}
   // ```
@@ -8346,7 +8315,6 @@
   // Remove the question mark from the type:
   //
   // ```dart
-  // %experiments=non-nullable
   // mixin M {}
   // class C with M {}
   // ```
@@ -9013,6 +8981,7 @@
   // is declared:
   //
   // ```dart
+  // %language=2.9
   // void f() {
   //   print([!i!]);
   //   int i = 5;
@@ -9025,6 +8994,7 @@
   // before the first reference:
   //
   // ```dart
+  // %language=2.9
   // void f() {
   //   int i = 5;
   //   print(i);
@@ -9036,6 +9006,7 @@
   // declaration so that it doesn't hide the outer variable.
   //
   // ```dart
+  // %language=2.9
   // void f(int i) {
   //   print(i);
   //   int x = 5;
@@ -9315,6 +9286,7 @@
   // field:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   static int a;
   //
@@ -9330,6 +9302,7 @@
   // to an existing static field:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   static int a;
   //
@@ -9343,6 +9316,7 @@
   // class to access the field:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   static int a;
   //
@@ -9464,6 +9438,7 @@
   // (`String`) isn't assignable to the type of `0` (`int`):
   //
   // ```dart
+  // %language=2.9
   // void f(String s) {
   //   switch ([!s!]) {
   //     case 0:
@@ -9478,6 +9453,7 @@
   // expression in the `switch` statement to have the correct type:
   //
   // ```dart
+  // %language=2.9
   // void f(String s) {
   //   switch (int.parse(s)) {
   //     case 0:
@@ -9490,6 +9466,7 @@
   // expressions to have the correct type:
   //
   // ```dart
+  // %language=2.9
   // void f(String s) {
   //   switch (s) {
   //     case '0':
@@ -9520,7 +9497,6 @@
   // The following code produces this diagnostic because `s` might be `null`:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(String? s) {
   //   throw [!s!];
   // }
@@ -9531,7 +9507,6 @@
   // Add an explicit null check to the expression:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(String? s) {
   //   throw s!;
   // }
@@ -9714,7 +9689,6 @@
   // the point where it's referenced:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(String? s) {
   //   if ([!s!].length > 3) {
   //     // ...
@@ -9728,7 +9702,6 @@
   // are only accessed when the value isn't `null`:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(String? s) {
   //   if (s != null && s.length > 3) {
   //     // ...
@@ -9740,7 +9713,6 @@
   // change the type of the variable to be non-nullable:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(String s) {
   //   if (s.length > 3) {
   //     // ...
@@ -9754,7 +9726,6 @@
   // that the value isn't null:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(String? s) {
   //   if (s!.length > 3) {
   //     // ...
@@ -10520,6 +10491,7 @@
   // named parameter named `a`:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   m({int b}) {}
   // }
@@ -10535,6 +10507,7 @@
   // The example above can be fixed by changing `a` to `b`:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   m({int b}) {}
   // }
@@ -10548,6 +10521,7 @@
   // receiver to the subclass:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   m({int b}) {}
   // }
@@ -10564,6 +10538,7 @@
   // If the parameter should be added to the function, then add it:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   m({int a, int b}) {}
   // }
@@ -11024,6 +10999,7 @@
   // `int`, which can't be assigned to `y` because an `int` isn't a `String`:
   //
   // ```dart
+  // %language=2.9
   // const Object x = 0;
   // const String y = [!x!];
   // ```
@@ -11034,6 +11010,7 @@
   // assigned to be of the correct type:
   //
   // ```dart
+  // %language=2.9
   // const Object x = 0;
   // const String y = '$x';
   // ```
@@ -11042,6 +11019,7 @@
   // correct type:
   //
   // ```dart
+  // %language=2.9
   // const Object x = 0;
   // const int y = x;
   // ```
@@ -11146,6 +11124,7 @@
   // two required parameters:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   set [!s!](int x, int y) {}
   // }
@@ -11155,6 +11134,7 @@
   // one optional parameter:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   set [!s!]([int x]) {}
   // }
@@ -11166,6 +11146,7 @@
   // parameter:
   //
   // ```dart
+  // %language=2.9
   // class C {
   //   set s(int x) {}
   // }
@@ -11552,7 +11533,6 @@
   // The following code produces this diagnostic because `x` can't be `null`:
   //
   // ```dart
-  // %experiments=non-nullable
   // int f(int x) {
   //   return x ?? [!0!];
   // }
@@ -11561,7 +11541,6 @@
   // The following code produces this diagnostic because `f` can't be `null`:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C {
   //   int f = -1;
   //
@@ -11577,7 +11556,6 @@
   // operator and the right operand:
   //
   // ```dart
-  // %experiments=non-nullable
   // int f(int x) {
   //   return x;
   // }
@@ -11587,7 +11565,6 @@
   // needed, then remove the assignment:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C {
   //   int f = -1;
   //
@@ -11600,7 +11577,6 @@
   // then rewrite the code to use `=` and the different condition:
   //
   // ```dart
-  // %experiments=non-nullable
   // class C {
   //   int f = -1;
   //
@@ -11633,7 +11609,6 @@
   // The following code produces this diagnostic because `s` can't be `null`:
   //
   // ```dart
-  // %experiments=non-nullable
   // int? getLength(String s) {
   //   return s[!?.!]length;
   // }
@@ -11642,7 +11617,6 @@
   // The following code produces this diagnostic because `a` can't be `null`:
   //
   // ```dart
-  // %experiments=non-nullable
   // var a = [];
   // var b = [[!...?!]a];
   // ```
@@ -11651,7 +11625,6 @@
   // return `null`:
   //
   // ```dart
-  // %experiments=non-nullable
   // void f(String? s) {
   //   s?.length[!?.!]isEven;
   // }
@@ -11672,7 +11645,6 @@
   // example, change `?.` to  `.`:
   //
   // ```dart
-  // %experiments=non-nullable
   // int getLength(String s) {
   //   return s.length;
   // }
@@ -11815,7 +11787,6 @@
   // The following code produces this diagnostic because `x` can't be `null`:
   //
   // ```dart
-  // %experiments=non-nullable
   // int f(int x) {
   //   return x[!!!];
   // }
@@ -11826,7 +11797,6 @@
   // Remove the null check operator (`!`):
   //
   // ```dart
-  // %experiments=non-nullable
   // int f(int x) {
   //   return x;
   // }
diff --git a/pkg/analyzer/test/verify_diagnostics_test.dart b/pkg/analyzer/test/verify_diagnostics_test.dart
index de52dc3..af40e72 100644
--- a/pkg/analyzer/test/verify_diagnostics_test.dart
+++ b/pkg/analyzer/test/verify_diagnostics_test.dart
@@ -65,6 +65,10 @@
   /// be enabled for a snippet.
   static const String experimentsPrefix = '%experiments=';
 
+  /// The prefix used on directive lines to specify the language version for
+  /// the snippet.
+  static const String languagePrefix = '%language=';
+
   /// The prefix used on directive lines to indicate the uri of an auxiliary
   /// file that is needed for testing purposes.
   static const String uriDirectivePrefix = '%uri="';
@@ -144,19 +148,26 @@
     return docs;
   }
 
-  _SnippetData _extractSnippetData(String snippet, bool errorRequired,
-      Map<String, String> auxiliaryFiles, List<String> experiments) {
+  _SnippetData _extractSnippetData(
+    String snippet,
+    bool errorRequired,
+    Map<String, String> auxiliaryFiles,
+    List<String> experiments,
+    String languageVersion,
+  ) {
     int rangeStart = snippet.indexOf(errorRangeStart);
     if (rangeStart < 0) {
       if (errorRequired) {
         _reportProblem('No error range in example');
       }
-      return _SnippetData(snippet, -1, 0, auxiliaryFiles, experiments);
+      return _SnippetData(
+          snippet, -1, 0, auxiliaryFiles, experiments, languageVersion);
     }
     int rangeEnd = snippet.indexOf(errorRangeEnd, rangeStart + 1);
     if (rangeEnd < 0) {
       _reportProblem('No end of error range in example');
-      return _SnippetData(snippet, -1, 0, auxiliaryFiles, experiments);
+      return _SnippetData(
+          snippet, -1, 0, auxiliaryFiles, experiments, languageVersion);
     } else if (snippet.indexOf(errorRangeStart, rangeEnd) > 0) {
       _reportProblem('More than one error range in example');
     }
@@ -167,7 +178,8 @@
         rangeStart,
         rangeEnd - rangeStart - 2,
         auxiliaryFiles,
-        experiments);
+        experiments,
+        languageVersion);
   }
 
   /// Extract the snippets of Dart code between the start (inclusive) and end
@@ -177,6 +189,7 @@
     var snippets = <_SnippetData>[];
     var auxiliaryFiles = <String, String>{};
     List<String> experiments;
+    String languageVersion;
     var currentStart = -1;
     for (var i = start; i < end; i++) {
       var line = lines[i];
@@ -199,10 +212,13 @@
                 .map((e) => e.trim())
                 .toList();
             currentStart++;
+          } else if (secondLine.startsWith(languagePrefix)) {
+            languageVersion = secondLine.substring(languagePrefix.length);
+            currentStart++;
           }
           var content = lines.sublist(currentStart + 1, i).join('\n');
-          snippets.add(_extractSnippetData(
-              content, errorRequired, auxiliaryFiles, experiments));
+          snippets.add(_extractSnippetData(content, errorRequired,
+              auxiliaryFiles, experiments, languageVersion));
           auxiliaryFiles = <String, String>{};
         }
         currentStart = -1;
@@ -394,9 +410,10 @@
   final int length;
   final Map<String, String> auxiliaryFiles;
   final List<String> experiments;
+  final String languageVersion;
 
   _SnippetData(this.content, this.offset, this.length, this.auxiliaryFiles,
-      this.experiments);
+      this.experiments, this.languageVersion);
 }
 
 /// A test class that creates an environment suitable for analyzing the
@@ -407,7 +424,6 @@
 
   /// Initialize a newly created test to test the given [snippet].
   _SnippetTest(this.snippet) {
-    // TODO(scheglov) https://github.com/dart-lang/sdk/issues/43837
     writeTestPackageAnalysisOptionsFile(
       AnalysisOptionsFileConfig(
         experiments: snippet.experiments,
@@ -417,8 +433,7 @@
 
   @override
   String get testPackageLanguageVersion {
-    // TODO(scheglov) https://github.com/dart-lang/sdk/issues/43837
-    return snippet.experiments == null ? '2.9' : null;
+    return snippet.languageVersion;
   }
 
   @override
diff --git a/pkg/dartdev/lib/dartdev.dart b/pkg/dartdev/lib/dartdev.dart
index 287c5dd..5e8f2a9 100644
--- a/pkg/dartdev/lib/dartdev.dart
+++ b/pkg/dartdev/lib/dartdev.dart
@@ -32,129 +32,34 @@
 /// analytics logic, it has been moved here.
 Future<void> runDartdev(List<String> args, SendPort port) async {
   VmInteropHandler.initialize(port);
-
-  int result;
-
-  // The exit code for the dartdev process; null indicates that it has not been
-  // set yet. The value is set in the catch and finally blocks below.
-  int exitCode;
-
-  // Any caught non-UsageExceptions when running the sub command.
-  Object exception;
-  StackTrace stackTrace;
-
-  // The Analytics instance used to report information back to Google Analytics;
-  // see lib/src/analytics.dart.
-  final analytics = createAnalyticsInstance(
-    args.contains('--disable-dartdev-analytics'),
-  );
-
-  // If we have not printed the analyticsNoticeOnFirstRunMessage to stdout,
-  // the user is on a terminal, and the machine is not a bot, then print the
-  // disclosure and set analytics.disclosureShownOnTerminal to true.
-  if (analytics is DartdevAnalytics &&
-      !analytics.disclosureShownOnTerminal &&
-      io.stdout.hasTerminal &&
-      !isBot()) {
-    print(analyticsNoticeOnFirstRunMessage);
-    analytics.disclosureShownOnTerminal = true;
+  if (args.contains('run')) {
+    // These flags have a format that can't be handled by package:args, so while
+    // they are valid flags we'll assume the VM has verified them by this point.
+    args = args
+        .where(
+          (element) => !(element.contains('--observe') ||
+              element.contains('--enable-vm-service')),
+        )
+        .toList();
   }
 
-  // When `--disable-analytics` or `--enable-analytics` are called we perform
-  // the respective intention and print any notices to standard out and exit.
-  if (args.contains('--disable-analytics')) {
-    // This block also potentially catches the case of (disableAnalytics &&
-    // enableAnalytics), in which we favor the disabling of analytics.
-    analytics.enabled = false;
+  // Finally, call the runner to execute the command; see DartdevRunner.
 
-    // Alert the user that analytics has been disabled.
-    print(analyticsDisabledNoticeMessage);
-    VmInteropHandler.exit(0);
-    return;
-  } else if (args.contains('--enable-analytics')) {
-    analytics.enabled = true;
-
-    // Alert the user again that anonymous data will be collected.
-    print(analyticsNoticeOnFirstRunMessage);
-    VmInteropHandler.exit(0);
-    return;
-  }
-
+  final runner = DartdevRunner(args);
+  var exitCode = 1;
   try {
-    final runner = DartdevRunner(args, analytics);
-
-    // Run can't be called with the '--disable-dartdev-analytics' flag; remove
-    // it if it is contained in args.
-    if (args.contains('--disable-dartdev-analytics')) {
-      args = List.from(args)..remove('--disable-dartdev-analytics');
-    }
-
-    if (args.contains('run')) {
-      // These flags have a format that can't be handled by package:args, so while
-      // they are valid flags we'll assume the VM has verified them by this point.
-      args = args
-          .where(
-            (element) => !(element.contains('--observe') ||
-                element.contains('--enable-vm-service')),
-          )
-          .toList();
-    }
-
-    // If ... help pub ... is in the args list, remove 'help', and add '--help'
-    // to the end of the list. This will make it possible to use the help
-    // command to access subcommands of pub such as `dart help pub publish`; see
-    // https://github.com/dart-lang/sdk/issues/42965.
-    if (PubUtils.shouldModifyArgs(args, runner.commands.keys.toList())) {
-      args = PubUtils.modifyArgs(args);
-    }
-
-    // Finally, call the runner to execute the command; see DartdevRunner.
-    result = await runner.run(args);
-  } catch (e, st) {
-    if (e is UsageException) {
-      io.stderr.writeln('$e');
-      exitCode = 64;
-    } else {
-      // Set the exception and stack trace only for non-UsageException cases:
-      exception = e;
-      stackTrace = st;
-      io.stderr.writeln('$e');
-      io.stderr.writeln('$st');
-      exitCode = 1;
-    }
+    exitCode = await runner.run(args);
+  } on UsageException catch (e) {
+    // TODO(sigurdm): It is unclear when a UsageException gets to here, and
+    // when it is in DartdevRunner.runCommand.
+    io.stderr.writeln('$e');
+    exitCode = 64;
   } finally {
-    // Set the exitCode, if it wasn't set in the catch block above.
-    exitCode ??= result ?? 0;
-
-    // Send analytics before exiting
-    if (analytics.enabled) {
-      // And now send the exceptions and events to Google Analytics:
-      if (exception != null) {
-        unawaited(
-          analytics.sendException(
-              '${exception.runtimeType}\n${sanitizeStacktrace(stackTrace)}',
-              fatal: true),
-        );
-      }
-
-      await analytics.waitForLastPing(
-          timeout: const Duration(milliseconds: 200));
-    }
-
-    // Set the enabled flag in the analytics object to true. Note: this will not
-    // enable the analytics unless the disclosure was shown (terminal detected),
-    // and the machine is not detected to be a bot.
-    if (analytics.firstRun) {
-      analytics.enabled = true;
-    }
-    analytics.close();
     VmInteropHandler.exit(exitCode);
   }
 }
 
 class DartdevRunner extends CommandRunner<int> {
-  final Analytics analytics;
-
   @override
   final ArgParser argParser = ArgParser(
     usageLineLength: dartdevUsageLineLength,
@@ -164,8 +69,7 @@
   static const String dartdevDescription =
       'A command-line utility for Dart development';
 
-  DartdevRunner(List<String> args, this.analytics)
-      : super('dart', '$dartdevDescription.') {
+  DartdevRunner(List<String> args) : super('dart', '$dartdevDescription.') {
     final bool verbose = args.contains('-v') || args.contains('--verbose');
 
     argParser.addFlag('verbose',
@@ -180,12 +84,9 @@
     argParser.addFlag('diagnostics',
         negatable: false, help: 'Show tool diagnostic output.', hide: !verbose);
 
-    // A hidden flag to disable analytics on this run, this constructor can be
-    // called with this flag, but should be removed before run() is called as
-    // the flag has not been added to all sub-commands.
     argParser.addFlag(
-      'disable-dartdev-analytics',
-      negatable: false,
+      'analytics',
+      negatable: true,
       help: 'Disable anonymous analytics for this `dart *` run',
       hide: true,
     );
@@ -212,7 +113,38 @@
   @override
   Future<int> runCommand(ArgResults topLevelResults) async {
     final stopwatch = Stopwatch()..start();
-    assert(!topLevelResults.arguments.contains('--disable-dartdev-analytics'));
+    // The Analytics instance used to report information back to Google Analytics;
+    // see lib/src/analytics.dart.
+    final analytics = createAnalyticsInstance(!topLevelResults['analytics']);
+
+    // If we have not printed the analyticsNoticeOnFirstRunMessage to stdout,
+    // the user is on a terminal, and the machine is not a bot, then print the
+    // disclosure and set analytics.disclosureShownOnTerminal to true.
+    if (analytics is DartdevAnalytics &&
+        !analytics.disclosureShownOnTerminal &&
+        io.stdout.hasTerminal &&
+        !isBot()) {
+      print(analyticsNoticeOnFirstRunMessage);
+      analytics.disclosureShownOnTerminal = true;
+    }
+
+    // When `--disable-analytics` or `--enable-analytics` are called we perform
+    // the respective intention and print any notices to standard out and exit.
+    if (topLevelResults['disable-analytics']) {
+      // This block also potentially catches the case of (disableAnalytics &&
+      // enableAnalytics), in which we favor the disabling of analytics.
+      analytics.enabled = false;
+
+      // Alert the user that analytics has been disabled.
+      print(analyticsDisabledNoticeMessage);
+      return 0;
+    } else if (topLevelResults['enable-analytics']) {
+      analytics.enabled = true;
+
+      // Alert the user again that anonymous data will be collected.
+      print(analyticsNoticeOnFirstRunMessage);
+      return 0;
+    }
 
     if (topLevelResults.command == null &&
         topLevelResults.arguments.isNotEmpty) {
@@ -222,14 +154,12 @@
         io.stderr.writeln(
             "Error when reading '$firstArg': No such file or directory.");
         // This is the exit code used by the frontend.
-        VmInteropHandler.exit(254);
+        return 254;
       }
     }
 
-    isDiagnostics = topLevelResults['diagnostics'];
-
     final Ansi ansi = Ansi(Ansi.terminalSupportsAnsi);
-    log = isDiagnostics
+    log = topLevelResults['diagnostics']
         ? Logger.verbose(ansi: ansi)
         : Logger.standard(ansi: ansi);
 
@@ -247,8 +177,15 @@
       analytics.sendScreenView(path),
     );
 
+    // The exit code for the dartdev process; null indicates that it has not been
+    // set yet. The value is set in the catch and finally blocks below.
+    int exitCode;
+
+    // Any caught non-UsageExceptions when running the sub command.
+    Object exception;
+    StackTrace stackTrace;
     try {
-      final exitCode = await super.runCommand(topLevelResults);
+      exitCode = await super.runCommand(topLevelResults);
 
       if (path != null && analytics.enabled) {
         // Send the event to analytics
@@ -268,8 +205,16 @@
           ),
         );
       }
-
-      return exitCode;
+    } on UsageException catch (e) {
+      io.stderr.writeln('$e');
+      exitCode = 64;
+    } catch (e, st) {
+      // Set the exception and stack trace only for non-UsageException cases:
+      exception = e;
+      stackTrace = st;
+      io.stderr.writeln('$e');
+      io.stderr.writeln('$st');
+      exitCode = 1;
     } finally {
       stopwatch.stop();
       if (analytics.enabled) {
@@ -281,6 +226,32 @@
           ),
         );
       }
+      // Set the exitCode, if it wasn't set in the catch block above.
+      exitCode ??= 0;
+
+      // Send analytics before exiting
+      if (analytics.enabled) {
+        // And now send the exceptions and events to Google Analytics:
+        if (exception != null) {
+          unawaited(
+            analytics.sendException(
+                '${exception.runtimeType}\n${sanitizeStacktrace(stackTrace)}',
+                fatal: true),
+          );
+        }
+
+        await analytics.waitForLastPing(
+            timeout: const Duration(milliseconds: 200));
+      }
+
+      // Set the enabled flag in the analytics object to true. Note: this will not
+      // enable the analytics unless the disclosure was shown (terminal detected),
+      // and the machine is not detected to be a bot.
+      if (analytics.firstRun) {
+        analytics.enabled = true;
+      }
+      analytics.close();
+      return exitCode;
     }
   }
 }
diff --git a/pkg/dartdev/lib/src/analytics.dart b/pkg/dartdev/lib/src/analytics.dart
index 14b9fb2..c9b1edf 100644
--- a/pkg/dartdev/lib/src/analytics.dart
+++ b/pkg/dartdev/lib/src/analytics.dart
@@ -57,7 +57,7 @@
   }
 
   if (disableAnalytics) {
-    // Dartdev tests pass a hidden 'disable-dartdev-analytics' flag which is
+    // Dartdev tests pass a hidden 'no-analytics' flag which is
     // handled here.
     //
     // Also, stdout.hasTerminal is checked; if there is no terminal we infer
diff --git a/pkg/dartdev/lib/src/utils.dart b/pkg/dartdev/lib/src/utils.dart
index 88b80ed..32a9c8e 100644
--- a/pkg/dartdev/lib/src/utils.dart
+++ b/pkg/dartdev/lib/src/utils.dart
@@ -38,31 +38,6 @@
   return s;
 }
 
-/// Static util methods used in dartdev to potentially modify the order of the
-/// arguments passed into dartdev.
-class PubUtils {
-  /// If [doModifyArgs] returns true, then this method returns a modified copy
-  /// of the argument list, 'help' is removed from the interior of the list, and
-  /// '--help' is added to the end of the list of arguments. This method returns
-  /// a modified copy of the list, the list itself is not modified.
-  static List<String> modifyArgs(List<String> args) => List.from(args)
-    ..remove('help')
-    ..add('--help');
-
-  /// If ... help pub ..., and no other verb (such as 'analyze') appears before
-  /// the ... help pub ... in the argument list, then return true.
-  static bool shouldModifyArgs(List<String> args, List<String> allCmds) =>
-      args != null &&
-      allCmds != null &&
-      args.isNotEmpty &&
-      allCmds.isNotEmpty &&
-      args.firstWhere((arg) => allCmds.contains(arg), orElse: () => '') ==
-          'help' &&
-      args.contains('help') &&
-      args.contains('pub') &&
-      args.indexOf('help') + 1 == args.indexOf('pub');
-}
-
 extension FileSystemEntityExtension on FileSystemEntity {
   String get name => p.basename(path);
 
diff --git a/pkg/dartdev/test/analytics_test.dart b/pkg/dartdev/test/analytics_test.dart
index 26d9822..8c74972 100644
--- a/pkg/dartdev/test/analytics_test.dart
+++ b/pkg/dartdev/test/analytics_test.dart
@@ -23,7 +23,7 @@
   group('Sending analytics', () {
     test('help', () {
       final p = project(logAnalytics: true);
-      final result = p.runSync('help', []);
+      final result = p.runSync(['help']);
       expect(extractAnalytics(result), [
         {
           'hitType': 'screenView',
@@ -51,7 +51,7 @@
     });
     test('create', () {
       final p = project(logAnalytics: true);
-      final result = p.runSync('create', ['-tpackage-simple', 'name']);
+      final result = p.runSync(['create', '-tpackage-simple', 'name']);
       expect(extractAnalytics(result), [
         {
           'hitType': 'screenView',
@@ -82,7 +82,7 @@
 
     test('pub get', () {
       final p = project(logAnalytics: true);
-      final result = p.runSync('pub', ['get', '--dry-run']);
+      final result = p.runSync(['pub', 'get', '--dry-run']);
       expect(extractAnalytics(result), [
         {
           'hitType': 'screenView',
@@ -113,7 +113,7 @@
 
     test('format', () {
       final p = project(logAnalytics: true);
-      final result = p.runSync('format', ['-l80']);
+      final result = p.runSync(['format', '-l80']);
       expect(extractAnalytics(result), [
         {
           'hitType': 'screenView',
@@ -146,7 +146,8 @@
       final p = project(
           mainSrc: 'void main(List<String> args) => print(args)',
           logAnalytics: true);
-      final result = p.runSync('run', [
+      final result = p.runSync([
+        'run',
         '--no-pause-isolates-on-exit',
         '--enable-asserts',
         'lib/main.dart',
@@ -184,7 +185,8 @@
       final p = project(
           mainSrc: 'void main(List<String> args) => print(args);',
           logAnalytics: true);
-      final result = p.runSync('run', [
+      final result = p.runSync([
+        'run',
         '--enable-experiment=non-nullable',
         'lib/main.dart',
       ]);
@@ -221,7 +223,7 @@
           mainSrc: 'void main(List<String> args) => print(args);',
           logAnalytics: true);
       final result = p
-          .runSync('compile', ['kernel', 'lib/main.dart', '-o', 'main.kernel']);
+          .runSync(['compile', 'kernel', 'lib/main.dart', '-o', 'main.kernel']);
       expect(extractAnalytics(result), [
         {
           'hitType': 'screenView',
diff --git a/pkg/dartdev/test/commands/analyze_test.dart b/pkg/dartdev/test/commands/analyze_test.dart
index 12e1776..f2d9895 100644
--- a/pkg/dartdev/test/commands/analyze_test.dart
+++ b/pkg/dartdev/test/commands/analyze_test.dart
@@ -64,7 +64,7 @@
 
   test('--help', () {
     p = project();
-    var result = p.runSync('analyze', ['--help']);
+    var result = p.runSync(['analyze', '--help']);
 
     expect(result.exitCode, 0);
     expect(result.stderr, isEmpty);
@@ -74,7 +74,7 @@
 
   test('multiple directories', () {
     p = project();
-    var result = p.runSync('analyze', ['/no/such/dir1/', '/no/such/dir2/']);
+    var result = p.runSync(['analyze', '/no/such/dir1/', '/no/such/dir2/']);
 
     expect(result.exitCode, 64);
     expect(result.stdout, isEmpty);
@@ -84,7 +84,7 @@
 
   test('no such directory', () {
     p = project();
-    var result = p.runSync('analyze', ['/no/such/dir1/']);
+    var result = p.runSync(['analyze', '/no/such/dir1/']);
 
     expect(result.exitCode, 64);
     expect(result.stdout, isEmpty);
@@ -95,7 +95,7 @@
   test('current working directory', () {
     p = project(mainSrc: 'int get foo => 1;\n');
 
-    var result = p.runSync('analyze', [], workingDir: p.dirPath);
+    var result = p.runSync(['analyze'], workingDir: p.dirPath);
 
     expect(result.exitCode, 0);
     expect(result.stderr, isEmpty);
@@ -104,7 +104,7 @@
 
   test('no errors', () {
     p = project(mainSrc: 'int get foo => 1;\n');
-    var result = p.runSync('analyze', [p.dirPath]);
+    var result = p.runSync(['analyze', p.dirPath]);
 
     expect(result.exitCode, 0);
     expect(result.stderr, isEmpty);
@@ -113,7 +113,7 @@
 
   test('one error', () {
     p = project(mainSrc: "int get foo => 'str';\n");
-    var result = p.runSync('analyze', [p.dirPath]);
+    var result = p.runSync(['analyze', p.dirPath]);
 
     expect(result.exitCode, 3);
     expect(result.stderr, isEmpty);
@@ -125,7 +125,7 @@
 
   test('two errors', () {
     p = project(mainSrc: "int get foo => 'str';\nint get bar => 'str';\n");
-    var result = p.runSync('analyze', [p.dirPath]);
+    var result = p.runSync(['analyze', p.dirPath]);
 
     expect(result.exitCode, 3);
     expect(result.stderr, isEmpty);
@@ -136,7 +136,7 @@
     p = project(
         mainSrc: _unusedImportCodeSnippet,
         analysisOptions: _unusedImportAnalysisOptions);
-    var result = p.runSync('analyze', ['--fatal-warnings', p.dirPath]);
+    var result = p.runSync(['analyze', '--fatal-warnings', p.dirPath]);
 
     expect(result.exitCode, equals(2));
     expect(result.stderr, isEmpty);
@@ -147,7 +147,7 @@
     p = project(
         mainSrc: _unusedImportCodeSnippet,
         analysisOptions: _unusedImportAnalysisOptions);
-    var result = p.runSync('analyze', [p.dirPath]);
+    var result = p.runSync(['analyze', p.dirPath]);
 
     expect(result.exitCode, equals(2));
     expect(result.stderr, isEmpty);
@@ -158,7 +158,7 @@
     p = project(
         mainSrc: _unusedImportCodeSnippet,
         analysisOptions: _unusedImportAnalysisOptions);
-    var result = p.runSync('analyze', ['--no-fatal-warnings', p.dirPath]);
+    var result = p.runSync(['analyze', '--no-fatal-warnings', p.dirPath]);
 
     expect(result.exitCode, 0);
     expect(result.stderr, isEmpty);
@@ -167,7 +167,7 @@
 
   test('info implicit no --fatal-infos', () {
     p = project(mainSrc: dartVersionFilePrefix2_9 + 'String foo() {}');
-    var result = p.runSync('analyze', [p.dirPath]);
+    var result = p.runSync(['analyze', p.dirPath]);
 
     expect(result.exitCode, 0);
     expect(result.stderr, isEmpty);
@@ -176,7 +176,7 @@
 
   test('info --fatal-infos', () {
     p = project(mainSrc: dartVersionFilePrefix2_9 + 'String foo() {}');
-    var result = p.runSync('analyze', ['--fatal-infos', p.dirPath]);
+    var result = p.runSync(['analyze', '--fatal-infos', p.dirPath]);
 
     expect(result.exitCode, 1);
     expect(result.stderr, isEmpty);
@@ -190,7 +190,7 @@
   var one = 1;
   return result;
 }''');
-    var result = p.runSync('analyze', ['--verbose', p.dirPath]);
+    var result = p.runSync(['analyze', '--verbose', p.dirPath]);
 
     expect(result.exitCode, 3);
     expect(result.stderr, isEmpty);
diff --git a/pkg/dartdev/test/commands/compile_test.dart b/pkg/dartdev/test/commands/compile_test.dart
index 57e669a..f2f5f31 100644
--- a/pkg/dartdev/test/commands/compile_test.dart
+++ b/pkg/dartdev/test/commands/compile_test.dart
@@ -27,8 +27,9 @@
   test('Implicit --help', () {
     final p = project();
     var result = p.runSync(
-      'compile',
-      [],
+      [
+        'compile',
+      ],
     );
     expect(result.stderr, contains('Compile Dart'));
     expect(result.exitCode, compileErrorExitCode);
@@ -37,8 +38,7 @@
   test('--help', () {
     final p = project();
     final result = p.runSync(
-      'compile',
-      ['--help'],
+      ['compile', '--help'],
     );
     expect(result.stdout, contains('Compile Dart'));
     expect(result.exitCode, 0);
@@ -48,8 +48,8 @@
     final p = project(mainSrc: 'void main() { print("I love jit"); }');
     final outFile = path.join(p.dirPath, 'main.jit');
     var result = p.runSync(
-      'compile',
       [
+        'compile',
         'jit-snapshot',
         '-o',
         outFile,
@@ -61,7 +61,7 @@
     expect(File(outFile).existsSync(), true,
         reason: 'File not found: $outFile');
 
-    result = p.runSync('run', ['main.jit']);
+    result = p.runSync(['run', 'main.jit']);
     expect(result.stdout, contains('I love jit'));
     expect(result.stderr, isEmpty);
     expect(result.exitCode, 0);
@@ -73,8 +73,8 @@
     final outFile = path.canonicalize(path.join(p.dirPath, 'lib', 'main.exe'));
 
     var result = p.runSync(
-      'compile',
       [
+        'compile',
         'exe',
         inFile,
       ],
@@ -102,8 +102,8 @@
     final outFile = path.canonicalize(path.join(p.dirPath, 'myexe'));
 
     var result = p.runSync(
-      'compile',
       [
+        'compile',
         'exe',
         '--define',
         'life=42',
@@ -134,8 +134,8 @@
     final outFile = path.canonicalize(path.join(p.dirPath, 'main.aot'));
 
     var result = p.runSync(
-      'compile',
       [
+        'compile',
         'aot-snapshot',
         '-o',
         'main.aot',
@@ -163,8 +163,8 @@
     final p = project(mainSrc: 'void main() { print("I love kernel"); }');
     final outFile = path.join(p.dirPath, 'main.dill');
     var result = p.runSync(
-      'compile',
       [
+        'compile',
         'kernel',
         '-o',
         outFile,
@@ -176,7 +176,7 @@
     expect(result.stderr, isEmpty);
     expect(result.exitCode, 0);
 
-    result = p.runSync('run', ['main.dill']);
+    result = p.runSync(['run', 'main.dill']);
     expect(result.stdout, contains('I love kernel'));
     expect(result.stderr, isEmpty);
     expect(result.exitCode, 0);
@@ -187,7 +187,8 @@
     final inFile = path.canonicalize(path.join(p.dirPath, p.relativeFilePath));
     final outFile = path.canonicalize(path.join(p.dirPath, 'main.js'));
 
-    final result = p.runSync('compile', [
+    final result = p.runSync([
+      'compile',
       'js',
       '-m',
       '-o',
diff --git a/pkg/dartdev/test/commands/create_test.dart b/pkg/dartdev/test/commands/create_test.dart
index 38a8ebd..7f5c846 100644
--- a/pkg/dartdev/test/commands/create_test.dart
+++ b/pkg/dartdev/test/commands/create_test.dart
@@ -36,7 +36,7 @@
   test('list templates', () {
     p = project();
 
-    ProcessResult result = p.runSync('create', ['--list-templates']);
+    ProcessResult result = p.runSync(['create', '--list-templates']);
     expect(result.exitCode, 0);
 
     String output = result.stdout.toString();
@@ -50,7 +50,9 @@
   test('no directory given', () {
     p = project();
 
-    ProcessResult result = p.runSync('create', []);
+    ProcessResult result = p.runSync([
+      'create',
+    ]);
     expect(result.exitCode, 1);
   });
 
@@ -58,7 +60,7 @@
     p = project();
 
     ProcessResult result = p.runSync(
-        'create', ['--template', CreateCommand.defaultTemplateId, p.dir.path]);
+        ['create', '--template', CreateCommand.defaultTemplateId, p.dir.path]);
     expect(result.exitCode, 73);
   });
 
@@ -66,7 +68,7 @@
     p = project();
 
     ProcessResult result =
-        p.runSync('create', ['--no-pub', '--template', 'foo-bar', p.dir.path]);
+        p.runSync(['create', '--no-pub', '--template', 'foo-bar', p.dir.path]);
     expect(result.exitCode, isNot(0));
   });
 
@@ -76,7 +78,7 @@
       p = project();
 
       ProcessResult result = p
-          .runSync('create', ['--force', '--template', templateId, p.dir.path]);
+          .runSync(['create', '--force', '--template', templateId, p.dir.path]);
       expect(result.exitCode, 0);
 
       String projectName = path.basename(p.dir.path);
diff --git a/pkg/dartdev/test/commands/fix_test.dart b/pkg/dartdev/test/commands/fix_test.dart
index 40c7860..8a92d7b 100644
--- a/pkg/dartdev/test/commands/fix_test.dart
+++ b/pkg/dartdev/test/commands/fix_test.dart
@@ -29,9 +29,9 @@
   ProcessResult runFix(List<String> args, {String workingDir}) {
     if (runFromSource) {
       var binary = path.join(Directory.current.path, 'bin', 'dartdev.dart');
-      return p.runSync(binary, ['fix', ...?args], workingDir: workingDir);
+      return p.runSync([binary, 'fix', ...?args], workingDir: workingDir);
     }
-    return p.runSync('fix', args, workingDir: workingDir);
+    return p.runSync(['fix', ...args], workingDir: workingDir);
   }
 
   test('none', () {
@@ -65,6 +65,7 @@
     - prefer_single_quotes
 ''',
     );
+
     var result = runFix(['--apply'], workingDir: p.dirPath);
     expect(result.exitCode, 0);
     expect(result.stderr, isEmpty);
diff --git a/pkg/dartdev/test/commands/flag_test.dart b/pkg/dartdev/test/commands/flag_test.dart
index 6416ffc..0475ee3 100644
--- a/pkg/dartdev/test/commands/flag_test.dart
+++ b/pkg/dartdev/test/commands/flag_test.dart
@@ -6,7 +6,6 @@
 
 import 'package:args/command_runner.dart';
 import 'package:dartdev/dartdev.dart';
-import 'package:dartdev/src/analytics.dart' show disabledAnalytics;
 import 'package:test/test.dart';
 
 import '../utils.dart';
@@ -20,7 +19,7 @@
   // For each command description, assert that the values are not empty, don't
   // have trailing white space and end with a period.
   test('description formatting', () {
-    DartdevRunner(['--disable-dartdev-analytics'], disabledAnalytics)
+    DartdevRunner(['--no-analytics'])
         .commands
         .forEach((String commandKey, Command command) {
       expect(commandKey, isNotEmpty);
@@ -32,7 +31,7 @@
 
   // Assert that all found usageLineLengths are the same and null
   test('argParser usageLineLength', () {
-    DartdevRunner(['--disable-dartdev-analytics'], disabledAnalytics)
+    DartdevRunner(['--no-analytics'])
         .commands
         .forEach((String commandKey, Command command) {
       if (command.argParser != null) {
@@ -62,7 +61,7 @@
 
   test('--help', () {
     p = project();
-    var result = p.runSync('--help', []);
+    var result = p.runSync(['--help']);
 
     expect(result.exitCode, 0);
     expect(result.stderr, isEmpty);
@@ -80,7 +79,7 @@
 
   test('--help --verbose', () {
     p = project();
-    var result = p.runSync('--help', ['--verbose']);
+    var result = p.runSync(['--help', '--verbose']);
 
     expect(result.exitCode, 0);
     expect(result.stdout, isEmpty);
@@ -90,7 +89,7 @@
 
   test('--help -v', () {
     p = project();
-    var result = p.runSync('--help', ['-v']);
+    var result = p.runSync(['--help', '-v']);
 
     expect(result.exitCode, 0);
     expect(result.stdout, isEmpty);
@@ -100,7 +99,7 @@
 
   test('help', () {
     p = project();
-    var result = p.runSync('help', []);
+    var result = p.runSync(['help']);
 
     expect(result.exitCode, 0);
     expect(result.stderr, isEmpty);
@@ -118,7 +117,7 @@
 
   test('help --verbose', () {
     p = project();
-    var result = p.runSync('help', ['--verbose']);
+    var result = p.runSync(['help', '--verbose']);
 
     expect(result.exitCode, 0);
     expect(result.stdout, contains('migrate '));
@@ -126,7 +125,7 @@
 
   test('help -v', () {
     p = project();
-    var result = p.runSync('help', ['-v']);
+    var result = p.runSync(['help', '-v']);
 
     expect(result.exitCode, 0);
     expect(result.stdout, contains('migrate '));
diff --git a/pkg/dartdev/test/commands/format_test.dart b/pkg/dartdev/test/commands/format_test.dart
index cded95b..6f36795 100644
--- a/pkg/dartdev/test/commands/format_test.dart
+++ b/pkg/dartdev/test/commands/format_test.dart
@@ -19,7 +19,7 @@
 
   test('--help', () {
     p = project();
-    var result = p.runSync('format', ['--help']);
+    var result = p.runSync(['format', '--help']);
     expect(result.exitCode, 0);
     expect(result.stderr, isEmpty);
     expect(result.stdout, contains('Idiomatically format Dart source code.'));
@@ -32,7 +32,7 @@
 
   test('--help --verbose', () {
     p = project();
-    var result = p.runSync('format', ['--help', '--verbose']);
+    var result = p.runSync(['format', '--help', '--verbose']);
     expect(result.exitCode, 0);
     expect(result.stderr, isEmpty);
     expect(result.stdout, contains('Idiomatically format Dart source code.'));
@@ -45,7 +45,7 @@
 
   test('unchanged', () {
     p = project(mainSrc: 'int get foo => 1;\n');
-    ProcessResult result = p.runSync('format', [p.relativeFilePath]);
+    ProcessResult result = p.runSync(['format', p.relativeFilePath]);
     expect(result.exitCode, 0);
     expect(result.stderr, isEmpty);
     expect(result.stdout, startsWith('Formatted 1 file (0 changed) in '));
@@ -53,7 +53,7 @@
 
   test('formatted', () {
     p = project(mainSrc: 'int get foo =>       1;\n');
-    ProcessResult result = p.runSync('format', [p.relativeFilePath]);
+    ProcessResult result = p.runSync(['format', p.relativeFilePath]);
     expect(result.exitCode, 0);
     expect(result.stderr, isEmpty);
     expect(
@@ -65,7 +65,7 @@
   test('unknown file', () {
     p = project(mainSrc: 'int get foo => 1;\n');
     var unknownFilePath = '${p.relativeFilePath}-unknown-file.dart';
-    ProcessResult result = p.runSync('format', [unknownFilePath]);
+    ProcessResult result = p.runSync(['format', unknownFilePath]);
     expect(result.exitCode, 0);
     expect(result.stderr,
         startsWith('No file or directory found at "$unknownFilePath".'));
diff --git a/pkg/dartdev/test/commands/help_test.dart b/pkg/dartdev/test/commands/help_test.dart
index c272e43..afbaf09 100644
--- a/pkg/dartdev/test/commands/help_test.dart
+++ b/pkg/dartdev/test/commands/help_test.dart
@@ -4,7 +4,6 @@
 
 import 'package:args/command_runner.dart';
 import 'package:dartdev/dartdev.dart';
-import 'package:dartdev/src/analytics.dart' show disabledAnalytics;
 import 'package:test/test.dart';
 
 import '../utils.dart';
@@ -22,14 +21,14 @@
   List<String> _commandsNotTested = <String>[
     'help', // `dart help help` is redundant
   ];
-  DartdevRunner(['--disable-dartdev-analytics'], disabledAnalytics)
+  DartdevRunner(['--no-analytics'])
       .commands
       .forEach((String commandKey, Command command) {
     if (!_commandsNotTested.contains(commandKey)) {
       test('(help $commandKey == $commandKey --help)', () {
         p = project();
-        var result = p.runSync('help', [commandKey]);
-        var verbHelpResult = p.runSync(commandKey, ['--help']);
+        var result = p.runSync(['help', commandKey]);
+        var verbHelpResult = p.runSync([commandKey, '--help']);
 
         expect(result.stdout, contains(verbHelpResult.stdout));
         expect(result.stderr, contains(verbHelpResult.stderr));
@@ -39,15 +38,15 @@
 
   test('(help pub == pub --help)', () {
     p = project();
-    var result = p.runSync('help', ['pub']);
-    var pubHelpResult = p.runSync('pub', ['--help']);
+    var result = p.runSync(['help', 'pub']);
+    var pubHelpResult = p.runSync(['pub', '--help']);
 
     expect(result.stdout, contains(pubHelpResult.stdout));
     expect(result.stderr, contains(pubHelpResult.stderr));
   });
 
   test('(--help flags also have -h abbr)', () {
-    DartdevRunner(['--disable-dartdev-analytics'], disabledAnalytics)
+    DartdevRunner(['--no-analytics'])
         .commands
         .forEach((String commandKey, Command command) {
       var helpOption = command.argParser.options['help'];
diff --git a/pkg/dartdev/test/commands/migrate_test.dart b/pkg/dartdev/test/commands/migrate_test.dart
index 8101640..681d550 100644
--- a/pkg/dartdev/test/commands/migrate_test.dart
+++ b/pkg/dartdev/test/commands/migrate_test.dart
@@ -21,7 +21,7 @@
 
   test('--help', () {
     p = project();
-    var result = p.runSync('migrate', ['--help']);
+    var result = p.runSync(['migrate', '--help']);
 
     expect(result.exitCode, 0);
     expect(result.stderr, isEmpty);
@@ -34,7 +34,7 @@
   test('directory implicit', () {
     p = project(mainSrc: dartVersionFilePrefix2_9 + 'int get foo => 1;\n');
     var result =
-        p.runSync('migrate', ['--no-web-preview'], workingDir: p.dirPath);
+        p.runSync(['migrate', '--no-web-preview'], workingDir: p.dirPath);
     expect(result.exitCode, 0);
     expect(result.stderr, isEmpty);
     expect(result.stdout, contains('Generating migration suggestions'));
@@ -42,7 +42,7 @@
 
   test('directory explicit', () {
     p = project(mainSrc: dartVersionFilePrefix2_9 + 'int get foo => 1;\n');
-    var result = p.runSync('migrate', ['--no-web-preview', p.dirPath]);
+    var result = p.runSync(['migrate', '--no-web-preview', p.dirPath]);
     expect(result.exitCode, 0);
     expect(result.stderr, isEmpty);
     expect(result.stdout, contains('Generating migration suggestions'));
@@ -50,7 +50,7 @@
 
   test('bad directory', () {
     p = project(mainSrc: 'int get foo => 1;\n');
-    var result = p.runSync('migrate', ['foo_bar_dir']);
+    var result = p.runSync(['migrate', 'foo_bar_dir']);
     expect(result.exitCode, 1);
     expect(result.stderr, contains('foo_bar_dir does not exist'));
     expect(result.stdout, isEmpty);
@@ -58,7 +58,7 @@
 
   test('pub get needs running', () {
     p = project(mainSrc: 'import "package:foo/foo.dart";\n');
-    var result = p.runSync('migrate', [p.dirPath]);
+    var result = p.runSync(['migrate', p.dirPath]);
     expect(result.exitCode, 1);
     expect(result.stderr, isEmpty);
     expect(result.stdout, runPubGet);
@@ -67,7 +67,7 @@
 
   test('non-pub-related error', () {
     p = project(mainSrc: 'var missing = "semicolon"\n');
-    var result = p.runSync('migrate', [p.dirPath]);
+    var result = p.runSync(['migrate', p.dirPath]);
     expect(result.exitCode, 1);
     expect(result.stderr, isEmpty);
     expect(result.stdout, runPubGet);
diff --git a/pkg/dartdev/test/commands/pub_test.dart b/pkg/dartdev/test/commands/pub_test.dart
index 82f00d0..e164858 100644
--- a/pkg/dartdev/test/commands/pub_test.dart
+++ b/pkg/dartdev/test/commands/pub_test.dart
@@ -26,7 +26,7 @@
   }
 
   test('implicit --help', () {
-    final result = project().runSync('pub', []);
+    final result = project().runSync(['pub']);
     expect(result, isNotNull);
     expect(result.exitCode, 64);
     expect(result.stderr, contains('Missing subcommand for "dart pub".'));
@@ -35,17 +35,17 @@
   });
 
   test('--help', () {
-    _assertPubHelpInvoked(project().runSync('pub', ['--help']));
+    _assertPubHelpInvoked(project().runSync(['pub', '--help']));
   });
 
   test('-h', () {
-    _assertPubHelpInvoked(project().runSync('pub', ['-h']));
+    _assertPubHelpInvoked(project().runSync(['pub', '-h']));
   });
 
   test('help cache', () {
     p = project();
-    var result = p.runSync('help', ['pub', 'cache']);
-    var result2 = p.runSync('pub', ['cache', '--help']);
+    var result = p.runSync(['help', 'pub', 'cache']);
+    var result2 = p.runSync(['pub', 'cache', '--help']);
 
     expect(result.exitCode, 0);
 
@@ -58,8 +58,8 @@
 
   test('help publish', () {
     p = project();
-    var result = p.runSync('help', ['pub', 'publish']);
-    var result2 = p.runSync('pub', ['publish', '--help']);
+    var result = p.runSync(['help', 'pub', 'publish']);
+    var result2 = p.runSync(['pub', 'publish', '--help']);
 
     expect(result.exitCode, 0);
 
@@ -77,10 +77,10 @@
         "void main() { int? a; a = null; print('a is \$a.'); }");
 
     // run 'pub get'
-    p.runSync('pub', ['get']);
+    p.runSync(['pub', 'get']);
 
     var result = p.runSync(
-        'pub', ['run', '--enable-experiment=no-non-nullable', 'main.dart']);
+        ['pub', 'run', '--enable-experiment=no-non-nullable', 'main.dart']);
 
     expect(result.exitCode, 254);
     expect(result.stdout, isEmpty);
@@ -93,7 +93,7 @@
 
   test('failure', () {
     p = project(mainSrc: 'int get foo => 1;\n');
-    var result = p.runSync('pub', ['deps']);
+    var result = p.runSync(['pub', 'deps']);
     expect(result.exitCode, 65);
     expect(result.stdout, isEmpty);
     expect(result.stderr, contains('No pubspec.lock file found'));
@@ -101,7 +101,7 @@
 
   test('failure unknown option', () {
     p = project(mainSrc: 'int get foo => 1;\n');
-    var result = p.runSync('pub', ['deps', '--foo']);
+    var result = p.runSync(['pub', 'deps', '--foo']);
     expect(result.exitCode, 64);
     expect(result.stdout, isEmpty);
     expect(result.stderr, startsWith('Could not find an option named "foo".'));
diff --git a/pkg/dartdev/test/commands/run_test.dart b/pkg/dartdev/test/commands/run_test.dart
index 9d2125c..59bffba 100644
--- a/pkg/dartdev/test/commands/run_test.dart
+++ b/pkg/dartdev/test/commands/run_test.dart
@@ -20,7 +20,7 @@
 
   test('--help', () {
     p = project();
-    var result = p.runSync('run', ['--help']);
+    var result = p.runSync(['run', '--help']);
 
     expect(result.stdout, contains('Run a Dart program.'));
     expect(result.stdout, contains('Debugging options:'));
@@ -30,7 +30,7 @@
 
   test("'Hello World'", () {
     p = project(mainSrc: "void main() { print('Hello World'); }");
-    ProcessResult result = p.runSync('run', [p.relativeFilePath]);
+    ProcessResult result = p.runSync(['run', p.relativeFilePath]);
 
     expect(result.stdout, contains('Hello World'));
     expect(result.stderr, isEmpty);
@@ -40,7 +40,7 @@
   test('no such file', () {
     p = project(mainSrc: "void main() { print('Hello World'); }");
     ProcessResult result =
-        p.runSync('run', ['no/such/file/${p.relativeFilePath}']);
+        p.runSync(['run', 'no/such/file/${p.relativeFilePath}']);
 
     expect(result.stderr, isNotEmpty);
     expect(result.exitCode, isNot(0));
@@ -51,7 +51,7 @@
     // name (package name) will be the name of the temporary directory on disk
     p = project(mainSrc: "void main() { print('Hello World'); }");
     p.file('bin/main.dart', "void main() { print('Hello main.dart'); }");
-    ProcessResult result = p.runSync('run', []);
+    ProcessResult result = p.runSync(['run']);
 
     expect(result.stdout, contains('Hello main.dart'));
     expect(result.stderr, isEmpty);
@@ -62,7 +62,7 @@
   test('missing implicit packageName.dart', () {
     p = project(mainSrc: "void main() { print('Hello World'); }");
     p.file('bin/foo.dart', "void main() { print('Hello main.dart'); }");
-    ProcessResult result = p.runSync('run', []);
+    ProcessResult result = p.runSync(['run']);
 
     expect(result.stdout, isEmpty);
     expect(
@@ -75,7 +75,8 @@
   test('arguments are properly passed', () {
     p = project();
     p.file('main.dart', 'void main(args) { print(args); }');
-    ProcessResult result = p.runSync('run', [
+    ProcessResult result = p.runSync([
+      'run',
       '--enable-experiment=triple-shift',
       'main.dart',
       'argument1',
@@ -111,7 +112,7 @@
 void main(List<String> args) => print("$b $args");
 ''');
 
-      ProcessResult result = p.runSync('run', ['bar:main', '--arg1', 'arg2']);
+      ProcessResult result = p.runSync(['run', 'bar:main', '--arg1', 'arg2']);
 
       expect(result.stderr, isEmpty);
       expect(result.stdout, contains('FOO BAR [--arg1, arg2]'));
@@ -126,7 +127,8 @@
     p.file('main.dart', 'void main(args) { print(args); }');
     // Test with absolute path
     final name = path.join(p.dirPath, 'main.dart');
-    final result = p.runSync('run', [
+    final result = p.runSync([
+      'run',
       '--enable-experiment=triple-shift',
       name,
       '--argument1',
@@ -144,7 +146,8 @@
     p.file('main.dart', 'void main(args) { print(args); }');
     // Test with File uri
     final name = path.join(p.dirPath, 'main.dart');
-    final result = p.runSync('run', [
+    final result = p.runSync([
+      'run',
       Uri.file(name).toString(),
       '--argument1',
       'argument2',
@@ -167,7 +170,8 @@
     //
     // This test ensures that allowed arguments for dart run which are valid VM
     // arguments are properly handled by the VM.
-    ProcessResult result = p.runSync('run', [
+    ProcessResult result = p.runSync([
+      'run',
       '--observe',
       '--pause-isolates-on-start',
       // This should negate the above flag.
@@ -186,7 +190,8 @@
     expect(result.exitCode, 0);
 
     // Again, with --disable-service-auth-codes.
-    result = p.runSync('run', [
+    result = p.runSync([
+      'run',
       '--observe',
       '--pause-isolates-on-start',
       // This should negate the above flag.
@@ -211,7 +216,8 @@
 
     // Any VM flags not listed under 'dart run help --verbose' should be passed
     // before a dartdev command.
-    ProcessResult result = p.runSync('run', [
+    ProcessResult result = p.runSync([
+      'run',
       '--vm-name=foo',
       p.relativeFilePath,
     ]);
@@ -229,7 +235,8 @@
 
     // Any VM flags not listed under 'dart run help --verbose' should be passed
     // before a dartdev command.
-    ProcessResult result = p.runSync('run', [
+    ProcessResult result = p.runSync([
+      'run',
       '--verbose_gc',
       p.relativeFilePath,
     ]);
@@ -247,7 +254,8 @@
 
     // Ensure --enable-asserts doesn't cause the dartdev isolate to fail to
     // load. Regression test for: https://github.com/dart-lang/sdk/issues/42831
-    ProcessResult result = p.runSync('run', [
+    ProcessResult result = p.runSync([
+      'run',
       '--enable-asserts',
       p.relativeFilePath,
     ]);
@@ -261,7 +269,8 @@
     p = project(mainSrc: 'void main() { assert(false); }');
 
     // Any VM flags passed after the script shouldn't be interpreted by the VM.
-    ProcessResult result = p.runSync('run', [
+    ProcessResult result = p.runSync([
+      'run',
       p.relativeFilePath,
       '--enable-asserts',
     ]);
diff --git a/pkg/dartdev/test/commands/test_test.dart b/pkg/dartdev/test/commands/test_test.dart
index ff85982..00be2bc 100644
--- a/pkg/dartdev/test/commands/test_test.dart
+++ b/pkg/dartdev/test/commands/test_test.dart
@@ -21,7 +21,7 @@
   test('--help', () {
     p = project();
 
-    final result = p.runSync('test', ['--help']);
+    final result = p.runSync(['test', '--help']);
 
     expect(result.exitCode, 0);
     expect(result.stdout, contains(' tests in this package'));
@@ -31,7 +31,7 @@
   test('dart help test', () {
     p = project();
 
-    final result = p.runSync('help', ['test']);
+    final result = p.runSync(['help', 'test']);
 
     expect(result.exitCode, 0);
     expect(result.stdout, contains(' tests in this package'));
@@ -43,7 +43,7 @@
     var pubspec = File(path.join(p.dirPath, 'pubspec.yaml'));
     pubspec.deleteSync();
 
-    var result = p.runSync('test', []);
+    var result = p.runSync(['test']);
 
     expect(result.stderr, isEmpty);
     expect(result.stdout, contains('No pubspec.yaml file found'));
@@ -63,7 +63,7 @@
 ''');
 
     // An implicit `pub get` will happen.
-    final result = p.runSync('test', ['--no-color', '--reporter', 'expanded']);
+    final result = p.runSync(['test', '--no-color', '--reporter', 'expanded']);
     expect(result.stderr, isEmpty);
     expect(result.stdout, contains('All tests passed!'));
     expect(result.exitCode, 0);
@@ -86,7 +86,8 @@
 }
 ''');
 
-    final result = p.runSync('test', []);
+    final result = p.runSync(['test']);
+    expect(result.exitCode, 65);
     expect(
       result.stdout,
       contains('You need to add a dependency on package:test'),
@@ -94,10 +95,10 @@
     expect(result.stderr, isEmpty);
     expect(result.exitCode, 65);
 
-    final resultPubAdd = p.runSync('pub', ['add', 'test']);
+    final resultPubAdd = p.runSync(['pub', 'add', 'test']);
 
     expect(resultPubAdd.exitCode, 0);
-    final result2 = p.runSync('test', ['--no-color', '--reporter', 'expanded']);
+    final result2 = p.runSync(['test', '--no-color', '--reporter', 'expanded']);
     expect(result2.stderr, isEmpty);
     expect(result2.stdout, contains('All tests passed!'));
     expect(result2.exitCode, 0);
@@ -117,7 +118,7 @@
 }
 ''');
 
-    final result = p.runSync('test', ['--no-color', '--reporter', 'expanded']);
+    final result = p.runSync(['test', '--no-color', '--reporter', 'expanded']);
     expect(result.exitCode, 0);
     expect(result.stdout, contains('All tests passed!'));
     expect(result.stderr, isEmpty);
@@ -138,8 +139,13 @@
 ''');
 
     final result = p.runSync(
-      '--enable-experiment=non-nullable',
-      ['test', '--no-color', '--reporter', 'expanded'],
+      [
+        '--enable-experiment=non-nullable',
+        'test',
+        '--no-color',
+        '--reporter',
+        'expanded',
+      ],
     );
     expect(result.exitCode, 1);
   });
diff --git a/pkg/dartdev/test/no_such_file_test.dart b/pkg/dartdev/test/no_such_file_test.dart
index 1d197d7..b5a3452 100644
--- a/pkg/dartdev/test/no_such_file_test.dart
+++ b/pkg/dartdev/test/no_such_file_test.dart
@@ -14,12 +14,12 @@
   test('Ensure parsing fails after encountering invalid file', () {
     // Regression test for https://github.com/dart-lang/sdk/issues/43991
     p = project();
-    final noArgsResult = p.runSync('foo.dart', []);
+    final noArgsResult = p.runSync(['foo.dart']);
     expect(noArgsResult.stderr, isNotEmpty);
     expect(noArgsResult.stdout, isEmpty);
     expect(noArgsResult.exitCode, 64);
 
-    final argsResult = p.runSync('foo.dart', ['--bar']);
+    final argsResult = p.runSync(['foo.dart', '--bar']);
     expect(argsResult.stderr, noArgsResult.stderr);
     expect(argsResult.stdout, isEmpty);
     expect(argsResult.exitCode, 64);
@@ -29,7 +29,7 @@
       () {
     // Regression test for https://github.com/dart-lang/sdk/issues/43785
     p = project();
-    final result = p.runSync('--snapshot=abc', ['foo.dart']);
+    final result = p.runSync(['--snapshot=abc', 'foo.dart']);
     expect(result.stderr, isNotEmpty);
     expect(result.stderr, contains("Error when reading 'foo.dart':"));
     expect(result.stdout, isEmpty);
diff --git a/pkg/dartdev/test/utils.dart b/pkg/dartdev/test/utils.dart
index a8de016..48dcfd7 100644
--- a/pkg/dartdev/test/utils.dart
+++ b/pkg/dartdev/test/utils.dart
@@ -75,17 +75,15 @@
   }
 
   ProcessResult runSync(
-    String command,
-    List<String> args, {
+    List<String> arguments, {
     String workingDir,
   }) {
-    var arguments = [
-      command,
-      ...?args,
-    ];
-
-    arguments.add('--disable-dartdev-analytics');
-    return Process.runSync(Platform.resolvedExecutable, arguments,
+    return Process.runSync(
+        Platform.resolvedExecutable,
+        [
+          '--no-analytics',
+          ...arguments,
+        ],
         workingDirectory: workingDir ?? dir.path,
         environment: {if (logAnalytics) '_DARTDEV_LOG_ANALYTICS': 'true'});
   }
diff --git a/pkg/dartdev/test/utils_test.dart b/pkg/dartdev/test/utils_test.dart
index 9740dd1..199d461 100644
--- a/pkg/dartdev/test/utils_test.dart
+++ b/pkg/dartdev/test/utils_test.dart
@@ -100,39 +100,6 @@
       expect(File('bar.bart').name, 'bar.bart');
     });
   });
-
-  group('PubUtils', () {
-    test('doModifyArgs', () {
-      const allCmds = ['analyze', 'help', 'pub', 'migrate'];
-      expect(PubUtils.shouldModifyArgs(null, null), isFalse);
-      expect(PubUtils.shouldModifyArgs([], null), isFalse);
-      expect(PubUtils.shouldModifyArgs(null, []), isFalse);
-      expect(PubUtils.shouldModifyArgs([], []), isFalse);
-      expect(PubUtils.shouldModifyArgs(['-h'], allCmds), isFalse);
-      expect(PubUtils.shouldModifyArgs(['--help'], allCmds), isFalse);
-      expect(PubUtils.shouldModifyArgs(['help'], allCmds), isFalse);
-      expect(PubUtils.shouldModifyArgs(['pub'], allCmds), isFalse);
-      expect(PubUtils.shouldModifyArgs(['analyze', 'help', 'pub'], allCmds),
-          isFalse);
-
-      expect(PubUtils.shouldModifyArgs(['--some-flag', 'help', 'pub'], allCmds),
-          isTrue);
-      expect(PubUtils.shouldModifyArgs(['help', 'pub'], allCmds), isTrue);
-      expect(PubUtils.shouldModifyArgs(['help', 'pub', 'publish'], allCmds),
-          isTrue);
-      expect(PubUtils.shouldModifyArgs(['help', 'pub', 'analyze'], allCmds),
-          isTrue);
-    });
-
-    test('modifyArgs', () {
-      expect(PubUtils.modifyArgs(['--some-flag', 'help', 'pub']),
-          orderedEquals(['--some-flag', 'pub', '--help']));
-      expect(PubUtils.modifyArgs(['help', 'pub']),
-          orderedEquals(['pub', '--help']));
-      expect(PubUtils.modifyArgs(['help', 'pub', 'publish']),
-          orderedEquals(['pub', 'publish', '--help']));
-    });
-  });
 }
 
 const String _packageData = '''{
diff --git a/pkg/front_end/lib/src/base/processed_options.dart b/pkg/front_end/lib/src/base/processed_options.dart
index 925b489..9ab9035 100644
--- a/pkg/front_end/lib/src/base/processed_options.dart
+++ b/pkg/front_end/lib/src/base/processed_options.dart
@@ -674,11 +674,22 @@
     }
 
     Future<Uri> checkInDir(Uri dir) async {
-      Uri candidate = dir.resolve('.dart_tool/package_config.json');
-      if (await fileSystem.entityForUri(candidate).exists()) return candidate;
-      candidate = dir.resolve('.packages');
-      if (await fileSystem.entityForUri(candidate).exists()) return candidate;
-      return null;
+      Uri candidate;
+      try {
+        candidate = dir.resolve('.dart_tool/package_config.json');
+        if (await fileSystem.entityForUri(candidate).exists()) return candidate;
+        candidate = dir.resolve('.packages');
+        if (await fileSystem.entityForUri(candidate).exists()) return candidate;
+        return null;
+      } catch (e) {
+        Message message =
+            templateExceptionReadingFile.withArguments(candidate, '$e');
+        reportWithoutLocation(message, Severity.error);
+        // We throw a new exception to ensure that the message include the uri
+        // that led to the exception. Exceptions in Uri don't include the
+        // offending uri in the exception message.
+        throw new ArgumentError(message.message);
+      }
     }
 
     // Check for $cwd/.packages
diff --git a/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart b/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
index bca4392..1d4af85 100644
--- a/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
@@ -104,7 +104,7 @@
   return component;
 }
 
-void transformLibraries(
+ConstantCoverage transformLibraries(
     List<Library> libraries,
     ConstantsBackend backend,
     Map<String, String> environmentDefines,
@@ -132,6 +132,7 @@
   for (final Library library in libraries) {
     constantsTransformer.convertLibrary(library);
   }
+  return constantsTransformer.constantEvaluator.getConstantCoverage();
 }
 
 void transformProcedure(
@@ -1010,6 +1011,18 @@
     return lower(constant, backend.lowerMapConstant(constant));
   }
 
+  Map<Uri, Set<Reference>> _constructorCoverage = {};
+
+  ConstantCoverage getConstantCoverage() {
+    return new ConstantCoverage(_constructorCoverage);
+  }
+
+  void _recordConstructorCoverage(Constructor constructor, TreeNode caller) {
+    Uri currentUri = getFileUri(caller);
+    Set<Reference> uriCoverage = _constructorCoverage[currentUri] ??= {};
+    uriCoverage.add(constructor.reference);
+  }
+
   /// Evaluate [node] and possibly cache the evaluation result.
   ///
   /// Returns [_AbortDueToErrorConstant] or
@@ -1344,13 +1357,13 @@
       if (shouldBeUnevaluated) {
         enterLazy();
         AbortConstant error = handleConstructorInvocation(
-            constructor, typeArguments, positionals, named);
+            constructor, typeArguments, positionals, named, node);
         if (error != null) return error;
         leaveLazy();
         return unevaluated(node, instanceBuilder.buildUnevaluatedInstance());
       }
       AbortConstant error = handleConstructorInvocation(
-          constructor, typeArguments, positionals, named);
+          constructor, typeArguments, positionals, named, node);
       if (error != null) return error;
       if (shouldBeUnevaluated) {
         return unevaluated(node, instanceBuilder.buildUnevaluatedInstance());
@@ -1547,11 +1560,15 @@
       Constructor constructor,
       List<DartType> typeArguments,
       List<Constant> positionalArguments,
-      Map<String, Constant> namedArguments) {
+      Map<String, Constant> namedArguments,
+      TreeNode caller) {
     return withNewEnvironment(() {
       final Class klass = constructor.enclosingClass;
       final FunctionNode function = constructor.function;
 
+      // Mark in file of the caller that we evaluate this specific constructor.
+      _recordConstructorCoverage(constructor, caller);
+
       // We simulate now the constructor invocation.
 
       // Step 1) Map type arguments and normal arguments from caller to
@@ -1626,8 +1643,8 @@
           }
           assert(_gotError == null);
           assert(namedArguments != null);
-          error = handleConstructorInvocation(
-              init.target, types, positionalArguments, namedArguments);
+          error = handleConstructorInvocation(init.target, types,
+              positionalArguments, namedArguments, constructor);
           if (error != null) return error;
         } else if (init is RedirectingInitializer) {
           // Since a redirecting constructor targets a constructor of the same
@@ -1654,8 +1671,8 @@
           assert(_gotError == null);
           assert(namedArguments != null);
 
-          error = handleConstructorInvocation(
-              init.target, typeArguments, positionalArguments, namedArguments);
+          error = handleConstructorInvocation(init.target, typeArguments,
+              positionalArguments, namedArguments, constructor);
           if (error != null) return error;
         } else if (init is AssertInitializer) {
           AbortConstant error = checkAssert(init.statement);
@@ -2824,6 +2841,12 @@
   }
 }
 
+class ConstantCoverage {
+  final Map<Uri, Set<Reference>> constructorCoverage;
+
+  ConstantCoverage(this.constructorCoverage);
+}
+
 /// Holds the necessary information for a constant object, namely
 ///   * the [klass] being instantiated
 ///   * the [typeArguments] used for the instantiation
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
index 56a9123..ad8d0b8 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
@@ -105,7 +105,11 @@
 import '../target_implementation.dart' show TargetImplementation;
 import '../uri_translator.dart' show UriTranslator;
 import 'constant_evaluator.dart' as constants
-    show EvaluationMode, transformLibraries, transformProcedure;
+    show
+        EvaluationMode,
+        transformLibraries,
+        transformProcedure,
+        ConstantCoverage;
 import 'kernel_constants.dart' show KernelConstantErrorReporter;
 import 'metadata_collector.dart' show MetadataCollector;
 import 'verifier.dart' show verifyComponent, verifyGetStaticType;
@@ -126,6 +130,10 @@
 
   Component component;
 
+  /// Temporary field meant for testing only. Follow-up CLs should get rid of
+  /// this and integrate coverage properly.
+  constants.ConstantCoverage constantCoverageForTesting;
+
   // 'dynamic' is always nullable.
   // TODO(johnniwinther): Why isn't this using a FixedTypeBuilder?
   final TypeBuilder dynamicType = new NamedTypeBuilder(
@@ -1231,7 +1239,7 @@
         new TypeEnvironment(loader.coreTypes, loader.hierarchy);
     constants.EvaluationMode evaluationMode = _getConstantEvaluationMode();
 
-    constants.transformLibraries(
+    constants.ConstantCoverage coverage = constants.transformLibraries(
         loader.libraries,
         backendTarget.constantsBackend(loader.coreTypes),
         environmentDefines,
@@ -1244,6 +1252,7 @@
             isExperimentEnabledGlobally(ExperimentalFlag.tripleShift),
         errorOnUnevaluatedConstant: errorOnUnevaluatedConstant);
     ticker.logMs("Evaluated constants");
+    constantCoverageForTesting = coverage;
 
     if (loader.target.context.options
         .isExperimentEnabledGlobally(ExperimentalFlag.valueClass)) {
diff --git a/pkg/front_end/lib/src/fasta/source/source_loader.dart b/pkg/front_end/lib/src/fasta/source/source_loader.dart
index 16123b0..8ab70e9 100644
--- a/pkg/front_end/lib/src/fasta/source/source_loader.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_loader.dart
@@ -1547,8 +1547,6 @@
 
 void _asyncStarMoveNextHelper(var stream) {}
 
-_asyncStackTraceHelper(async_op) {}
-
 _asyncThenWrapperHelper(continuation) {}
 
 _awaitHelper(object, thenCallback, errorCallback, awaiter) {}
diff --git a/pkg/front_end/test/constant_evaluator_benchmark.dart b/pkg/front_end/test/constant_evaluator_benchmark.dart
new file mode 100644
index 0000000..c152aa2
--- /dev/null
+++ b/pkg/front_end/test/constant_evaluator_benchmark.dart
@@ -0,0 +1,305 @@
+// Copyright (c) 2020, 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 'dart:io' show File;
+import 'dart:typed_data' show Uint8List;
+
+import 'package:_fe_analyzer_shared/src/messages/codes.dart';
+import 'package:compiler/src/kernel/dart2js_target.dart' show Dart2jsTarget;
+
+import 'package:dev_compiler/src/kernel/target.dart' show DevCompilerTarget;
+
+import 'package:front_end/src/api_prototype/compiler_options.dart'
+    show CompilerOptions, DiagnosticMessage;
+
+import 'package:front_end/src/api_prototype/experimental_flags.dart'
+    show ExperimentalFlag;
+
+import 'package:front_end/src/base/processed_options.dart'
+    show ProcessedOptions;
+
+import 'package:front_end/src/fasta/compiler_context.dart' show CompilerContext;
+
+import 'package:front_end/src/fasta/incremental_compiler.dart'
+    show IncrementalCompiler;
+import 'package:front_end/src/fasta/kernel/constant_evaluator.dart' as constants
+    show EvaluationMode, transformLibraries, ErrorReporter;
+import 'package:front_end/src/fasta/kernel/kernel_api.dart';
+
+import 'package:front_end/src/fasta/kernel/kernel_target.dart';
+import 'package:kernel/ast.dart';
+import 'package:kernel/binary/ast_from_binary.dart';
+import 'package:kernel/core_types.dart';
+import 'package:kernel/target/changed_structure_notifier.dart';
+
+import 'package:kernel/target/targets.dart'
+    show ConstantsBackend, DiagnosticReporter, Target, TargetFlags;
+import 'package:kernel/type_environment.dart';
+
+import "package:vm/target/flutter.dart" show FlutterTarget;
+
+import "package:vm/target/vm.dart" show VmTarget;
+
+import 'incremental_load_from_dill_suite.dart' show getOptions;
+
+import 'package:front_end/src/fasta/kernel/utils.dart' show serializeComponent;
+
+bool tryWithNoEnvironment;
+bool verbose = false;
+bool skipNonNullEnvironment = false;
+bool skipNullEnvironment = false;
+
+void benchmark(Component component, List<Library> libraries) {
+  if (tryWithNoEnvironment == null) throw "tryWithNoEnvironment not set";
+  KernelTarget target = incrementalCompiler.userCode;
+  constants.EvaluationMode evaluationMode =
+      target.getConstantEvaluationModeForTesting();
+
+  Uint8List serializedComponent = serializeComponent(component);
+
+  for (int k = 0; k < 3; k++) {
+    Map<String, String> environmentDefines = null;
+    String environmentDefinesDescription = "null environment";
+
+    for (int j = 0; j < 2; j++) {
+      Stopwatch stopwatch = new Stopwatch()..start();
+      int iterations = 0;
+      int sum = 0;
+      for (int i = 0; i < 5; i++) {
+        if (!tryWithNoEnvironment && environmentDefines == null) continue;
+        if (skipNullEnvironment && environmentDefines == null) continue;
+        if (skipNonNullEnvironment && environmentDefines != null) continue;
+        stopwatch.reset();
+        Component component = new Component();
+        BinaryBuilder binaryBuilder = new BinaryBuilder(serializedComponent,
+            disableLazyClassReading: true, disableLazyReading: true);
+        binaryBuilder.readComponent(component);
+        if (verbose) {
+          print("Loaded component in ${stopwatch.elapsedMilliseconds} ms");
+        }
+
+        stopwatch.reset();
+        CoreTypes coreTypes = new CoreTypes(component);
+        ConstantsBackend constantsBackend =
+            target.backendTarget.constantsBackend(coreTypes);
+        ClassHierarchy hierarchy = new ClassHierarchy(component, coreTypes);
+        TypeEnvironment environment = new TypeEnvironment(coreTypes, hierarchy);
+        if (verbose) {
+          print("Created core types and class hierarchy"
+              " in ${stopwatch.elapsedMilliseconds} ms");
+        }
+
+        stopwatch.reset();
+        constants.transformLibraries(
+            component.libraries,
+            constantsBackend,
+            environmentDefines,
+            environment,
+            new SilentErrorReporter(),
+            evaluationMode,
+            evaluateAnnotations: true,
+            desugarSets: !target.backendTarget.supportsSetLiterals,
+            enableTripleShift: target
+                .isExperimentEnabledGlobally(ExperimentalFlag.tripleShift),
+            errorOnUnevaluatedConstant:
+                incrementalCompiler.context.options.errorOnUnevaluatedConstant);
+        print("Transformed constants with $environmentDefinesDescription"
+            " in ${stopwatch.elapsedMilliseconds} ms");
+        sum += stopwatch.elapsedMilliseconds;
+        iterations++;
+      }
+      if (verbose) {
+        print("With $environmentDefinesDescription: "
+            "Did constant evaluation $iterations iterations in $sum ms,"
+            " i.e. an average of ${sum / iterations} ms per iteration.");
+      }
+      environmentDefines = {};
+      environmentDefinesDescription = "empty environment";
+    }
+  }
+}
+
+class SilentErrorReporter implements constants.ErrorReporter {
+  @override
+  void report(LocatedMessage message, List<LocatedMessage> context) {
+    // ignore
+  }
+
+  @override
+  void reportInvalidExpression(InvalidExpression node) {
+    // ignore
+  }
+}
+
+IncrementalCompiler incrementalCompiler;
+
+main(List<String> arguments) async {
+  Uri platformUri;
+  Uri mainUri;
+  bool nnbd = false;
+  String targetString = "VM";
+
+  String filename;
+  for (String arg in arguments) {
+    if (arg.startsWith("--")) {
+      if (arg == "--nnbd") {
+        nnbd = true;
+      } else if (arg.startsWith("--platform=")) {
+        String platform = arg.substring("--platform=".length);
+        platformUri = Uri.base.resolve(platform);
+      } else if (arg == "--target=VM") {
+        targetString = "VM";
+      } else if (arg == "--target=flutter") {
+        targetString = "flutter";
+      } else if (arg == "--target=ddc") {
+        targetString = "ddc";
+      } else if (arg == "--target=dart2js") {
+        targetString = "dart2js";
+      } else if (arg == "-v") {
+        verbose = true;
+      } else if (arg == "--skip-null-environment") {
+        skipNullEnvironment = true;
+      } else if (arg == "--skip-non-null-environment") {
+        skipNonNullEnvironment = true;
+      } else {
+        throw "Unknown option $arg";
+      }
+    } else if (filename != null) {
+      throw "Already got '$filename', '$arg' is also a filename; "
+          "can only get one";
+    } else {
+      filename = arg;
+    }
+  }
+
+  if (platformUri == null) {
+    throw "No platform given. Use --platform=/path/to/platform.dill";
+  }
+  if (!new File.fromUri(platformUri).existsSync()) {
+    throw "The platform file '$platformUri' doesn't exist";
+  }
+  if (filename == null) {
+    throw "Need file to operate on";
+  }
+  File file = new File(filename);
+  if (!file.existsSync()) throw "File $filename doesn't exist.";
+  mainUri = file.absolute.uri;
+
+  incrementalCompiler = new IncrementalCompiler(
+      setupCompilerContext(nnbd, targetString, false, platformUri, mainUri));
+  await incrementalCompiler.computeDelta();
+}
+
+CompilerContext setupCompilerContext(bool nnbd, String targetString,
+    bool widgetTransformation, Uri platformUri, Uri mainUri) {
+  CompilerOptions options = getOptions();
+
+  if (nnbd) {
+    options.explicitExperimentalFlags = {ExperimentalFlag.nonNullable: true};
+  }
+
+  TargetFlags targetFlags = new TargetFlags(
+      enableNullSafety: nnbd, trackWidgetCreation: widgetTransformation);
+  Target target;
+  switch (targetString) {
+    case "VM":
+      target = new HookInVmTarget(targetFlags);
+      tryWithNoEnvironment = false;
+      break;
+    case "flutter":
+      target = new HookInFlutterTarget(targetFlags);
+      tryWithNoEnvironment = false;
+      break;
+    case "ddc":
+      target = new HookInDevCompilerTarget(targetFlags);
+      tryWithNoEnvironment = false;
+      break;
+    case "dart2js":
+      target = new HookInDart2jsTarget("dart2js", targetFlags);
+      tryWithNoEnvironment = true;
+      break;
+    default:
+      throw "Unknown target '$targetString'";
+  }
+  options.target = target;
+  options.sdkRoot = null;
+  options.sdkSummary = platformUri;
+  options.omitPlatform = false;
+  options.onDiagnostic = (DiagnosticMessage message) {
+    // don't care.
+  };
+
+  ProcessedOptions processedOptions =
+      new ProcessedOptions(options: options, inputs: [mainUri]);
+  CompilerContext compilerContext = new CompilerContext(processedOptions);
+  return compilerContext;
+}
+
+class HookInVmTarget extends VmTarget {
+  HookInVmTarget(TargetFlags flags) : super(flags);
+
+  void performPreConstantEvaluationTransformations(
+      Component component,
+      CoreTypes coreTypes,
+      List<Library> libraries,
+      DiagnosticReporter diagnosticReporter,
+      {void logger(String msg),
+      ChangedStructureNotifier changedStructureNotifier}) {
+    super.performPreConstantEvaluationTransformations(
+        component, coreTypes, libraries, diagnosticReporter,
+        logger: logger, changedStructureNotifier: changedStructureNotifier);
+    benchmark(component, libraries);
+  }
+}
+
+class HookInDart2jsTarget extends Dart2jsTarget {
+  HookInDart2jsTarget(String name, TargetFlags flags) : super(name, flags);
+
+  void performPreConstantEvaluationTransformations(
+      Component component,
+      CoreTypes coreTypes,
+      List<Library> libraries,
+      DiagnosticReporter diagnosticReporter,
+      {void logger(String msg),
+      ChangedStructureNotifier changedStructureNotifier}) {
+    super.performPreConstantEvaluationTransformations(
+        component, coreTypes, libraries, diagnosticReporter,
+        logger: logger, changedStructureNotifier: changedStructureNotifier);
+    benchmark(component, libraries);
+  }
+}
+
+class HookInDevCompilerTarget extends DevCompilerTarget {
+  HookInDevCompilerTarget(TargetFlags flags) : super(flags);
+
+  void performPreConstantEvaluationTransformations(
+      Component component,
+      CoreTypes coreTypes,
+      List<Library> libraries,
+      DiagnosticReporter diagnosticReporter,
+      {void logger(String msg),
+      ChangedStructureNotifier changedStructureNotifier}) {
+    super.performPreConstantEvaluationTransformations(
+        component, coreTypes, libraries, diagnosticReporter,
+        logger: logger, changedStructureNotifier: changedStructureNotifier);
+    benchmark(component, libraries);
+  }
+}
+
+class HookInFlutterTarget extends FlutterTarget {
+  HookInFlutterTarget(TargetFlags flags) : super(flags);
+
+  void performPreConstantEvaluationTransformations(
+      Component component,
+      CoreTypes coreTypes,
+      List<Library> libraries,
+      DiagnosticReporter diagnosticReporter,
+      {void logger(String msg),
+      ChangedStructureNotifier changedStructureNotifier}) {
+    super.performPreConstantEvaluationTransformations(
+        component, coreTypes, libraries, diagnosticReporter,
+        logger: logger, changedStructureNotifier: changedStructureNotifier);
+    benchmark(component, libraries);
+  }
+}
diff --git a/pkg/front_end/test/fasta/testing/suite.dart b/pkg/front_end/test/fasta/testing/suite.dart
index 3788cba..6953580 100644
--- a/pkg/front_end/test/fasta/testing/suite.dart
+++ b/pkg/front_end/test/fasta/testing/suite.dart
@@ -1115,16 +1115,16 @@
             await instrumentation.fixSource(description.uri, false);
           } else {
             return new Result<ComponentResult>(
-                new ComponentResult(
-                    description, p, userLibraries, options, sourceTarget),
+                new ComponentResult(description, p, userLibraries, options,
+                    sourceTarget, sourceTarget.constantCoverageForTesting),
                 context.expectationSet["InstrumentationMismatch"],
                 instrumentation.problemsAsString,
                 autoFixCommand: '${UPDATE_COMMENTS}=true');
           }
         }
       }
-      return pass(new ComponentResult(
-          description, p, userLibraries, options, sourceTarget));
+      return pass(new ComponentResult(description, p, userLibraries, options,
+          sourceTarget, sourceTarget.constantCoverageForTesting));
     });
   }
 
diff --git a/pkg/front_end/test/flutter_gallery_leak_tester.dart b/pkg/front_end/test/flutter_gallery_leak_tester.dart
index 033b59a..f8f32f4 100644
--- a/pkg/front_end/test/flutter_gallery_leak_tester.dart
+++ b/pkg/front_end/test/flutter_gallery_leak_tester.dart
@@ -179,7 +179,6 @@
     "--incremental",
     "--target=flutter",
     "--debugger-module-names",
-    "-Ddart.developer.causal_async_stacks=true",
     "--output-dill",
     "$rootPath/flutter_server_tmp.dill",
     "--packages",
diff --git a/pkg/front_end/test/spell_checking_list_code.txt b/pkg/front_end/test/spell_checking_list_code.txt
index e504875..71006e6 100644
--- a/pkg/front_end/test/spell_checking_list_code.txt
+++ b/pkg/front_end/test/spell_checking_list_code.txt
@@ -245,6 +245,7 @@
 cosmetic
 counters
 covariances
+coverage
 cr
 creator
 criterion
@@ -547,6 +548,7 @@
 inst
 instanceof
 instantiator
+integrate
 intentionally
 interim
 interior
diff --git a/pkg/front_end/test/spell_checking_list_tests.txt b/pkg/front_end/test/spell_checking_list_tests.txt
index d4f79ca..d9ac336 100644
--- a/pkg/front_end/test/spell_checking_list_tests.txt
+++ b/pkg/front_end/test/spell_checking_list_tests.txt
@@ -322,6 +322,7 @@
 hits
 home
 hoo
+hook
 hosted
 hosting
 hot
diff --git a/pkg/front_end/test/utils/kernel_chain.dart b/pkg/front_end/test/utils/kernel_chain.dart
index 81b5e42..f5f4ba8 100644
--- a/pkg/front_end/test/utils/kernel_chain.dart
+++ b/pkg/front_end/test/utils/kernel_chain.dart
@@ -23,6 +23,8 @@
 import 'package:front_end/src/fasta/compiler_context.dart' show CompilerContext;
 
 import 'package:front_end/src/fasta/fasta_codes.dart' show templateUnspecified;
+import 'package:front_end/src/fasta/kernel/constant_evaluator.dart'
+    show ConstantCoverage;
 
 import 'package:front_end/src/fasta/kernel/kernel_target.dart'
     show KernelTarget;
@@ -293,6 +295,24 @@
         buffer.writeln(extraConstantString);
       }
     }
+    // TODO(jensj): Don't comment this out. Will be done in a follow-up-CL.
+    // if (result.constantCoverage != null) {
+    //   ConstantCoverage constantCoverage = result.constantCoverage;
+    //   if (constantCoverage.constructorCoverage.isNotEmpty) {
+    //     buffer.writeln("");
+    //     buffer.writeln("");
+    //     buffer.writeln("Constructor coverage from constants:");
+    //     for (MapEntry<Uri, Set<Reference>> entry
+    //         in constantCoverage.constructorCoverage.entries) {
+    //       buffer.writeln("${entry.key}:");
+    //       for (Reference reference in entry.value) {
+    //         buffer.writeln(
+    //             "- ${reference.node} (from ${reference.node.location})");
+    //       }
+    //       buffer.writeln("");
+    //     }
+    //   }
+    // }
 
     String actual = "$buffer";
     String binariesPath =
@@ -393,8 +413,14 @@
     Uri uri = tmp.uri.resolve("generated.dill");
     File generated = new File.fromUri(uri);
     IOSink sink = generated.openWrite();
-    result = new ComponentResult(result.description, result.component,
-        result.userLibraries, result.options, result.sourceTarget, uri);
+    result = new ComponentResult(
+        result.description,
+        result.component,
+        result.userLibraries,
+        result.options,
+        result.sourceTarget,
+        result.constantCoverage,
+        uri);
     try {
       new BinaryPrinter(sink).writeComponentFile(component);
     } catch (e, s) {
@@ -493,9 +519,10 @@
   final ProcessedOptions options;
   final KernelTarget sourceTarget;
   final List<String> extraConstantStrings = [];
+  final ConstantCoverage constantCoverage;
 
   ComponentResult(this.description, this.component, this.userLibraries,
-      this.options, this.sourceTarget,
+      this.options, this.sourceTarget, this.constantCoverage,
       [this.outputUri]);
 
   bool isUserLibrary(Library library) {
diff --git a/pkg/front_end/testcases/extensions/async_extensions.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/async_extensions.dart.strong.transformed.expect
index 36fe6ad..2fab1ff 100644
--- a/pkg/front_end/testcases/extensions/async_extensions.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/async_extensions.dart.strong.transformed.expect
@@ -29,7 +29,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -44,7 +43,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -56,7 +54,6 @@
 static method Extension|asyncStarMethod(final core::int* #this) → dynamic /* originally async* */ {
   asy::_AsyncStarStreamController<dynamic>* :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -74,7 +71,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<dynamic>(:async_op);
diff --git a/pkg/front_end/testcases/extensions/deferred_explicit_access.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/deferred_explicit_access.dart.strong.transformed.expect
index 580ca3c..cacce17 100644
--- a/pkg/front_end/testcases/extensions/deferred_explicit_access.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/deferred_explicit_access.dart.strong.transformed.expect
@@ -18,7 +18,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -45,7 +44,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -102,4 +100,4 @@
 Evaluated: VariableGet @ org-dartlang-testcase:///deferred_explicit_access.dart:12:31 -> IntConstant(0)
 Evaluated: VariableGet @ org-dartlang-testcase:///deferred_explicit_access.dart:12:45 -> IntConstant(42)
 Evaluated: VariableGet @ org-dartlang-testcase:///deferred_explicit_access.dart:12:45 -> IntConstant(42)
-Extra constant evaluation: evaluated: 96, effectively constant: 3
+Extra constant evaluation: evaluated: 93, effectively constant: 3
diff --git a/pkg/front_end/testcases/extensions/deferred_import_hidden.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/deferred_import_hidden.dart.strong.transformed.expect
index 187e9da..c43e5ff 100644
--- a/pkg/front_end/testcases/extensions/deferred_import_hidden.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/deferred_import_hidden.dart.strong.transformed.expect
@@ -10,7 +10,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -36,7 +35,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general/async_function.dart.strong.transformed.expect b/pkg/front_end/testcases/general/async_function.dart.strong.transformed.expect
index 3382485..33ab33f 100644
--- a/pkg/front_end/testcases/general/async_function.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/async_function.dart.strong.transformed.expect
@@ -11,7 +11,6 @@
   final asy::_Future<core::String*>* :async_future = new asy::_Future::•<core::String*>();
   core::bool* :is_sync = false;
   FutureOr<core::String*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -29,7 +28,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -40,7 +38,6 @@
   final asy::_Future<core::String*>* :async_future = new asy::_Future::•<core::String*>();
   core::bool* :is_sync = false;
   FutureOr<core::String*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -58,7 +55,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -110,7 +106,6 @@
 static method asyncStarString() → asy::Stream<core::String*>* /* originally async* */ {
   asy::_AsyncStarStreamController<core::String*>* :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -144,7 +139,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<core::String*>(:async_op);
@@ -154,7 +148,6 @@
 static method asyncStarString2() → asy::Stream<core::String*>* /* originally async* */ {
   asy::_AsyncStarStreamController<core::String*>* :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -179,7 +172,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<core::String*>(:async_op);
@@ -190,7 +182,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -209,7 +200,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general/async_nested.dart.strong.transformed.expect b/pkg/front_end/testcases/general/async_nested.dart.strong.transformed.expect
index 772b468..78818d9 100644
--- a/pkg/front_end/testcases/general/async_nested.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/async_nested.dart.strong.transformed.expect
@@ -31,7 +31,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -69,7 +68,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general/await.dart.strong.transformed.expect b/pkg/front_end/testcases/general/await.dart.strong.transformed.expect
index 9bac1f2..04a6af0 100644
--- a/pkg/front_end/testcases/general/await.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/await.dart.strong.transformed.expect
@@ -8,7 +8,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -27,7 +26,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general/await_complex.dart.strong.transformed.expect b/pkg/front_end/testcases/general/await_complex.dart.strong.transformed.expect
index d6a8b95..8b69c50 100644
--- a/pkg/front_end/testcases/general/await_complex.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/await_complex.dart.strong.transformed.expect
@@ -60,7 +60,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -107,7 +106,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -118,7 +116,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -160,7 +157,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -171,7 +167,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -214,7 +209,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -225,7 +219,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -268,7 +261,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -279,7 +271,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -342,7 +333,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -353,7 +343,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -417,7 +406,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -428,7 +416,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -562,7 +549,6 @@
                 final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
                 core::bool* :is_sync = false;
                 FutureOr<dynamic>* :return_value;
-                dynamic :async_stack_trace;
                 (dynamic) →* dynamic :async_op_then;
                 (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
                 core::int* :await_jump_var = 0;
@@ -582,7 +568,6 @@
                   on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
                     asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
                   }
-                :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
                 :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
                 :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
                 :async_op.call();
@@ -594,7 +579,6 @@
                 final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
                 core::bool* :is_sync = false;
                 FutureOr<dynamic>* :return_value;
-                dynamic :async_stack_trace;
                 (dynamic) →* dynamic :async_op_then;
                 (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
                 core::int* :await_jump_var = 0;
@@ -612,7 +596,6 @@
                   on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
                     asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
                   }
-                :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
                 :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
                 :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
                 :async_op.call();
@@ -623,7 +606,6 @@
               function testStream1() → asy::Stream<core::int*>* /* originally async* */ {
                 asy::_AsyncStarStreamController<core::int*>* :controller;
                 dynamic :controller_stream;
-                dynamic :async_stack_trace;
                 (dynamic) →* dynamic :async_op_then;
                 (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
                 core::int* :await_jump_var = 0;
@@ -649,7 +631,6 @@
                   finally {
                     :controller.{asy::_AsyncStarStreamController::close}();
                   }
-                :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
                 :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
                 :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
                 :controller = new asy::_AsyncStarStreamController::•<core::int*>(:async_op);
@@ -662,7 +643,6 @@
               function testStream2() → asy::Stream<core::int*>* /* originally async* */ {
                 asy::_AsyncStarStreamController<core::int*>* :controller;
                 dynamic :controller_stream;
-                dynamic :async_stack_trace;
                 (dynamic) →* dynamic :async_op_then;
                 (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
                 core::int* :await_jump_var = 0;
@@ -688,7 +668,6 @@
                   finally {
                     :controller.{asy::_AsyncStarStreamController::close}();
                   }
-                :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
                 :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
                 :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
                 :controller = new asy::_AsyncStarStreamController::•<core::int*>(:async_op);
@@ -708,7 +687,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -719,7 +697,6 @@
   final asy::_Future<self::future::T*>* :async_future = new asy::_Future::•<self::future::T*>();
   core::bool* :is_sync = false;
   FutureOr<self::future::T*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -737,7 +714,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -749,7 +725,6 @@
 static method intStream() → asy::Stream<core::int*>* /* originally async* */ {
   asy::_AsyncStarStreamController<core::int*>* :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -774,7 +749,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<core::int*>(:async_op);
@@ -785,7 +759,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -818,7 +791,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general/await_in_cascade.dart.strong.transformed.expect b/pkg/front_end/testcases/general/await_in_cascade.dart.strong.transformed.expect
index fe03b1d..e178bdf 100644
--- a/pkg/front_end/testcases/general/await_in_cascade.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/await_in_cascade.dart.strong.transformed.expect
@@ -14,7 +14,6 @@
     final asy::_Future<core::List<core::int*>*>* :async_future = new asy::_Future::•<core::List<core::int*>*>();
     core::bool* :is_sync = false;
     FutureOr<core::List<core::int*>*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -36,7 +35,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -47,7 +45,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -65,7 +62,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -87,7 +83,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -106,7 +101,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general/bug33196.dart.strong.transformed.expect b/pkg/front_end/testcases/general/bug33196.dart.strong.transformed.expect
index fe416ab..ea1347a 100644
--- a/pkg/front_end/testcases/general/bug33196.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/bug33196.dart.strong.transformed.expect
@@ -13,7 +13,6 @@
   final asy::_Future<core::String*>* :async_future = new asy::_Future::•<core::String*>();
   core::bool* :is_sync = false;
   FutureOr<core::String*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -31,7 +30,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general/bug33206.dart.strong.transformed.expect b/pkg/front_end/testcases/general/bug33206.dart.strong.transformed.expect
index 389811c..b800d2a 100644
--- a/pkg/front_end/testcases/general/bug33206.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/bug33206.dart.strong.transformed.expect
@@ -44,7 +44,6 @@
   final asy::_Future<core::List<core::Object*>*>* :async_future = new asy::_Future::•<core::List<core::Object*>*>();
   core::bool* :is_sync = false;
   FutureOr<core::List<core::Object*>*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -62,7 +61,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -75,7 +73,6 @@
   final asy::_Future<core::Object*>* :async_future = new asy::_Future::•<core::Object*>();
   core::bool* :is_sync = false;
   FutureOr<core::Object*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -93,7 +90,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -104,7 +100,6 @@
   final asy::_Future<self::X*>* :async_future = new asy::_Future::•<self::X*>();
   core::bool* :is_sync = false;
   FutureOr<self::X*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -131,7 +126,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -142,7 +136,6 @@
   final asy::_Future<void>* :async_future = new asy::_Future::•<void>();
   core::bool* :is_sync = false;
   FutureOr<void>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -161,7 +154,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general/check_deferred_before_args2.dart.strong.transformed.expect b/pkg/front_end/testcases/general/check_deferred_before_args2.dart.strong.transformed.expect
index ad4521b..fd3b4a6 100644
--- a/pkg/front_end/testcases/general/check_deferred_before_args2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/check_deferred_before_args2.dart.strong.transformed.expect
@@ -11,7 +11,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -31,7 +30,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart
new file mode 100644
index 0000000..952eff9
--- /dev/null
+++ b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart
@@ -0,0 +1,27 @@
+// Copyright (c) 2020, 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 "const_constructor_coverage_lib1.dart";
+import "const_constructor_coverage_lib2.dart";
+
+const Foo foo1 = const Foo();
+const Foo foo2 = const Foo.named1();
+const Foo foo3 = const Foo.named2();
+const Foo foo4 = const Foo.named3();
+
+main() {
+  print(foo1);
+}
+
+// This file in itself should mark the following as const-constructor-covered:
+// * "Foo", "Foo.named1", "Foo.named2" and "Foo.named3" from constant-evaluating
+//   the const fields.
+
+// Notice, that combined these 3 files should have coverage for:
+// * "Foo", "Foo.named1", "Foo.named2", "Foo.named3",
+// * "Bar", "Bar.named1", "Bar.named2", "Bar.named3",
+// * "Baz", "Baz.named1", "Baz.named4", "Baz.named5", "Baz.named6"
+// but NOT have any coverage for
+// * "Bar.named4",
+// * "Baz.named2" and "Baz.named3".
\ No newline at end of file
diff --git a/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.outline.expect b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.outline.expect
new file mode 100644
index 0000000..ea2f79f
--- /dev/null
+++ b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.outline.expect
@@ -0,0 +1,143 @@
+library;
+import self as self;
+import "const_constructor_coverage_lib1.dart" as con;
+
+import "org-dartlang-testcase:///const_constructor_coverage_lib1.dart";
+import "org-dartlang-testcase:///const_constructor_coverage_lib2.dart";
+
+static const field con::Foo* foo1 = const con::Foo::•();
+static const field con::Foo* foo2 = const con::Foo::named1();
+static const field con::Foo* foo3 = const con::Foo::named2();
+static const field con::Foo* foo4 = const con::Foo::named3();
+static method main() → dynamic
+  ;
+
+library;
+import self as con;
+import "dart:core" as core;
+import "const_constructor_coverage_lib2.dart" as con2;
+
+import "org-dartlang-testcase:///const_constructor_coverage_lib2.dart";
+
+class Foo extends core::Object /*hasConstConstructor*/  {
+  final field con::Bar* bar;
+  const constructor •() → con::Foo*
+    : con::Foo::bar = const con::Bar::•(), super core::Object::•()
+    ;
+  const constructor named1() → con::Foo*
+    : con::Foo::bar = const con::Bar::named1(), super core::Object::•()
+    ;
+  const constructor named2() → con::Foo*
+    : con::Foo::bar = const con::Bar::named1(), super core::Object::•()
+    ;
+  const constructor named3() → con::Foo*
+    : con::Foo::bar = const con::Bar::named1(), super core::Object::•()
+    ;
+  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
+  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
+  abstract member-signature method toString() → core::String*; -> core::Object::toString
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
+  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+}
+class Bar extends core::Object /*hasConstConstructor*/  {
+  final field con2::Baz* baz;
+  const constructor •() → con::Bar*
+    : con::Bar::baz = const con2::Baz::•(), super core::Object::•()
+    ;
+  const constructor named1() → con::Bar*
+    : con::Bar::baz = const con2::Baz::named1(), super core::Object::•()
+    ;
+  const constructor named2() → con::Bar*
+    : con::Bar::baz = const con2::Baz::named1(), super core::Object::•()
+    ;
+  const constructor named3() → con::Bar*
+    : con::Bar::baz = const con2::Baz::named1(), super core::Object::•()
+    ;
+  const constructor named4(core::int* i) → con::Bar*
+    : con::Bar::baz = i.{core::num::>}(0) ?{con2::Baz*} const con2::Baz::named5() : const con2::Baz::named6(), super core::Object::•()
+    ;
+  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
+  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
+  abstract member-signature method toString() → core::String*; -> core::Object::toString
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
+  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+}
+static const field con::Foo* foo = const con::Foo::named3();
+
+library;
+import self as con2;
+import "dart:core" as core;
+import "const_constructor_coverage_lib1.dart" as con;
+
+import "org-dartlang-testcase:///const_constructor_coverage_lib1.dart";
+
+class Baz extends core::Object /*hasConstConstructor*/  {
+  final field con::Bar* bar;
+  const constructor •() → con2::Baz*
+    : con2::Baz::bar = null, super core::Object::•()
+    ;
+  const constructor named1() → con2::Baz*
+    : con2::Baz::bar = null, super core::Object::•()
+    ;
+  const constructor named2() → con2::Baz*
+    : con2::Baz::bar = null, super core::Object::•()
+    ;
+  const constructor named3() → con2::Baz*
+    : con2::Baz::bar = const con::Bar::named3(), super core::Object::•()
+    ;
+  const constructor named4() → con2::Baz*
+    : con2::Baz::bar = null, super core::Object::•()
+    ;
+  const constructor named5() → con2::Baz*
+    : con2::Baz::bar = null, super core::Object::•()
+    ;
+  const constructor named6() → con2::Baz*
+    : con2::Baz::bar = null, super core::Object::•()
+    ;
+  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
+  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
+  abstract member-signature method toString() → core::String*; -> core::Object::toString
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
+  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+}
+static const field con2::Baz* baz = const con2::Baz::named4();
+static const field con::Foo* foo = const con::Foo::named2();
+static const field con::Bar* bar = const con::Bar::named2();
+
+
+Extra constant evaluation status:
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage.dart:8:24 -> InstanceConstant(const Foo{Foo.bar: const Bar{Bar.baz: const Baz{Baz.bar: null}}})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage.dart:9:24 -> InstanceConstant(const Foo{Foo.bar: const Bar{Bar.baz: const Baz{Baz.bar: null}}})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage.dart:10:24 -> InstanceConstant(const Foo{Foo.bar: const Bar{Bar.baz: const Baz{Baz.bar: null}}})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage.dart:11:24 -> InstanceConstant(const Foo{Foo.bar: const Bar{Bar.baz: const Baz{Baz.bar: null}}})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage_lib1.dart:9:35 -> InstanceConstant(const Bar{Bar.baz: const Baz{Baz.bar: null}})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage_lib1.dart:10:42 -> InstanceConstant(const Bar{Bar.baz: const Baz{Baz.bar: null}})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage_lib1.dart:11:42 -> InstanceConstant(const Bar{Bar.baz: const Baz{Baz.bar: null}})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage_lib1.dart:12:42 -> InstanceConstant(const Bar{Bar.baz: const Baz{Baz.bar: null}})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage_lib1.dart:17:35 -> InstanceConstant(const Baz{Baz.bar: null})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage_lib1.dart:18:42 -> InstanceConstant(const Baz{Baz.bar: null})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage_lib1.dart:19:42 -> InstanceConstant(const Baz{Baz.bar: null})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage_lib1.dart:20:42 -> InstanceConstant(const Baz{Baz.bar: null})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage_lib1.dart:22:29 -> InstanceConstant(const Baz{Baz.bar: null})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage_lib1.dart:22:50 -> InstanceConstant(const Baz{Baz.bar: null})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage_lib1.dart:25:23 -> InstanceConstant(const Foo{Foo.bar: const Bar{Bar.baz: const Baz{Baz.bar: null}}})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage_lib2.dart:12:36 -> InstanceConstant(const Bar{Bar.baz: const Baz{Baz.bar: null}})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage_lib2.dart:18:23 -> InstanceConstant(const Baz{Baz.bar: null})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage_lib2.dart:19:23 -> InstanceConstant(const Foo{Foo.bar: const Bar{Bar.baz: const Baz{Baz.bar: null}}})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///const_constructor_coverage_lib2.dart:20:23 -> InstanceConstant(const Bar{Bar.baz: const Baz{Baz.bar: null}})
+Extra constant evaluation: evaluated: 22, effectively constant: 19
diff --git a/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.strong.expect b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.strong.expect
new file mode 100644
index 0000000..19a070b
--- /dev/null
+++ b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.strong.expect
@@ -0,0 +1,129 @@
+library;
+import self as self;
+import "dart:core" as core;
+import "const_constructor_coverage_lib1.dart" as con;
+
+import "org-dartlang-testcase:///const_constructor_coverage_lib1.dart";
+import "org-dartlang-testcase:///const_constructor_coverage_lib2.dart";
+
+static const field con::Foo* foo1 = #C4;
+static const field con::Foo* foo2 = #C4;
+static const field con::Foo* foo3 = #C4;
+static const field con::Foo* foo4 = #C4;
+static method main() → dynamic {
+  core::print(#C4);
+}
+
+library;
+import self as con;
+import "dart:core" as core;
+import "const_constructor_coverage_lib2.dart" as con2;
+
+import "org-dartlang-testcase:///const_constructor_coverage_lib2.dart";
+
+class Foo extends core::Object /*hasConstConstructor*/  {
+  final field con::Bar* bar;
+  const constructor •() → con::Foo*
+    : con::Foo::bar = #C3, super core::Object::•()
+    ;
+  const constructor named1() → con::Foo*
+    : con::Foo::bar = #C3, super core::Object::•()
+    ;
+  const constructor named2() → con::Foo*
+    : con::Foo::bar = #C3, super core::Object::•()
+    ;
+  const constructor named3() → con::Foo*
+    : con::Foo::bar = #C3, super core::Object::•()
+    ;
+  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
+  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
+  abstract member-signature method toString() → core::String*; -> core::Object::toString
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
+  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+}
+class Bar extends core::Object /*hasConstConstructor*/  {
+  final field con2::Baz* baz;
+  const constructor •() → con::Bar*
+    : con::Bar::baz = #C2, super core::Object::•()
+    ;
+  const constructor named1() → con::Bar*
+    : con::Bar::baz = #C2, super core::Object::•()
+    ;
+  const constructor named2() → con::Bar*
+    : con::Bar::baz = #C2, super core::Object::•()
+    ;
+  const constructor named3() → con::Bar*
+    : con::Bar::baz = #C2, super core::Object::•()
+    ;
+  const constructor named4(core::int* i) → con::Bar*
+    : con::Bar::baz = i.{core::num::>}(0) ?{con2::Baz*} #C2 : #C2, super core::Object::•()
+    ;
+  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
+  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
+  abstract member-signature method toString() → core::String*; -> core::Object::toString
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
+  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+}
+static const field con::Foo* foo = #C4;
+
+library;
+import self as con2;
+import "dart:core" as core;
+import "const_constructor_coverage_lib1.dart" as con;
+
+import "org-dartlang-testcase:///const_constructor_coverage_lib1.dart";
+
+class Baz extends core::Object /*hasConstConstructor*/  {
+  final field con::Bar* bar;
+  const constructor •() → con2::Baz*
+    : con2::Baz::bar = null, super core::Object::•()
+    ;
+  const constructor named1() → con2::Baz*
+    : con2::Baz::bar = null, super core::Object::•()
+    ;
+  const constructor named2() → con2::Baz*
+    : con2::Baz::bar = null, super core::Object::•()
+    ;
+  const constructor named3() → con2::Baz*
+    : con2::Baz::bar = #C3, super core::Object::•()
+    ;
+  const constructor named4() → con2::Baz*
+    : con2::Baz::bar = null, super core::Object::•()
+    ;
+  const constructor named5() → con2::Baz*
+    : con2::Baz::bar = null, super core::Object::•()
+    ;
+  const constructor named6() → con2::Baz*
+    : con2::Baz::bar = null, super core::Object::•()
+    ;
+  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
+  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
+  abstract member-signature method toString() → core::String*; -> core::Object::toString
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
+  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+}
+static const field con2::Baz* baz = #C2;
+static const field con::Foo* foo = #C4;
+static const field con::Bar* bar = #C3;
+
+constants  {
+  #C1 = null
+  #C2 = con2::Baz {bar:#C1}
+  #C3 = con::Bar {baz:#C2}
+  #C4 = con::Foo {bar:#C3}
+}
diff --git a/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.strong.transformed.expect b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.strong.transformed.expect
new file mode 100644
index 0000000..19a070b
--- /dev/null
+++ b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.strong.transformed.expect
@@ -0,0 +1,129 @@
+library;
+import self as self;
+import "dart:core" as core;
+import "const_constructor_coverage_lib1.dart" as con;
+
+import "org-dartlang-testcase:///const_constructor_coverage_lib1.dart";
+import "org-dartlang-testcase:///const_constructor_coverage_lib2.dart";
+
+static const field con::Foo* foo1 = #C4;
+static const field con::Foo* foo2 = #C4;
+static const field con::Foo* foo3 = #C4;
+static const field con::Foo* foo4 = #C4;
+static method main() → dynamic {
+  core::print(#C4);
+}
+
+library;
+import self as con;
+import "dart:core" as core;
+import "const_constructor_coverage_lib2.dart" as con2;
+
+import "org-dartlang-testcase:///const_constructor_coverage_lib2.dart";
+
+class Foo extends core::Object /*hasConstConstructor*/  {
+  final field con::Bar* bar;
+  const constructor •() → con::Foo*
+    : con::Foo::bar = #C3, super core::Object::•()
+    ;
+  const constructor named1() → con::Foo*
+    : con::Foo::bar = #C3, super core::Object::•()
+    ;
+  const constructor named2() → con::Foo*
+    : con::Foo::bar = #C3, super core::Object::•()
+    ;
+  const constructor named3() → con::Foo*
+    : con::Foo::bar = #C3, super core::Object::•()
+    ;
+  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
+  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
+  abstract member-signature method toString() → core::String*; -> core::Object::toString
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
+  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+}
+class Bar extends core::Object /*hasConstConstructor*/  {
+  final field con2::Baz* baz;
+  const constructor •() → con::Bar*
+    : con::Bar::baz = #C2, super core::Object::•()
+    ;
+  const constructor named1() → con::Bar*
+    : con::Bar::baz = #C2, super core::Object::•()
+    ;
+  const constructor named2() → con::Bar*
+    : con::Bar::baz = #C2, super core::Object::•()
+    ;
+  const constructor named3() → con::Bar*
+    : con::Bar::baz = #C2, super core::Object::•()
+    ;
+  const constructor named4(core::int* i) → con::Bar*
+    : con::Bar::baz = i.{core::num::>}(0) ?{con2::Baz*} #C2 : #C2, super core::Object::•()
+    ;
+  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
+  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
+  abstract member-signature method toString() → core::String*; -> core::Object::toString
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
+  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+}
+static const field con::Foo* foo = #C4;
+
+library;
+import self as con2;
+import "dart:core" as core;
+import "const_constructor_coverage_lib1.dart" as con;
+
+import "org-dartlang-testcase:///const_constructor_coverage_lib1.dart";
+
+class Baz extends core::Object /*hasConstConstructor*/  {
+  final field con::Bar* bar;
+  const constructor •() → con2::Baz*
+    : con2::Baz::bar = null, super core::Object::•()
+    ;
+  const constructor named1() → con2::Baz*
+    : con2::Baz::bar = null, super core::Object::•()
+    ;
+  const constructor named2() → con2::Baz*
+    : con2::Baz::bar = null, super core::Object::•()
+    ;
+  const constructor named3() → con2::Baz*
+    : con2::Baz::bar = #C3, super core::Object::•()
+    ;
+  const constructor named4() → con2::Baz*
+    : con2::Baz::bar = null, super core::Object::•()
+    ;
+  const constructor named5() → con2::Baz*
+    : con2::Baz::bar = null, super core::Object::•()
+    ;
+  const constructor named6() → con2::Baz*
+    : con2::Baz::bar = null, super core::Object::•()
+    ;
+  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
+  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
+  abstract member-signature method toString() → core::String*; -> core::Object::toString
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
+  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+}
+static const field con2::Baz* baz = #C2;
+static const field con::Foo* foo = #C4;
+static const field con::Bar* bar = #C3;
+
+constants  {
+  #C1 = null
+  #C2 = con2::Baz {bar:#C1}
+  #C3 = con::Bar {baz:#C2}
+  #C4 = con::Foo {bar:#C3}
+}
diff --git a/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.textual_outline.expect b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.textual_outline.expect
new file mode 100644
index 0000000..a7b8a8a
--- /dev/null
+++ b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.textual_outline.expect
@@ -0,0 +1,8 @@
+import "const_constructor_coverage_lib1.dart";
+import "const_constructor_coverage_lib2.dart";
+
+const Foo foo1 = const Foo();
+const Foo foo2 = const Foo.named1();
+const Foo foo3 = const Foo.named2();
+const Foo foo4 = const Foo.named3();
+main() {}
diff --git a/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..a7b8a8a
--- /dev/null
+++ b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.textual_outline_modelled.expect
@@ -0,0 +1,8 @@
+import "const_constructor_coverage_lib1.dart";
+import "const_constructor_coverage_lib2.dart";
+
+const Foo foo1 = const Foo();
+const Foo foo2 = const Foo.named1();
+const Foo foo3 = const Foo.named2();
+const Foo foo4 = const Foo.named3();
+main() {}
diff --git a/pkg/front_end/testcases/general/constants/const_constructor_coverage_lib1.dart b/pkg/front_end/testcases/general/constants/const_constructor_coverage_lib1.dart
new file mode 100644
index 0000000..e7d6647
--- /dev/null
+++ b/pkg/front_end/testcases/general/constants/const_constructor_coverage_lib1.dart
@@ -0,0 +1,30 @@
+// Copyright (c) 2020, 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 "const_constructor_coverage_lib2.dart";
+
+class Foo {
+  final Bar bar;
+  const /*x*/ Foo() : bar = const Bar();
+  const /*x*/ Foo.named1() : bar = const Bar.named1();
+  const /*x*/ Foo.named2() : bar = const Bar.named1();
+  const /*x*/ Foo.named3() : bar = const Bar.named1();
+}
+
+class Bar {
+  final Baz baz;
+  const /*x*/ Bar() : baz = const Baz();
+  const /*x*/ Bar.named1() : baz = const Baz.named1();
+  const /*x*/ Bar.named2() : baz = const Baz.named1();
+  const /*x*/ Bar.named3() : baz = const Baz.named1();
+  const Bar.named4(int i)
+      : baz = i > 0 ? const Baz.named5() : const Baz.named6();
+}
+
+const Foo foo = const Foo.named3();
+
+// This file in itself should mark the following as const-constructor-covered:
+// * "Bar", "Bar.named1", "Baz", "Baz.named1", "Baz.named5" and "Baz.named6"
+//   from evaluating field initializers (done unconditionally).
+// * "Foo.named3" from constant-evaluating the const field.
diff --git a/pkg/front_end/testcases/general/constants/const_constructor_coverage_lib2.dart b/pkg/front_end/testcases/general/constants/const_constructor_coverage_lib2.dart
new file mode 100644
index 0000000..88e63b9
--- /dev/null
+++ b/pkg/front_end/testcases/general/constants/const_constructor_coverage_lib2.dart
@@ -0,0 +1,25 @@
+// Copyright (c) 2020, 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 "const_constructor_coverage_lib1.dart";
+
+class Baz {
+  final Bar bar;
+  const /*x*/ Baz() : bar = null;
+  const /*x*/ Baz.named1() : bar = null;
+  const Baz.named2() : bar = null;
+  const Baz.named3() : bar = const Bar.named3();
+  const /*x*/ Baz.named4() : bar = null;
+  const /*x*/ Baz.named5() : bar = null;
+  const /*x*/ Baz.named6() : bar = null;
+}
+
+const Baz baz = const Baz.named4();
+const Foo foo = const Foo.named2();
+const Bar bar = const Bar.named2();
+
+// This file in itself should mark the following as const-constructor-covered:
+// * "Bar.named3" from evaluating field initializers (done unconditionally).
+// * "Baz.named4", "Foo.named2" and "Bar.named2" from constant-evaluating the
+//   const fields.
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.transformed.expect b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.transformed.expect
index 898ae52..8b93516 100644
--- a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.transformed.expect
@@ -2342,7 +2342,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -2893,7 +2892,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general/error_recovery/empty_await_for.dart.strong.transformed.expect b/pkg/front_end/testcases/general/error_recovery/empty_await_for.dart.strong.transformed.expect
index caf60f4..8ab3f4c 100644
--- a/pkg/front_end/testcases/general/error_recovery/empty_await_for.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/error_recovery/empty_await_for.dart.strong.transformed.expect
@@ -20,7 +20,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -67,7 +66,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general/flutter_issue64155.dart.strong.transformed.expect b/pkg/front_end/testcases/general/flutter_issue64155.dart.strong.transformed.expect
index 23d120e..97f034a 100644
--- a/pkg/front_end/testcases/general/flutter_issue64155.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/flutter_issue64155.dart.strong.transformed.expect
@@ -9,7 +9,6 @@
     final asy::_Future<self::TestMixin::T*>* :async_future = new asy::_Future::•<self::TestMixin::T*>();
     core::bool* :is_sync = false;
     FutureOr<self::TestMixin::T*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -45,7 +44,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -129,7 +127,6 @@
     final asy::_Future<core::String*>* :async_future = new asy::_Future::•<core::String*>();
     core::bool* :is_sync = false;
     FutureOr<core::String*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -165,7 +162,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -200,7 +196,6 @@
     final asy::_Future<core::String*>* :async_future = new asy::_Future::•<core::String*>();
     core::bool* :is_sync = false;
     FutureOr<core::String*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -236,7 +231,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/general/future_or_test.dart.strong.transformed.expect b/pkg/front_end/testcases/general/future_or_test.dart.strong.transformed.expect
index a4ac3f4..f62a5eb 100644
--- a/pkg/front_end/testcases/general/future_or_test.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/future_or_test.dart.strong.transformed.expect
@@ -31,7 +31,6 @@
     final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
     core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -49,7 +48,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -76,7 +74,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -94,7 +91,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/general/future_return.dart.strong.transformed.expect b/pkg/front_end/testcases/general/future_return.dart.strong.transformed.expect
index 6f96292..059106c 100644
--- a/pkg/front_end/testcases/general/future_return.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/future_return.dart.strong.transformed.expect
@@ -46,7 +46,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -64,7 +63,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -75,7 +73,6 @@
   final asy::_Future<self::Class*>* :async_future = new asy::_Future::•<self::Class*>();
   core::bool* :is_sync = false;
   FutureOr<self::Class*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -93,7 +90,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -104,7 +100,6 @@
   final asy::_Future<self::Class*>* :async_future = new asy::_Future::•<self::Class*>();
   core::bool* :is_sync = false;
   FutureOr<self::Class*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -122,7 +117,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -133,7 +127,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -151,7 +144,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -162,7 +154,6 @@
   final asy::_Future<self::Class*>* :async_future = new asy::_Future::•<self::Class*>();
   core::bool* :is_sync = false;
   FutureOr<self::Class*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -180,7 +171,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -191,7 +181,6 @@
   final asy::_Future<self::Class*>* :async_future = new asy::_Future::•<self::Class*>();
   core::bool* :is_sync = false;
   FutureOr<self::Class*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -209,7 +198,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -220,7 +208,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -238,7 +225,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -249,7 +235,6 @@
   final asy::_Future<self::Class*>* :async_future = new asy::_Future::•<self::Class*>();
   core::bool* :is_sync = false;
   FutureOr<self::Class*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -267,7 +252,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -278,7 +262,6 @@
   final asy::_Future<self::Class*>* :async_future = new asy::_Future::•<self::Class*>();
   core::bool* :is_sync = false;
   FutureOr<self::Class*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -296,7 +279,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -307,7 +289,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -325,7 +306,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -336,7 +316,6 @@
   final asy::_Future<self::Class*>* :async_future = new asy::_Future::•<self::Class*>();
   core::bool* :is_sync = false;
   FutureOr<self::Class*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -354,7 +333,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -365,7 +343,6 @@
   final asy::_Future<self::Class*>* :async_future = new asy::_Future::•<self::Class*>();
   core::bool* :is_sync = false;
   FutureOr<self::Class*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -383,7 +360,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -394,7 +370,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -435,7 +410,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general/issue40662.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue40662.dart.strong.transformed.expect
index d7e7eca..58436b7 100644
--- a/pkg/front_end/testcases/general/issue40662.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/issue40662.dart.strong.transformed.expect
@@ -12,7 +12,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -45,7 +44,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -56,7 +54,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -76,7 +73,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -92,4 +88,4 @@
 Extra constant evaluation status:
 Evaluated: MethodInvocation @ org-dartlang-testcase:///issue40662.dart:8:10 -> IntConstant(-1)
 Evaluated: MethodInvocation @ org-dartlang-testcase:///issue40662.dart:9:10 -> IntConstant(-1)
-Extra constant evaluation: evaluated: 101, effectively constant: 2
+Extra constant evaluation: evaluated: 95, effectively constant: 2
diff --git a/pkg/front_end/testcases/general/issue42615.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue42615.dart.strong.transformed.expect
index 5550a8f..3144af6 100644
--- a/pkg/front_end/testcases/general/issue42615.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/issue42615.dart.strong.transformed.expect
@@ -27,7 +27,6 @@
     final asy::_Future<core::List<dynamic>*>* :async_future = new asy::_Future::•<core::List<dynamic>*>();
     core::bool* :is_sync = false;
     FutureOr<core::List<dynamic>*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -45,7 +44,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/general/no_such_method_forwarder.dart.strong.transformed.expect b/pkg/front_end/testcases/general/no_such_method_forwarder.dart.strong.transformed.expect
index bb66d2f..72d4454 100644
--- a/pkg/front_end/testcases/general/no_such_method_forwarder.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/no_such_method_forwarder.dart.strong.transformed.expect
@@ -12,7 +12,6 @@
     final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
     core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -32,7 +31,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/general/regression_flutter51828.dart.strong.transformed.expect b/pkg/front_end/testcases/general/regression_flutter51828.dart.strong.transformed.expect
index 30085d7..442d3ae 100644
--- a/pkg/front_end/testcases/general/regression_flutter51828.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/regression_flutter51828.dart.strong.transformed.expect
@@ -12,7 +12,6 @@
     final asy::_Future<void>* :async_future = new asy::_Future::•<void>();
     core::bool* :is_sync = false;
     FutureOr<void>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -27,7 +26,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -53,7 +51,6 @@
     final asy::_Future<void>* :async_future = new asy::_Future::•<void>();
     core::bool* :is_sync = false;
     FutureOr<void>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -68,7 +65,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -90,7 +86,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -116,7 +111,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general/statements.dart.strong.transformed.expect b/pkg/front_end/testcases/general/statements.dart.strong.transformed.expect
index a02506d..91dfee3 100644
--- a/pkg/front_end/testcases/general/statements.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/statements.dart.strong.transformed.expect
@@ -15,7 +15,6 @@
 static method bar(dynamic d) → dynamic /* originally async* */ {
   asy::_AsyncStarStreamController<dynamic>* :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -69,7 +68,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<dynamic>(:async_op);
diff --git a/pkg/front_end/testcases/general/stream_future.dart.strong.transformed.expect b/pkg/front_end/testcases/general/stream_future.dart.strong.transformed.expect
index 97bf589..f768444 100644
--- a/pkg/front_end/testcases/general/stream_future.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/stream_future.dart.strong.transformed.expect
@@ -38,7 +38,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -56,7 +55,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -67,7 +65,6 @@
   final asy::_Future<self::Class*>* :async_future = new asy::_Future::•<self::Class*>();
   core::bool* :is_sync = false;
   FutureOr<self::Class*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -85,7 +82,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -95,7 +91,6 @@
 static method error() → asy::Stream<FutureOr<self::Class*>*>* /* originally async* */ {
   asy::_AsyncStarStreamController<FutureOr<self::Class*>*>* :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -124,7 +119,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<FutureOr<self::Class*>*>(:async_op);
@@ -134,7 +128,6 @@
 static method stream() → asy::Stream<FutureOr<self::Class*>*>* /* originally async* */ {
   asy::_AsyncStarStreamController<FutureOr<self::Class*>*>* :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -167,7 +160,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<FutureOr<self::Class*>*>(:async_op);
@@ -178,7 +170,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -221,7 +212,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/async_function.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/async_function.dart.weak.transformed.expect
index 3382485..33ab33f 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/async_function.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/async_function.dart.weak.transformed.expect
@@ -11,7 +11,6 @@
   final asy::_Future<core::String*>* :async_future = new asy::_Future::•<core::String*>();
   core::bool* :is_sync = false;
   FutureOr<core::String*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -29,7 +28,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -40,7 +38,6 @@
   final asy::_Future<core::String*>* :async_future = new asy::_Future::•<core::String*>();
   core::bool* :is_sync = false;
   FutureOr<core::String*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -58,7 +55,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -110,7 +106,6 @@
 static method asyncStarString() → asy::Stream<core::String*>* /* originally async* */ {
   asy::_AsyncStarStreamController<core::String*>* :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -144,7 +139,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<core::String*>(:async_op);
@@ -154,7 +148,6 @@
 static method asyncStarString2() → asy::Stream<core::String*>* /* originally async* */ {
   asy::_AsyncStarStreamController<core::String*>* :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -179,7 +172,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<core::String*>(:async_op);
@@ -190,7 +182,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -209,7 +200,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/async_nested.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/async_nested.dart.weak.transformed.expect
index 772b468..78818d9 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/async_nested.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/async_nested.dart.weak.transformed.expect
@@ -31,7 +31,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -69,7 +68,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/await.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/await.dart.weak.transformed.expect
index 9bac1f2..04a6af0 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/await.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/await.dart.weak.transformed.expect
@@ -8,7 +8,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -27,7 +26,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/await_complex.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/await_complex.dart.weak.transformed.expect
index d6a8b95..8b69c50 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/await_complex.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/await_complex.dart.weak.transformed.expect
@@ -60,7 +60,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -107,7 +106,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -118,7 +116,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -160,7 +157,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -171,7 +167,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -214,7 +209,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -225,7 +219,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -268,7 +261,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -279,7 +271,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -342,7 +333,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -353,7 +343,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -417,7 +406,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -428,7 +416,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -562,7 +549,6 @@
                 final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
                 core::bool* :is_sync = false;
                 FutureOr<dynamic>* :return_value;
-                dynamic :async_stack_trace;
                 (dynamic) →* dynamic :async_op_then;
                 (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
                 core::int* :await_jump_var = 0;
@@ -582,7 +568,6 @@
                   on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
                     asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
                   }
-                :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
                 :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
                 :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
                 :async_op.call();
@@ -594,7 +579,6 @@
                 final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
                 core::bool* :is_sync = false;
                 FutureOr<dynamic>* :return_value;
-                dynamic :async_stack_trace;
                 (dynamic) →* dynamic :async_op_then;
                 (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
                 core::int* :await_jump_var = 0;
@@ -612,7 +596,6 @@
                   on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
                     asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
                   }
-                :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
                 :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
                 :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
                 :async_op.call();
@@ -623,7 +606,6 @@
               function testStream1() → asy::Stream<core::int*>* /* originally async* */ {
                 asy::_AsyncStarStreamController<core::int*>* :controller;
                 dynamic :controller_stream;
-                dynamic :async_stack_trace;
                 (dynamic) →* dynamic :async_op_then;
                 (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
                 core::int* :await_jump_var = 0;
@@ -649,7 +631,6 @@
                   finally {
                     :controller.{asy::_AsyncStarStreamController::close}();
                   }
-                :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
                 :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
                 :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
                 :controller = new asy::_AsyncStarStreamController::•<core::int*>(:async_op);
@@ -662,7 +643,6 @@
               function testStream2() → asy::Stream<core::int*>* /* originally async* */ {
                 asy::_AsyncStarStreamController<core::int*>* :controller;
                 dynamic :controller_stream;
-                dynamic :async_stack_trace;
                 (dynamic) →* dynamic :async_op_then;
                 (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
                 core::int* :await_jump_var = 0;
@@ -688,7 +668,6 @@
                   finally {
                     :controller.{asy::_AsyncStarStreamController::close}();
                   }
-                :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
                 :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
                 :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
                 :controller = new asy::_AsyncStarStreamController::•<core::int*>(:async_op);
@@ -708,7 +687,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -719,7 +697,6 @@
   final asy::_Future<self::future::T*>* :async_future = new asy::_Future::•<self::future::T*>();
   core::bool* :is_sync = false;
   FutureOr<self::future::T*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -737,7 +714,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -749,7 +725,6 @@
 static method intStream() → asy::Stream<core::int*>* /* originally async* */ {
   asy::_AsyncStarStreamController<core::int*>* :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -774,7 +749,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<core::int*>(:async_op);
@@ -785,7 +759,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -818,7 +791,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/await_in_cascade.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/await_in_cascade.dart.weak.transformed.expect
index fe03b1d..e178bdf 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/await_in_cascade.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/await_in_cascade.dart.weak.transformed.expect
@@ -14,7 +14,6 @@
     final asy::_Future<core::List<core::int*>*>* :async_future = new asy::_Future::•<core::List<core::int*>*>();
     core::bool* :is_sync = false;
     FutureOr<core::List<core::int*>*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -36,7 +35,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -47,7 +45,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -65,7 +62,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -87,7 +83,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -106,7 +101,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/bug33196.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/bug33196.dart.weak.transformed.expect
index fe416ab..ea1347a 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/bug33196.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/bug33196.dart.weak.transformed.expect
@@ -13,7 +13,6 @@
   final asy::_Future<core::String*>* :async_future = new asy::_Future::•<core::String*>();
   core::bool* :is_sync = false;
   FutureOr<core::String*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -31,7 +30,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/bug33206.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/bug33206.dart.weak.transformed.expect
index 389811c..b800d2a 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/bug33206.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/bug33206.dart.weak.transformed.expect
@@ -44,7 +44,6 @@
   final asy::_Future<core::List<core::Object*>*>* :async_future = new asy::_Future::•<core::List<core::Object*>*>();
   core::bool* :is_sync = false;
   FutureOr<core::List<core::Object*>*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -62,7 +61,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -75,7 +73,6 @@
   final asy::_Future<core::Object*>* :async_future = new asy::_Future::•<core::Object*>();
   core::bool* :is_sync = false;
   FutureOr<core::Object*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -93,7 +90,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -104,7 +100,6 @@
   final asy::_Future<self::X*>* :async_future = new asy::_Future::•<self::X*>();
   core::bool* :is_sync = false;
   FutureOr<self::X*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -131,7 +126,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -142,7 +136,6 @@
   final asy::_Future<void>* :async_future = new asy::_Future::•<void>();
   core::bool* :is_sync = false;
   FutureOr<void>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -161,7 +154,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/check_deferred_before_args2.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/check_deferred_before_args2.dart.weak.transformed.expect
index ad4521b..fd3b4a6 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/check_deferred_before_args2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/check_deferred_before_args2.dart.weak.transformed.expect
@@ -11,7 +11,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -31,7 +30,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.transformed.expect
index b843b32..d7f35a9 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.transformed.expect
@@ -2342,7 +2342,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -2893,7 +2892,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/future_or_test.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/future_or_test.dart.weak.transformed.expect
index a4ac3f4..f62a5eb 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/future_or_test.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/future_or_test.dart.weak.transformed.expect
@@ -31,7 +31,6 @@
     final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
     core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -49,7 +48,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -76,7 +74,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -94,7 +91,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/statements.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/statements.dart.weak.transformed.expect
index a02506d..91dfee3 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/statements.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/statements.dart.weak.transformed.expect
@@ -15,7 +15,6 @@
 static method bar(dynamic d) → dynamic /* originally async* */ {
   asy::_AsyncStarStreamController<dynamic>* :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -69,7 +68,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<dynamic>(:async_op);
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_3.yaml.world.1.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_3.yaml.world.1.expect
index 32da763..e2cb288 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_3.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_3.yaml.world.1.expect
@@ -5,7 +5,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -26,7 +25,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -59,7 +57,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -79,7 +76,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_3.yaml.world.2.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_3.yaml.world.2.expect
index 0fabe89..6ef77a2 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_3.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_3.yaml.world.2.expect
@@ -5,7 +5,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -26,7 +25,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -59,7 +57,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -80,7 +77,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.1.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.1.expect
index e8c7c9a..824f20e 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.1.expect
@@ -23,7 +23,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -43,7 +42,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -54,7 +52,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -75,7 +72,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.2.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.2.expect
index af9c5da..44652d1 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.2.expect
@@ -23,7 +23,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -43,7 +42,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -54,7 +52,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -75,7 +72,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.3.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.3.expect
index abf2025..99415d4 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_5.yaml.world.3.expect
@@ -23,7 +23,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -44,7 +43,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -55,7 +53,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -76,7 +73,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/inference/async_await.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/async_await.dart.strong.transformed.expect
index 487e430..d56811d 100644
--- a/pkg/front_end/testcases/inference/async_await.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/async_await.dart.strong.transformed.expect
@@ -30,7 +30,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -54,7 +53,6 @@
           final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
           core::bool* :is_sync = false;
           FutureOr<core::int*>* :return_value;
-          dynamic :async_stack_trace;
           (dynamic) →* dynamic :async_op_then;
           (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
           core::int* :await_jump_var = 0;
@@ -72,7 +70,6 @@
             on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -83,7 +80,6 @@
           final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
           core::bool* :is_sync = false;
           FutureOr<core::int*>* :return_value;
-          dynamic :async_stack_trace;
           (dynamic) →* dynamic :async_op_then;
           (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
           core::int* :await_jump_var = 0;
@@ -101,7 +97,6 @@
             on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -112,7 +107,6 @@
           final asy::_Future<asy::Future<core::int*>*>* :async_future = new asy::_Future::•<asy::Future<core::int*>*>();
           core::bool* :is_sync = false;
           FutureOr<asy::Future<core::int*>*>* :return_value;
-          dynamic :async_stack_trace;
           (dynamic) →* dynamic :async_op_then;
           (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
           core::int* :await_jump_var = 0;
@@ -130,7 +124,6 @@
             on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -141,7 +134,6 @@
           final asy::_Future<FutureOr<core::int*>*>* :async_future = new asy::_Future::•<FutureOr<core::int*>*>();
           core::bool* :is_sync = false;
           FutureOr<FutureOr<core::int*>*>* :return_value;
-          dynamic :async_stack_trace;
           (dynamic) →* dynamic :async_op_then;
           (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
           core::int* :await_jump_var = 0;
@@ -159,7 +151,6 @@
             on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -170,7 +161,6 @@
           final asy::_Future<self::MyFuture*>* :async_future = new asy::_Future::•<self::MyFuture*>();
           core::bool* :is_sync = false;
           FutureOr<self::MyFuture*>* :return_value;
-          dynamic :async_stack_trace;
           (dynamic) →* dynamic :async_op_then;
           (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
           core::int* :await_jump_var = 0;
@@ -188,7 +178,6 @@
             on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -199,7 +188,6 @@
           final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
           core::bool* :is_sync = false;
           FutureOr<core::int*>* :return_value;
-          dynamic :async_stack_trace;
           (dynamic) →* dynamic :async_op_then;
           (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
           core::int* :await_jump_var = 0;
@@ -217,7 +205,6 @@
             on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -228,7 +215,6 @@
           final asy::_Future<asy::Future<core::int*>*>* :async_future = new asy::_Future::•<asy::Future<core::int*>*>();
           core::bool* :is_sync = false;
           FutureOr<asy::Future<core::int*>*>* :return_value;
-          dynamic :async_stack_trace;
           (dynamic) →* dynamic :async_op_then;
           (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
           core::int* :await_jump_var = 0;
@@ -246,7 +232,6 @@
             on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -257,7 +242,6 @@
           final asy::_Future<FutureOr<core::int*>*>* :async_future = new asy::_Future::•<FutureOr<core::int*>*>();
           core::bool* :is_sync = false;
           FutureOr<FutureOr<core::int*>*>* :return_value;
-          dynamic :async_stack_trace;
           (dynamic) →* dynamic :async_op_then;
           (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
           core::int* :await_jump_var = 0;
@@ -275,7 +259,6 @@
             on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -286,7 +269,6 @@
           final asy::_Future<self::MyFuture*>* :async_future = new asy::_Future::•<self::MyFuture*>();
           core::bool* :is_sync = false;
           FutureOr<self::MyFuture*>* :return_value;
-          dynamic :async_stack_trace;
           (dynamic) →* dynamic :async_op_then;
           (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
           core::int* :await_jump_var = 0;
@@ -304,7 +286,6 @@
             on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -315,7 +296,6 @@
           final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
           core::bool* :is_sync = false;
           FutureOr<core::int*>* :return_value;
-          dynamic :async_stack_trace;
           (dynamic) →* dynamic :async_op_then;
           (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
           core::int* :await_jump_var = 0;
@@ -333,7 +313,6 @@
             on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -367,7 +346,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.strong.transformed.expect
index e19b6bd..3a8bfa5c7 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.strong.transformed.expect
@@ -11,7 +11,6 @@
   final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
   core::bool* :is_sync = false;
   FutureOr<core::int*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -29,7 +28,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.strong.transformed.expect
index e7ca87d..8e77c75 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.strong.transformed.expect
@@ -7,7 +7,6 @@
   final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
   core::bool* :is_sync = false;
   FutureOr<core::int*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -25,7 +24,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.strong.transformed.expect
index 191fffb..b678b0d 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.strong.transformed.expect
@@ -11,7 +11,6 @@
   final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
   core::bool* :is_sync = false;
   FutureOr<core::int*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -29,7 +28,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures.dart.strong.transformed.expect
index 04cb4b4..5bac272 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures.dart.strong.transformed.expect
@@ -12,7 +12,6 @@
     final asy::_Future<core::num*>* :async_future = new asy::_Future::•<core::num*>();
     core::bool* :is_sync = false;
     FutureOr<core::num*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -36,7 +35,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values.dart.strong.transformed.expect
index a7b9b3d..6d91810 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values.dart.strong.transformed.expect
@@ -12,7 +12,6 @@
     final asy::_Future<core::num*>* :async_future = new asy::_Future::•<core::num*>();
     core::bool* :is_sync = false;
     FutureOr<core::num*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -36,7 +35,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures.dart.strong.transformed.expect
index 398dba4..5cd44bc 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures.dart.strong.transformed.expect
@@ -12,7 +12,6 @@
     final asy::_Future<core::num*>* :async_future = new asy::_Future::•<core::num*>();
     core::bool* :is_sync = false;
     FutureOr<core::num*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -36,7 +35,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star.dart.strong.transformed.expect
index a13fe6a..adbe951 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star.dart.strong.transformed.expect
@@ -9,7 +9,6 @@
   () →* asy::Stream<core::num*>* f = () → asy::Stream<core::num*>* /* originally async* */ {
     asy::_AsyncStarStreamController<core::num*>* :controller;
     dynamic :controller_stream;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -39,7 +38,6 @@
       finally {
         :controller.{asy::_AsyncStarStreamController::close}();
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :controller = new asy::_AsyncStarStreamController::•<core::num*>(:async_op);
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.strong.transformed.expect
index 6215f3a..bd417fc 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.strong.transformed.expect
@@ -10,7 +10,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -24,7 +23,6 @@
           final asy::_Future<Null>* :async_future = new asy::_Future::•<Null>();
           core::bool* :is_sync = false;
           FutureOr<Null>* :return_value;
-          dynamic :async_stack_trace;
           (dynamic) →* dynamic :async_op_then;
           (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
           core::int* :await_jump_var = 0;
@@ -42,7 +40,6 @@
             on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -60,7 +57,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.strong.transformed.expect
index a83d5ab..fa13ae6 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.strong.transformed.expect
@@ -10,7 +10,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -23,7 +22,6 @@
         () →* asy::Stream<Null>* f = () → asy::Stream<Null>* /* originally async* */ {
           asy::_AsyncStarStreamController<Null>* :controller;
           dynamic :controller_stream;
-          dynamic :async_stack_trace;
           (dynamic) →* dynamic :async_op_then;
           (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
           core::int* :await_jump_var = 0;
@@ -48,7 +46,6 @@
             finally {
               :controller.{asy::_AsyncStarStreamController::close}();
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :controller = new asy::_AsyncStarStreamController::•<Null>(:async_op);
@@ -66,7 +63,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.strong.transformed.expect
index c861eee..1d08476 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.strong.transformed.expect
@@ -10,7 +10,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -32,7 +31,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.strong.transformed.expect
index 30e4086..313ed02 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.strong.transformed.expect
@@ -63,7 +63,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -233,7 +232,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -244,7 +242,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -327,7 +324,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.strong.transformed.expect
index 91c8102..3f747b9 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.strong.transformed.expect
@@ -86,7 +86,6 @@
 static method foo() → asy::Stream<core::List<core::int*>*>* /* originally async* */ {
   asy::_AsyncStarStreamController<core::List<core::int*>*>* :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -131,7 +130,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<core::List<core::int*>*>(:async_op);
diff --git a/pkg/front_end/testcases/inference/for_each_downcast_iterable.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/for_each_downcast_iterable.dart.strong.transformed.expect
index 7e9c9e0..a832376 100644
--- a/pkg/front_end/testcases/inference/for_each_downcast_iterable.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/for_each_downcast_iterable.dart.strong.transformed.expect
@@ -8,7 +8,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -90,7 +89,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_then.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then.dart.strong.transformed.expect
index d5ab080..99706f8 100644
--- a/pkg/front_end/testcases/inference/future_then.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then.dart.strong.transformed.expect
@@ -39,7 +39,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -59,7 +58,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -70,7 +68,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -90,7 +87,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -101,7 +97,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -119,7 +114,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -130,7 +124,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -148,7 +141,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -163,7 +155,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -181,7 +172,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -192,7 +182,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -210,7 +199,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_then_2.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_2.dart.strong.transformed.expect
index 4e59f53..780ffb76 100644
--- a/pkg/front_end/testcases/inference/future_then_2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_2.dart.strong.transformed.expect
@@ -39,7 +39,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -59,7 +58,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -70,7 +68,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -90,7 +87,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -101,7 +97,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -119,7 +114,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -130,7 +124,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -148,7 +141,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -163,7 +155,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -181,7 +172,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -192,7 +182,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -210,7 +199,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_then_3.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_3.dart.strong.transformed.expect
index d64e850..3b12a3e 100644
--- a/pkg/front_end/testcases/inference/future_then_3.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_3.dart.strong.transformed.expect
@@ -39,7 +39,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -59,7 +58,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -70,7 +68,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -90,7 +87,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -101,7 +97,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -119,7 +114,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -130,7 +124,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -148,7 +141,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -163,7 +155,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -181,7 +172,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -192,7 +182,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -210,7 +199,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_then_4.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_4.dart.strong.transformed.expect
index 656e9a7..f715984 100644
--- a/pkg/front_end/testcases/inference/future_then_4.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_4.dart.strong.transformed.expect
@@ -39,7 +39,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -59,7 +58,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -70,7 +68,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -90,7 +87,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -101,7 +97,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -119,7 +114,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -130,7 +124,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -148,7 +141,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -163,7 +155,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -181,7 +172,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -192,7 +182,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -210,7 +199,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_then_5.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_5.dart.strong.transformed.expect
index 5f08a16..8095cd9 100644
--- a/pkg/front_end/testcases/inference/future_then_5.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_5.dart.strong.transformed.expect
@@ -39,7 +39,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -59,7 +58,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -70,7 +68,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -90,7 +87,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -101,7 +97,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -119,7 +114,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -130,7 +124,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -148,7 +141,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -163,7 +155,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -181,7 +172,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -192,7 +182,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -210,7 +199,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_then_6.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_6.dart.strong.transformed.expect
index 6e05d10..2bb0e59 100644
--- a/pkg/front_end/testcases/inference/future_then_6.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_6.dart.strong.transformed.expect
@@ -39,7 +39,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -59,7 +58,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -70,7 +68,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -90,7 +87,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -101,7 +97,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -119,7 +114,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -130,7 +124,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -148,7 +141,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -163,7 +155,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -181,7 +172,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -192,7 +182,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -210,7 +199,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_then_conditional.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional.dart.strong.transformed.expect
index 97390dc..1b90060 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional.dart.strong.transformed.expect
@@ -39,7 +39,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -66,7 +65,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -77,7 +75,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -97,7 +94,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_2.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional_2.dart.strong.transformed.expect
index 7e7583e..09ef601 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_2.dart.strong.transformed.expect
@@ -39,7 +39,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -66,7 +65,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -77,7 +75,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -97,7 +94,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_3.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional_3.dart.strong.transformed.expect
index b8e8643..97bec60 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_3.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_3.dart.strong.transformed.expect
@@ -39,7 +39,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -66,7 +65,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -77,7 +75,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -97,7 +94,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_4.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional_4.dart.strong.transformed.expect
index dbf053f..947f092 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_4.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_4.dart.strong.transformed.expect
@@ -39,7 +39,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -66,7 +65,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -77,7 +75,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -97,7 +94,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_5.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional_5.dart.strong.transformed.expect
index f0ab4cd..1ea35fe 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_5.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_5.dart.strong.transformed.expect
@@ -39,7 +39,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -66,7 +65,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -77,7 +75,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -97,7 +94,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_6.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional_6.dart.strong.transformed.expect
index 27e32cf..8acc631 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_6.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_6.dart.strong.transformed.expect
@@ -39,7 +39,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -66,7 +65,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -77,7 +75,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -97,7 +94,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_ifNull.dart.strong.transformed.expect
index 0ffe085..41975f17 100644
--- a/pkg/front_end/testcases/inference/future_then_ifNull.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_ifNull.dart.strong.transformed.expect
@@ -39,7 +39,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -67,7 +66,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -78,7 +76,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -98,7 +95,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_union_async_conditional.dart.strong.transformed.expect
index cf08d88..2d0d430 100644
--- a/pkg/front_end/testcases/inference/future_union_async_conditional.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional.dart.strong.transformed.expect
@@ -36,7 +36,6 @@
   final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
   core::bool* :is_sync = false;
   FutureOr<core::int*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -54,7 +53,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -65,7 +63,6 @@
   final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
   core::bool* :is_sync = false;
   FutureOr<core::int*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -83,7 +80,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -94,7 +90,6 @@
   final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
   core::bool* :is_sync = false;
   FutureOr<core::int*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -113,7 +108,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.strong.transformed.expect
index eae9737..e4ad380 100644
--- a/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.strong.transformed.expect
@@ -36,7 +36,6 @@
   final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
   core::bool* :is_sync = false;
   FutureOr<core::int*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -54,7 +53,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -65,7 +63,6 @@
   final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
   core::bool* :is_sync = false;
   FutureOr<core::int*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -83,7 +80,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -94,7 +90,6 @@
   final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
   core::bool* :is_sync = false;
   FutureOr<core::int*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -113,7 +108,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_union_downwards.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards.dart.strong.transformed.expect
index b26d359..cdf55f7 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards.dart.strong.transformed.expect
@@ -48,7 +48,6 @@
   final asy::_Future<core::List<core::int*>*>* :async_future = new asy::_Future::•<core::List<core::int*>*>();
   core::bool* :is_sync = false;
   FutureOr<core::List<core::int*>*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -66,7 +65,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -77,7 +75,6 @@
   final asy::_Future<core::List<core::int*>*>* :async_future = new asy::_Future::•<core::List<core::int*>*>();
   core::bool* :is_sync = false;
   FutureOr<core::List<core::int*>*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -95,7 +92,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.strong.transformed.expect
index 223a03e..3338e9b 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.strong.transformed.expect
@@ -39,7 +39,6 @@
   final asy::_Future<core::List<core::int*>*>* :async_future = new asy::_Future::•<core::List<core::int*>*>();
   core::bool* :is_sync = false;
   FutureOr<core::List<core::int*>*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -57,7 +56,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -68,7 +66,6 @@
   final asy::_Future<core::List<core::int*>*>* :async_future = new asy::_Future::•<core::List<core::int*>*>();
   core::bool* :is_sync = false;
   FutureOr<core::List<core::int*>*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -86,7 +83,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.strong.transformed.expect
index 083d7a2..d89cd97 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.strong.transformed.expect
@@ -48,7 +48,6 @@
   final asy::_Future<core::List<core::int*>*>* :async_future = new asy::_Future::•<core::List<core::int*>*>();
   core::bool* :is_sync = false;
   FutureOr<core::List<core::int*>*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -66,7 +65,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -77,7 +75,6 @@
   final asy::_Future<core::List<core::int*>*>* :async_future = new asy::_Future::•<core::List<core::int*>*>();
   core::bool* :is_sync = false;
   FutureOr<core::List<core::int*>*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -95,7 +92,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.strong.transformed.expect
index 31ccfda..b7ad80a 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.strong.transformed.expect
@@ -39,7 +39,6 @@
   final asy::_Future<core::List<core::int*>*>* :async_future = new asy::_Future::•<core::List<core::int*>*>();
   core::bool* :is_sync = false;
   FutureOr<core::List<core::int*>*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -57,7 +56,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -68,7 +66,6 @@
   final asy::_Future<core::List<core::int*>*>* :async_future = new asy::_Future::•<core::List<core::int*>*>();
   core::bool* :is_sync = false;
   FutureOr<core::List<core::int*>*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -86,7 +83,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.strong.transformed.expect
index 9eb7030..a59d7c8 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.strong.transformed.expect
@@ -25,7 +25,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -46,7 +45,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.strong.transformed.expect
index b214c57..611598b 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.strong.transformed.expect
@@ -12,7 +12,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -32,7 +31,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.strong.transformed.expect
index fee2dcd..448d38f 100644
--- a/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.strong.transformed.expect
@@ -35,7 +35,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -61,7 +60,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/generator_closure.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/generator_closure.dart.strong.transformed.expect
index b1d5d53..2f34a0b 100644
--- a/pkg/front_end/testcases/inference/generator_closure.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/generator_closure.dart.strong.transformed.expect
@@ -10,7 +10,6 @@
   self::foo(() → asy::Stream<core::int*>* /* originally async* */ {
     asy::_AsyncStarStreamController<core::int*>* :controller;
     dynamic :controller_stream;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -39,7 +38,6 @@
       finally {
         :controller.{asy::_AsyncStarStreamController::close}();
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :controller = new asy::_AsyncStarStreamController::•<core::int*>(:async_op);
diff --git a/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.strong.transformed.expect
index c1b45ec..eeeccd2 100644
--- a/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.strong.transformed.expect
@@ -10,7 +10,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -28,7 +27,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -42,7 +40,6 @@
     final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
     core::bool* :is_sync = false;
     FutureOr<core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -60,7 +57,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -87,7 +83,6 @@
   function f5() → asy::Stream<core::int*>* /* originally async* */ {
     asy::_AsyncStarStreamController<core::int*>* :controller;
     dynamic :controller_stream;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -112,7 +107,6 @@
       finally {
         :controller.{asy::_AsyncStarStreamController::close}();
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :controller = new asy::_AsyncStarStreamController::•<core::int*>(:async_op);
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.strong.transformed.expect
index 7ef736b..4aa6578 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.strong.transformed.expect
@@ -59,7 +59,6 @@
     final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
     core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -104,7 +103,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -130,7 +128,6 @@
     final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
     core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -176,7 +173,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -249,7 +245,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -451,7 +446,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference/local_return_and_yield.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/local_return_and_yield.dart.strong.transformed.expect
index 273bbbe..57169ca 100644
--- a/pkg/front_end/testcases/inference/local_return_and_yield.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/local_return_and_yield.dart.strong.transformed.expect
@@ -22,7 +22,6 @@
     final asy::_Future<(core::int*) →* core::int*>* :async_future = new asy::_Future::•<(core::int*) →* core::int*>();
     core::bool* :is_sync = false;
     FutureOr<(core::int*) →* core::int*>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -43,7 +42,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -87,7 +85,6 @@
   function e() → asy::Stream<(core::int*) →* core::int*>* /* originally async* */ {
     asy::_AsyncStarStreamController<(core::int*) →* core::int*>* :controller;
     dynamic :controller_stream;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -112,7 +109,6 @@
       finally {
         :controller.{asy::_AsyncStarStreamController::close}();
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :controller = new asy::_AsyncStarStreamController::•<(core::int*) →* core::int*>(:async_op);
@@ -122,7 +118,6 @@
   function f() → asy::Stream<(core::int*) →* core::int*>* /* originally async* */ {
     asy::_AsyncStarStreamController<(core::int*) →* core::int*>* :controller;
     dynamic :controller_stream;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -147,7 +142,6 @@
       finally {
         :controller.{asy::_AsyncStarStreamController::close}();
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :controller = new asy::_AsyncStarStreamController::•<(core::int*) →* core::int*>(:async_op);
diff --git a/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.strong.transformed.expect
index 0028ef6..340170ef 100644
--- a/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.strong.transformed.expect
@@ -21,7 +21,6 @@
   final asy::_Future<(core::int*) →* core::int*>* :async_future = new asy::_Future::•<(core::int*) →* core::int*>();
   core::bool* :is_sync = false;
   FutureOr<(core::int*) →* core::int*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -42,7 +41,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -86,7 +84,6 @@
 static method e() → asy::Stream<(core::int*) →* core::int*>* /* originally async* */ {
   asy::_AsyncStarStreamController<(core::int*) →* core::int*>* :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -111,7 +108,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<(core::int*) →* core::int*>(:async_op);
@@ -121,7 +117,6 @@
 static method f() → asy::Stream<(core::int*) →* core::int*>* /* originally async* */ {
   asy::_AsyncStarStreamController<(core::int*) →* core::int*>* :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -146,7 +141,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<(core::int*) →* core::int*>(:async_op);
diff --git a/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.strong.transformed.expect
index 1af0a51..75740f5 100644
--- a/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.strong.transformed.expect
@@ -31,7 +31,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -129,7 +128,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.strong.transformed.expect
index 0d9cdbd..c9f269d 100644
--- a/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.strong.transformed.expect
@@ -47,7 +47,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -208,7 +207,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/late_lowering/later.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/later.dart.strong.transformed.expect
index d9e572e..0ac77b2 100644
--- a/pkg/front_end/testcases/late_lowering/later.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/later.dart.strong.transformed.expect
@@ -140,7 +140,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -185,7 +184,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -196,7 +194,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -225,7 +222,6 @@
             final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
             core::bool* :is_sync = false;
             FutureOr<dynamic>? :return_value;
-            dynamic :async_stack_trace;
             (dynamic) → dynamic :async_op_then;
             (core::Object, core::StackTrace) → dynamic :async_op_error;
             core::int :await_jump_var = 0;
@@ -245,7 +241,6 @@
               on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
                 asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
               }
-            :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
             :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
             :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
             :async_op.call();
@@ -261,7 +256,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -276,4 +270,4 @@
 
 Extra constant evaluation status:
 Evaluated: VariableGet @ org-dartlang-testcase:///later.dart:46:18 -> IntConstant(42)
-Extra constant evaluation: evaluated: 216, effectively constant: 1
+Extra constant evaluation: evaluated: 207, effectively constant: 1
diff --git a/pkg/front_end/testcases/late_lowering/later.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/later.dart.weak.transformed.expect
index abfa48e..ffd2c5b 100644
--- a/pkg/front_end/testcases/late_lowering/later.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/later.dart.weak.transformed.expect
@@ -160,7 +160,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -205,7 +204,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -216,7 +214,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -263,7 +260,6 @@
               final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
               core::bool* :is_sync = false;
               FutureOr<dynamic>? :return_value;
-              dynamic :async_stack_trace;
               (dynamic) → dynamic :async_op_then;
               (core::Object, core::StackTrace) → dynamic :async_op_error;
               core::int :await_jump_var = 0;
@@ -283,7 +279,6 @@
                 on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
                   asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
                 }
-              :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
               :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
               :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
               :async_op.call();
@@ -305,7 +300,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.transformed.expect
index 2c1bc3e..d02c7bc 100644
--- a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.transformed.expect
@@ -276,7 +276,6 @@
     final asy::_Future<self::A> :async_future = new asy::_Future::•<self::A>();
     core::bool* :is_sync = false;
     FutureOr<self::A>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -309,7 +308,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -412,7 +410,6 @@
     final asy::_Future<self::A> :async_future = new asy::_Future::•<self::A>();
     core::bool* :is_sync = false;
     FutureOr<self::A>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -443,7 +440,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -470,4 +466,4 @@
 Evaluated: MethodInvocation @ org-dartlang-testcase:///assignability_error_messages.dart:77:14 -> BoolConstant(true)
 Evaluated: VariableGet @ org-dartlang-testcase:///assignability_error_messages.dart:77:14 -> NullConstant(null)
 Evaluated: VariableGet @ org-dartlang-testcase:///assignability_error_messages.dart:77:14 -> NullConstant(null)
-Extra constant evaluation: evaluated: 216, effectively constant: 12
+Extra constant evaluation: evaluated: 210, effectively constant: 12
diff --git a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.transformed.expect
index a63f3a4..9ec61e2 100644
--- a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.transformed.expect
@@ -276,7 +276,6 @@
     final asy::_Future<self::A> :async_future = new asy::_Future::•<self::A>();
     core::bool* :is_sync = false;
     FutureOr<self::A>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -309,7 +308,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -412,7 +410,6 @@
     final asy::_Future<self::A> :async_future = new asy::_Future::•<self::A>();
     core::bool* :is_sync = false;
     FutureOr<self::A>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -443,7 +440,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/flutter_issue64155.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/flutter_issue64155.dart.strong.transformed.expect
index cfe4af3..c6344c1 100644
--- a/pkg/front_end/testcases/nnbd/flutter_issue64155.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/flutter_issue64155.dart.strong.transformed.expect
@@ -9,7 +9,6 @@
     final asy::_Future<self::TestMixin::T%> :async_future = new asy::_Future::•<self::TestMixin::T%>();
     core::bool* :is_sync = false;
     FutureOr<self::TestMixin::T%>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -45,7 +44,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -79,7 +77,6 @@
     final asy::_Future<core::String> :async_future = new asy::_Future::•<core::String>();
     core::bool* :is_sync = false;
     FutureOr<core::String>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -115,7 +112,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -140,7 +136,6 @@
     final asy::_Future<core::String> :async_future = new asy::_Future::•<core::String>();
     core::bool* :is_sync = false;
     FutureOr<core::String>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -176,7 +171,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/flutter_issue64155.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/flutter_issue64155.dart.weak.transformed.expect
index cfe4af3..c6344c1 100644
--- a/pkg/front_end/testcases/nnbd/flutter_issue64155.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/flutter_issue64155.dart.weak.transformed.expect
@@ -9,7 +9,6 @@
     final asy::_Future<self::TestMixin::T%> :async_future = new asy::_Future::•<self::TestMixin::T%>();
     core::bool* :is_sync = false;
     FutureOr<self::TestMixin::T%>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -45,7 +44,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -79,7 +77,6 @@
     final asy::_Future<core::String> :async_future = new asy::_Future::•<core::String>();
     core::bool* :is_sync = false;
     FutureOr<core::String>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -115,7 +112,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -140,7 +136,6 @@
     final asy::_Future<core::String> :async_future = new asy::_Future::•<core::String>();
     core::bool* :is_sync = false;
     FutureOr<core::String>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -176,7 +171,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue41108.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41108.dart.strong.transformed.expect
index 50e24cb..eddf0ff 100644
--- a/pkg/front_end/testcases/nnbd/issue41108.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41108.dart.strong.transformed.expect
@@ -16,7 +16,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -39,7 +38,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue41108.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41108.dart.weak.transformed.expect
index 8631965..af24560 100644
--- a/pkg/front_end/testcases/nnbd/issue41108.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41108.dart.weak.transformed.expect
@@ -16,7 +16,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -39,7 +38,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue41114.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41114.dart.strong.transformed.expect
index 0d0a5f6..5f03cd5 100644
--- a/pkg/front_end/testcases/nnbd/issue41114.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41114.dart.strong.transformed.expect
@@ -7,7 +7,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -27,7 +26,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue41114.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41114.dart.weak.transformed.expect
index 0d0a5f6..5f03cd5 100644
--- a/pkg/front_end/testcases/nnbd/issue41114.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41114.dart.weak.transformed.expect
@@ -7,7 +7,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -27,7 +26,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue41156.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41156.dart.strong.transformed.expect
index 2d5c92d..3e9bef1 100644
--- a/pkg/front_end/testcases/nnbd/issue41156.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41156.dart.strong.transformed.expect
@@ -59,7 +59,6 @@
     final asy::_Future<Never> :async_future = new asy::_Future::•<Never>();
     core::bool* :is_sync = false;
     FutureOr<Never>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -77,7 +76,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -88,7 +86,6 @@
     final asy::_Future<Never> :async_future = new asy::_Future::•<Never>();
     core::bool* :is_sync = false;
     FutureOr<Never>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -105,7 +102,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -116,7 +112,6 @@
     final asy::_Future<Never> :async_future = new asy::_Future::•<Never>();
     core::bool* :is_sync = false;
     FutureOr<Never>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -134,7 +129,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -145,7 +139,6 @@
     final asy::_Future<Never> :async_future = new asy::_Future::•<Never>();
     core::bool* :is_sync = false;
     FutureOr<Never>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -163,7 +156,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -174,7 +166,6 @@
     final asy::_Future<Never> :async_future = new asy::_Future::•<Never>();
     core::bool* :is_sync = false;
     FutureOr<Never>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -191,7 +182,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -202,7 +192,6 @@
     final asy::_Future<Never> :async_future = new asy::_Future::•<Never>();
     core::bool* :is_sync = false;
     FutureOr<Never>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -220,7 +209,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -232,7 +220,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -285,7 +272,6 @@
           final asy::_Future<core::String> :async_future = new asy::_Future::•<core::String>();
           core::bool* :is_sync = false;
           FutureOr<core::String>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -310,7 +296,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -321,7 +306,6 @@
           final asy::_Future<core::String> :async_future = new asy::_Future::•<core::String>();
           core::bool* :is_sync = false;
           FutureOr<core::String>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -347,7 +331,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -358,7 +341,6 @@
           final asy::_Future<core::String> :async_future = new asy::_Future::•<core::String>();
           core::bool* :is_sync = false;
           FutureOr<core::String>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -383,7 +365,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -394,7 +375,6 @@
           final asy::_Future<core::String> :async_future = new asy::_Future::•<core::String>();
           core::bool* :is_sync = false;
           FutureOr<core::String>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -420,7 +400,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -434,7 +413,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue41156.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41156.dart.weak.transformed.expect
index f657157..e3ff8f7 100644
--- a/pkg/front_end/testcases/nnbd/issue41156.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41156.dart.weak.transformed.expect
@@ -60,7 +60,6 @@
     final asy::_Future<Never> :async_future = new asy::_Future::•<Never>();
     core::bool* :is_sync = false;
     FutureOr<Never>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -78,7 +77,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -89,7 +87,6 @@
     final asy::_Future<Never> :async_future = new asy::_Future::•<Never>();
     core::bool* :is_sync = false;
     FutureOr<Never>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -106,7 +103,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -117,7 +113,6 @@
     final asy::_Future<Never> :async_future = new asy::_Future::•<Never>();
     core::bool* :is_sync = false;
     FutureOr<Never>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -135,7 +130,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -146,7 +140,6 @@
     final asy::_Future<Never> :async_future = new asy::_Future::•<Never>();
     core::bool* :is_sync = false;
     FutureOr<Never>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -164,7 +157,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -175,7 +167,6 @@
     final asy::_Future<Never> :async_future = new asy::_Future::•<Never>();
     core::bool* :is_sync = false;
     FutureOr<Never>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -192,7 +183,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -203,7 +193,6 @@
     final asy::_Future<Never> :async_future = new asy::_Future::•<Never>();
     core::bool* :is_sync = false;
     FutureOr<Never>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -221,7 +210,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -233,7 +221,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -286,7 +273,6 @@
           final asy::_Future<core::String> :async_future = new asy::_Future::•<core::String>();
           core::bool* :is_sync = false;
           FutureOr<core::String>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -311,7 +297,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -322,7 +307,6 @@
           final asy::_Future<core::String> :async_future = new asy::_Future::•<core::String>();
           core::bool* :is_sync = false;
           FutureOr<core::String>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -348,7 +332,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -359,7 +342,6 @@
           final asy::_Future<core::String> :async_future = new asy::_Future::•<core::String>();
           core::bool* :is_sync = false;
           FutureOr<core::String>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -384,7 +366,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -395,7 +376,6 @@
           final asy::_Future<core::String> :async_future = new asy::_Future::•<core::String>();
           core::bool* :is_sync = false;
           FutureOr<core::String>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -421,7 +401,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -435,7 +414,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue41437a.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41437a.dart.strong.transformed.expect
index 049ebe6..b4ab7d2 100644
--- a/pkg/front_end/testcases/nnbd/issue41437a.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41437a.dart.strong.transformed.expect
@@ -37,7 +37,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -55,7 +54,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -66,7 +64,6 @@
   final asy::_Future<core::bool> :async_future = new asy::_Future::•<core::bool>();
   core::bool* :is_sync = false;
   FutureOr<core::bool>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -84,7 +81,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -95,7 +91,6 @@
   final asy::_Future<core::bool> :async_future = new asy::_Future::•<core::bool>();
   core::bool* :is_sync = false;
   FutureOr<core::bool>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -115,7 +110,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -130,7 +124,6 @@
   final asy::_Future<core::bool> :async_future = new asy::_Future::•<core::bool>();
   core::bool* :is_sync = false;
   FutureOr<core::bool>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -150,7 +143,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -168,7 +160,6 @@
   final asy::_Future<core::bool> :async_future = new asy::_Future::•<core::bool>();
   core::bool* :is_sync = false;
   FutureOr<core::bool>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -186,7 +177,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -197,7 +187,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -210,7 +199,6 @@
           final asy::_Future<core::bool> :async_future = new asy::_Future::•<core::bool>();
           core::bool* :is_sync = false;
           FutureOr<core::bool>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -230,7 +218,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -245,7 +232,6 @@
           final asy::_Future<core::bool> :async_future = new asy::_Future::•<core::bool>();
           core::bool* :is_sync = false;
           FutureOr<core::bool>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -265,7 +251,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -283,7 +268,6 @@
           final asy::_Future<core::bool> :async_future = new asy::_Future::•<core::bool>();
           core::bool* :is_sync = false;
           FutureOr<core::bool>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -301,7 +285,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -315,7 +298,6 @@
           final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
           core::bool* :is_sync = false;
           FutureOr<dynamic>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -335,7 +317,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -351,7 +332,6 @@
           final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
           core::bool* :is_sync = false;
           FutureOr<dynamic>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -371,7 +351,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -387,7 +366,6 @@
           final asy::_Future<core::bool> :async_future = new asy::_Future::•<core::bool>();
           core::bool* :is_sync = false;
           FutureOr<core::bool>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -405,7 +383,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -419,7 +396,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue41437a.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41437a.dart.weak.transformed.expect
index 049ebe6..b4ab7d2 100644
--- a/pkg/front_end/testcases/nnbd/issue41437a.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41437a.dart.weak.transformed.expect
@@ -37,7 +37,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -55,7 +54,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -66,7 +64,6 @@
   final asy::_Future<core::bool> :async_future = new asy::_Future::•<core::bool>();
   core::bool* :is_sync = false;
   FutureOr<core::bool>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -84,7 +81,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -95,7 +91,6 @@
   final asy::_Future<core::bool> :async_future = new asy::_Future::•<core::bool>();
   core::bool* :is_sync = false;
   FutureOr<core::bool>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -115,7 +110,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -130,7 +124,6 @@
   final asy::_Future<core::bool> :async_future = new asy::_Future::•<core::bool>();
   core::bool* :is_sync = false;
   FutureOr<core::bool>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -150,7 +143,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -168,7 +160,6 @@
   final asy::_Future<core::bool> :async_future = new asy::_Future::•<core::bool>();
   core::bool* :is_sync = false;
   FutureOr<core::bool>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -186,7 +177,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -197,7 +187,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -210,7 +199,6 @@
           final asy::_Future<core::bool> :async_future = new asy::_Future::•<core::bool>();
           core::bool* :is_sync = false;
           FutureOr<core::bool>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -230,7 +218,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -245,7 +232,6 @@
           final asy::_Future<core::bool> :async_future = new asy::_Future::•<core::bool>();
           core::bool* :is_sync = false;
           FutureOr<core::bool>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -265,7 +251,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -283,7 +268,6 @@
           final asy::_Future<core::bool> :async_future = new asy::_Future::•<core::bool>();
           core::bool* :is_sync = false;
           FutureOr<core::bool>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -301,7 +285,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -315,7 +298,6 @@
           final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
           core::bool* :is_sync = false;
           FutureOr<dynamic>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -335,7 +317,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -351,7 +332,6 @@
           final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
           core::bool* :is_sync = false;
           FutureOr<dynamic>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -371,7 +351,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -387,7 +366,6 @@
           final asy::_Future<core::bool> :async_future = new asy::_Future::•<core::bool>();
           core::bool* :is_sync = false;
           FutureOr<core::bool>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -405,7 +383,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -419,7 +396,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue41437b.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41437b.dart.strong.transformed.expect
index fb81d0d..1cc9b7b 100644
--- a/pkg/front_end/testcases/nnbd/issue41437b.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41437b.dart.strong.transformed.expect
@@ -146,7 +146,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -291,7 +290,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue41437b.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41437b.dart.weak.transformed.expect
index fb81d0d..1cc9b7b 100644
--- a/pkg/front_end/testcases/nnbd/issue41437b.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41437b.dart.weak.transformed.expect
@@ -146,7 +146,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -291,7 +290,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue41437c.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41437c.dart.strong.transformed.expect
index 5bfffb3..6fa863c 100644
--- a/pkg/front_end/testcases/nnbd/issue41437c.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41437c.dart.strong.transformed.expect
@@ -46,7 +46,6 @@
 static method getStreamNull() → asy::Stream<dynamic> /* originally async* */ {
   asy::_AsyncStarStreamController<dynamic>? :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -71,7 +70,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<dynamic>(:async_op);
@@ -81,7 +79,6 @@
 static method getStreamBool() → asy::Stream<core::bool> /* originally async* */ {
   asy::_AsyncStarStreamController<core::bool>? :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -106,7 +103,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<core::bool>(:async_op);
@@ -116,7 +112,6 @@
 static method test1() → asy::Stream<core::bool> /* originally async* */ {
   asy::_AsyncStarStreamController<core::bool>? :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -141,7 +136,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<core::bool>(:async_op);
@@ -155,7 +149,6 @@
 static method test4() → asy::Stream<core::bool> /* originally async* */ {
   asy::_AsyncStarStreamController<core::bool>? :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -183,7 +176,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<core::bool>(:async_op);
@@ -200,7 +192,6 @@
 static method test7() → asy::Stream<core::bool> /* originally async* */ {
   asy::_AsyncStarStreamController<core::bool>? :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -225,7 +216,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<core::bool>(:async_op);
@@ -236,7 +226,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -248,7 +237,6 @@
         function test1() → asy::Stream<core::bool> /* originally async* */ {
           asy::_AsyncStarStreamController<core::bool>? :controller;
           dynamic :controller_stream;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -273,7 +261,6 @@
             finally {
               :controller.{asy::_AsyncStarStreamController::close}();
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :controller = new asy::_AsyncStarStreamController::•<core::bool>(:async_op);
@@ -287,7 +274,6 @@
         function test4() → asy::Stream<core::bool> /* originally async* */ {
           asy::_AsyncStarStreamController<core::bool>? :controller;
           dynamic :controller_stream;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -315,7 +301,6 @@
             finally {
               :controller.{asy::_AsyncStarStreamController::close}();
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :controller = new asy::_AsyncStarStreamController::•<core::bool>(:async_op);
@@ -332,7 +317,6 @@
         function test7() → asy::Stream<core::bool> /* originally async* */ {
           asy::_AsyncStarStreamController<core::bool>? :controller;
           dynamic :controller_stream;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -357,7 +341,6 @@
             finally {
               :controller.{asy::_AsyncStarStreamController::close}();
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :controller = new asy::_AsyncStarStreamController::•<core::bool>(:async_op);
@@ -370,7 +353,6 @@
     ^" in (() → asy::Stream<dynamic> /* originally async* */ {
           asy::_AsyncStarStreamController<dynamic>? :controller;
           dynamic :controller_stream;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -395,7 +377,6 @@
             finally {
               :controller.{asy::_AsyncStarStreamController::close}();
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :controller = new asy::_AsyncStarStreamController::•<dynamic>(:async_op);
@@ -410,7 +391,6 @@
     ^" in (() → asy::Stream<dynamic> /* originally async* */ {
           asy::_AsyncStarStreamController<dynamic>? :controller;
           dynamic :controller_stream;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -435,7 +415,6 @@
             finally {
               :controller.{asy::_AsyncStarStreamController::close}();
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :controller = new asy::_AsyncStarStreamController::•<dynamic>(:async_op);
@@ -450,7 +429,6 @@
         asy::Stream<core::bool> var7 = (() → asy::Stream<core::bool> /* originally async* */ {
           asy::_AsyncStarStreamController<core::bool>? :controller;
           dynamic :controller_stream;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -475,7 +453,6 @@
             finally {
               :controller.{asy::_AsyncStarStreamController::close}();
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :controller = new asy::_AsyncStarStreamController::•<core::bool>(:async_op);
@@ -489,7 +466,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue41437c.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41437c.dart.weak.transformed.expect
index 5bfffb3..6fa863c 100644
--- a/pkg/front_end/testcases/nnbd/issue41437c.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41437c.dart.weak.transformed.expect
@@ -46,7 +46,6 @@
 static method getStreamNull() → asy::Stream<dynamic> /* originally async* */ {
   asy::_AsyncStarStreamController<dynamic>? :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -71,7 +70,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<dynamic>(:async_op);
@@ -81,7 +79,6 @@
 static method getStreamBool() → asy::Stream<core::bool> /* originally async* */ {
   asy::_AsyncStarStreamController<core::bool>? :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -106,7 +103,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<core::bool>(:async_op);
@@ -116,7 +112,6 @@
 static method test1() → asy::Stream<core::bool> /* originally async* */ {
   asy::_AsyncStarStreamController<core::bool>? :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -141,7 +136,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<core::bool>(:async_op);
@@ -155,7 +149,6 @@
 static method test4() → asy::Stream<core::bool> /* originally async* */ {
   asy::_AsyncStarStreamController<core::bool>? :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -183,7 +176,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<core::bool>(:async_op);
@@ -200,7 +192,6 @@
 static method test7() → asy::Stream<core::bool> /* originally async* */ {
   asy::_AsyncStarStreamController<core::bool>? :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -225,7 +216,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<core::bool>(:async_op);
@@ -236,7 +226,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -248,7 +237,6 @@
         function test1() → asy::Stream<core::bool> /* originally async* */ {
           asy::_AsyncStarStreamController<core::bool>? :controller;
           dynamic :controller_stream;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -273,7 +261,6 @@
             finally {
               :controller.{asy::_AsyncStarStreamController::close}();
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :controller = new asy::_AsyncStarStreamController::•<core::bool>(:async_op);
@@ -287,7 +274,6 @@
         function test4() → asy::Stream<core::bool> /* originally async* */ {
           asy::_AsyncStarStreamController<core::bool>? :controller;
           dynamic :controller_stream;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -315,7 +301,6 @@
             finally {
               :controller.{asy::_AsyncStarStreamController::close}();
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :controller = new asy::_AsyncStarStreamController::•<core::bool>(:async_op);
@@ -332,7 +317,6 @@
         function test7() → asy::Stream<core::bool> /* originally async* */ {
           asy::_AsyncStarStreamController<core::bool>? :controller;
           dynamic :controller_stream;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -357,7 +341,6 @@
             finally {
               :controller.{asy::_AsyncStarStreamController::close}();
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :controller = new asy::_AsyncStarStreamController::•<core::bool>(:async_op);
@@ -370,7 +353,6 @@
     ^" in (() → asy::Stream<dynamic> /* originally async* */ {
           asy::_AsyncStarStreamController<dynamic>? :controller;
           dynamic :controller_stream;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -395,7 +377,6 @@
             finally {
               :controller.{asy::_AsyncStarStreamController::close}();
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :controller = new asy::_AsyncStarStreamController::•<dynamic>(:async_op);
@@ -410,7 +391,6 @@
     ^" in (() → asy::Stream<dynamic> /* originally async* */ {
           asy::_AsyncStarStreamController<dynamic>? :controller;
           dynamic :controller_stream;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -435,7 +415,6 @@
             finally {
               :controller.{asy::_AsyncStarStreamController::close}();
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :controller = new asy::_AsyncStarStreamController::•<dynamic>(:async_op);
@@ -450,7 +429,6 @@
         asy::Stream<core::bool> var7 = (() → asy::Stream<core::bool> /* originally async* */ {
           asy::_AsyncStarStreamController<core::bool>? :controller;
           dynamic :controller_stream;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -475,7 +453,6 @@
             finally {
               :controller.{asy::_AsyncStarStreamController::close}();
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :controller = new asy::_AsyncStarStreamController::•<core::bool>(:async_op);
@@ -489,7 +466,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue41602.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41602.dart.strong.transformed.expect
index 1add5c8..e85bc0e 100644
--- a/pkg/front_end/testcases/nnbd/issue41602.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41602.dart.strong.transformed.expect
@@ -19,7 +19,6 @@
   final asy::_Future<void> :async_future = new asy::_Future::•<void>();
   core::bool* :is_sync = false;
   FutureOr<void>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -34,7 +33,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -46,7 +44,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -61,7 +58,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -72,7 +68,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -93,7 +88,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -104,7 +98,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -123,7 +116,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue41602.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41602.dart.weak.transformed.expect
index 1add5c8..e85bc0e 100644
--- a/pkg/front_end/testcases/nnbd/issue41602.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41602.dart.weak.transformed.expect
@@ -19,7 +19,6 @@
   final asy::_Future<void> :async_future = new asy::_Future::•<void>();
   core::bool* :is_sync = false;
   FutureOr<void>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -34,7 +33,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -46,7 +44,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -61,7 +58,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -72,7 +68,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -93,7 +88,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -104,7 +98,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -123,7 +116,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue41697.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41697.dart.strong.transformed.expect
index af60f0b..b287a57 100644
--- a/pkg/front_end/testcases/nnbd/issue41697.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41697.dart.strong.transformed.expect
@@ -38,7 +38,6 @@
     final asy::_Future<core::num> :async_future = new asy::_Future::•<core::num>();
     core::bool* :is_sync = false;
     FutureOr<core::num>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -58,7 +57,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -76,7 +74,6 @@
     final asy::_Future<core::num> :async_future = new asy::_Future::•<core::num>();
     core::bool* :is_sync = false;
     FutureOr<core::num>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -99,7 +96,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue41697.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41697.dart.weak.transformed.expect
index af60f0b..b287a57 100644
--- a/pkg/front_end/testcases/nnbd/issue41697.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41697.dart.weak.transformed.expect
@@ -38,7 +38,6 @@
     final asy::_Future<core::num> :async_future = new asy::_Future::•<core::num>();
     core::bool* :is_sync = false;
     FutureOr<core::num>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -58,7 +57,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -76,7 +74,6 @@
     final asy::_Future<core::num> :async_future = new asy::_Future::•<core::num>();
     core::bool* :is_sync = false;
     FutureOr<core::num>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -99,7 +96,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue42540.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue42540.dart.strong.transformed.expect
index 630569b..4e127a6 100644
--- a/pkg/front_end/testcases/nnbd/issue42540.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42540.dart.strong.transformed.expect
@@ -9,7 +9,6 @@
   final asy::_Future<core::Object> :async_future = new asy::_Future::•<core::Object>();
   core::bool* :is_sync = false;
   FutureOr<core::Object>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -31,7 +30,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue42540.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue42540.dart.weak.transformed.expect
index d317b87..e61b30d 100644
--- a/pkg/front_end/testcases/nnbd/issue42540.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42540.dart.weak.transformed.expect
@@ -9,7 +9,6 @@
   final asy::_Future<core::Object> :async_future = new asy::_Future::•<core::Object>();
   core::bool* :is_sync = false;
   FutureOr<core::Object>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -31,7 +30,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue42743.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue42743.dart.strong.transformed.expect
index 47601b2..e489262 100644
--- a/pkg/front_end/testcases/nnbd/issue42743.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42743.dart.strong.transformed.expect
@@ -7,7 +7,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -25,7 +24,6 @@
           final asy::_Future<core::int?> :async_future = new asy::_Future::•<core::int?>();
           core::bool* :is_sync = false;
           FutureOr<core::int?>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -45,7 +43,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -59,7 +56,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/issue42743.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue42743.dart.weak.transformed.expect
index 47601b2..e489262 100644
--- a/pkg/front_end/testcases/nnbd/issue42743.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42743.dart.weak.transformed.expect
@@ -7,7 +7,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -25,7 +24,6 @@
           final asy::_Future<core::int?> :async_future = new asy::_Future::•<core::int?>();
           core::bool* :is_sync = false;
           FutureOr<core::int?>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -45,7 +43,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -59,7 +56,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/later.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/later.dart.strong.transformed.expect
index 25b17c9..c198bf3 100644
--- a/pkg/front_end/testcases/nnbd/later.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/later.dart.strong.transformed.expect
@@ -127,7 +127,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -172,7 +171,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -183,7 +181,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -207,7 +204,6 @@
             final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
             core::bool* :is_sync = false;
             FutureOr<dynamic>? :return_value;
-            dynamic :async_stack_trace;
             (dynamic) → dynamic :async_op_then;
             (core::Object, core::StackTrace) → dynamic :async_op_error;
             core::int :await_jump_var = 0;
@@ -227,7 +223,6 @@
               on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
                 asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
               }
-            :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
             :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
             :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
             :async_op.call();
@@ -242,7 +237,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/later.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/later.dart.weak.transformed.expect
index 25b17c9..c198bf3 100644
--- a/pkg/front_end/testcases/nnbd/later.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/later.dart.weak.transformed.expect
@@ -127,7 +127,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -172,7 +171,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -183,7 +181,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -207,7 +204,6 @@
             final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
             core::bool* :is_sync = false;
             FutureOr<dynamic>? :return_value;
-            dynamic :async_stack_trace;
             (dynamic) → dynamic :async_op_then;
             (core::Object, core::StackTrace) → dynamic :async_op_error;
             core::int :await_jump_var = 0;
@@ -227,7 +223,6 @@
               on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
                 asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
               }
-            :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
             :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
             :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
             :async_op.call();
@@ -242,7 +237,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/return_async.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/return_async.dart.strong.transformed.expect
index 8c64d78..b9094ae 100644
--- a/pkg/front_end/testcases/nnbd/return_async.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/return_async.dart.strong.transformed.expect
@@ -13,7 +13,6 @@
   final asy::_Future<void> :async_future = new asy::_Future::•<void>();
   core::bool* :is_sync = false;
   FutureOr<void>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -34,7 +33,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -45,7 +43,6 @@
   final asy::_Future<void> :async_future = new asy::_Future::•<void>();
   core::bool* :is_sync = false;
   FutureOr<void>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -66,7 +63,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -77,7 +73,6 @@
   final asy::_Future<void> :async_future = new asy::_Future::•<void>();
   core::bool* :is_sync = false;
   FutureOr<void>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -97,7 +92,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -108,7 +102,6 @@
   final asy::_Future<void> :async_future = new asy::_Future::•<void>();
   core::bool* :is_sync = false;
   FutureOr<void>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -122,7 +115,6 @@
           final asy::_Future<Null> :async_future = new asy::_Future::•<Null>();
           core::bool* :is_sync = false;
           FutureOr<Null>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -142,7 +134,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -160,7 +151,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/return_async.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/return_async.dart.weak.transformed.expect
index 8c64d78..b9094ae 100644
--- a/pkg/front_end/testcases/nnbd/return_async.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/return_async.dart.weak.transformed.expect
@@ -13,7 +13,6 @@
   final asy::_Future<void> :async_future = new asy::_Future::•<void>();
   core::bool* :is_sync = false;
   FutureOr<void>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -34,7 +33,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -45,7 +43,6 @@
   final asy::_Future<void> :async_future = new asy::_Future::•<void>();
   core::bool* :is_sync = false;
   FutureOr<void>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -66,7 +63,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -77,7 +73,6 @@
   final asy::_Future<void> :async_future = new asy::_Future::•<void>();
   core::bool* :is_sync = false;
   FutureOr<void>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -97,7 +92,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -108,7 +102,6 @@
   final asy::_Future<void> :async_future = new asy::_Future::•<void>();
   core::bool* :is_sync = false;
   FutureOr<void>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -122,7 +115,6 @@
           final asy::_Future<Null> :async_future = new asy::_Future::•<Null>();
           core::bool* :is_sync = false;
           FutureOr<Null>? :return_value;
-          dynamic :async_stack_trace;
           (dynamic) → dynamic :async_op_then;
           (core::Object, core::StackTrace) → dynamic :async_op_error;
           core::int :await_jump_var = 0;
@@ -142,7 +134,6 @@
             on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -160,7 +151,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/nnbd/return_null.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/return_null.dart.strong.transformed.expect
index 66eca58..dfdc501 100644
--- a/pkg/front_end/testcases/nnbd/return_null.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/return_null.dart.strong.transformed.expect
@@ -97,7 +97,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -112,7 +111,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -123,7 +121,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -138,7 +135,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -149,7 +145,6 @@
   final asy::_Future<core::int> :async_future = new asy::_Future::•<core::int>();
   core::bool* :is_sync = false;
   FutureOr<core::int>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -169,7 +164,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -180,7 +174,6 @@
   final asy::_Future<core::int?> :async_future = new asy::_Future::•<core::int?>();
   core::bool* :is_sync = false;
   FutureOr<core::int?>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -195,7 +188,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -206,7 +198,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -221,7 +212,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -232,7 +222,6 @@
   final asy::_Future<core::int?> :async_future = new asy::_Future::•<core::int?>();
   core::bool* :is_sync = false;
   FutureOr<core::int?>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -250,7 +239,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -261,7 +249,6 @@
   final asy::_Future<core::int?> :async_future = new asy::_Future::•<core::int?>();
   core::bool* :is_sync = false;
   FutureOr<core::int?>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -276,7 +263,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -298,7 +284,6 @@
 static method yieldAsync() → asy::Stream<dynamic> /* originally async* */ {
   asy::_AsyncStarStreamController<dynamic>? :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -316,7 +301,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<dynamic>(:async_op);
@@ -381,7 +365,6 @@
     final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
     core::bool* :is_sync = false;
     FutureOr<dynamic>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -396,7 +379,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -407,7 +389,6 @@
     final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
     core::bool* :is_sync = false;
     FutureOr<dynamic>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -422,7 +403,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -433,7 +413,6 @@
     final asy::_Future<core::int> :async_future = new asy::_Future::•<core::int>();
     core::bool* :is_sync = false;
     FutureOr<core::int>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -453,7 +432,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -464,7 +442,6 @@
     final asy::_Future<core::int?> :async_future = new asy::_Future::•<core::int?>();
     core::bool* :is_sync = false;
     FutureOr<core::int?>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -479,7 +456,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -490,7 +466,6 @@
     final asy::_Future<Null> :async_future = new asy::_Future::•<Null>();
     core::bool* :is_sync = false;
     FutureOr<Null>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -505,7 +480,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -516,7 +490,6 @@
     final asy::_Future<core::int?> :async_future = new asy::_Future::•<core::int?>();
     core::bool* :is_sync = false;
     FutureOr<core::int?>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -534,7 +507,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -545,7 +517,6 @@
     final asy::_Future<core::int?> :async_future = new asy::_Future::•<core::int?>();
     core::bool* :is_sync = false;
     FutureOr<core::int?>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -560,7 +531,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -582,7 +552,6 @@
   function yieldAsync() → asy::Stream<dynamic> /* originally async* */ {
     asy::_AsyncStarStreamController<dynamic>? :controller;
     dynamic :controller_stream;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -600,7 +569,6 @@
       finally {
         :controller.{asy::_AsyncStarStreamController::close}();
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :controller = new asy::_AsyncStarStreamController::•<dynamic>(:async_op);
@@ -674,4 +642,4 @@
 Evaluated: MethodInvocation @ org-dartlang-testcase:///return_null.dart:75:14 -> BoolConstant(true)
 Evaluated: VariableGet @ org-dartlang-testcase:///return_null.dart:75:14 -> NullConstant(null)
 Evaluated: VariableGet @ org-dartlang-testcase:///return_null.dart:75:14 -> NullConstant(null)
-Extra constant evaluation: evaluated: 442, effectively constant: 12
+Extra constant evaluation: evaluated: 394, effectively constant: 12
diff --git a/pkg/front_end/testcases/nnbd/return_null.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/return_null.dart.weak.transformed.expect
index 4b3b79c..0c0ae45 100644
--- a/pkg/front_end/testcases/nnbd/return_null.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/return_null.dart.weak.transformed.expect
@@ -98,7 +98,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -113,7 +112,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -124,7 +122,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -139,7 +136,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -150,7 +146,6 @@
   final asy::_Future<core::int> :async_future = new asy::_Future::•<core::int>();
   core::bool* :is_sync = false;
   FutureOr<core::int>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -170,7 +165,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -181,7 +175,6 @@
   final asy::_Future<core::int?> :async_future = new asy::_Future::•<core::int?>();
   core::bool* :is_sync = false;
   FutureOr<core::int?>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -196,7 +189,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -207,7 +199,6 @@
   final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -222,7 +213,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -233,7 +223,6 @@
   final asy::_Future<core::int?> :async_future = new asy::_Future::•<core::int?>();
   core::bool* :is_sync = false;
   FutureOr<core::int?>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -251,7 +240,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -262,7 +250,6 @@
   final asy::_Future<core::int?> :async_future = new asy::_Future::•<core::int?>();
   core::bool* :is_sync = false;
   FutureOr<core::int?>? :return_value;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -277,7 +264,6 @@
     on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -299,7 +285,6 @@
 static method yieldAsync() → asy::Stream<dynamic> /* originally async* */ {
   asy::_AsyncStarStreamController<dynamic>? :controller;
   dynamic :controller_stream;
-  dynamic :async_stack_trace;
   (dynamic) → dynamic :async_op_then;
   (core::Object, core::StackTrace) → dynamic :async_op_error;
   core::int :await_jump_var = 0;
@@ -317,7 +302,6 @@
     finally {
       :controller.{asy::_AsyncStarStreamController::close}();
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :controller = new asy::_AsyncStarStreamController::•<dynamic>(:async_op);
@@ -385,7 +369,6 @@
     final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
     core::bool* :is_sync = false;
     FutureOr<dynamic>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -400,7 +383,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -411,7 +393,6 @@
     final asy::_Future<dynamic> :async_future = new asy::_Future::•<dynamic>();
     core::bool* :is_sync = false;
     FutureOr<dynamic>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -426,7 +407,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -437,7 +417,6 @@
     final asy::_Future<core::int> :async_future = new asy::_Future::•<core::int>();
     core::bool* :is_sync = false;
     FutureOr<core::int>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -457,7 +436,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -468,7 +446,6 @@
     final asy::_Future<core::int?> :async_future = new asy::_Future::•<core::int?>();
     core::bool* :is_sync = false;
     FutureOr<core::int?>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -483,7 +460,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -494,7 +470,6 @@
     final asy::_Future<Null> :async_future = new asy::_Future::•<Null>();
     core::bool* :is_sync = false;
     FutureOr<Null>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -509,7 +484,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -520,7 +494,6 @@
     final asy::_Future<core::int?> :async_future = new asy::_Future::•<core::int?>();
     core::bool* :is_sync = false;
     FutureOr<core::int?>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -538,7 +511,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -549,7 +521,6 @@
     final asy::_Future<core::int?> :async_future = new asy::_Future::•<core::int?>();
     core::bool* :is_sync = false;
     FutureOr<core::int?>? :return_value;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -564,7 +535,6 @@
       on dynamic catch(dynamic exception, core::StackTrace stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :async_op.call();
@@ -586,7 +556,6 @@
   function yieldAsync() → asy::Stream<dynamic> /* originally async* */ {
     asy::_AsyncStarStreamController<dynamic>? :controller;
     dynamic :controller_stream;
-    dynamic :async_stack_trace;
     (dynamic) → dynamic :async_op_then;
     (core::Object, core::StackTrace) → dynamic :async_op_error;
     core::int :await_jump_var = 0;
@@ -604,7 +573,6 @@
       finally {
         :controller.{asy::_AsyncStarStreamController::close}();
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     :controller = new asy::_AsyncStarStreamController::•<dynamic>(:async_op);
diff --git a/pkg/front_end/testcases/nnbd_mixed/issue41602.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/issue41602.dart.weak.transformed.expect
index ee6d621..faea41f 100644
--- a/pkg/front_end/testcases/nnbd_mixed/issue41602.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/issue41602.dart.weak.transformed.expect
@@ -8,7 +8,6 @@
   final asy::_Future<void>* :async_future = new asy::_Future::•<void>();
   core::bool* :is_sync = false;
   FutureOr<void>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -23,7 +22,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -35,7 +33,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -50,7 +47,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -61,7 +57,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -84,7 +79,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/regress/issue_34850.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_34850.dart.strong.transformed.expect
index 15f42cb..5b90ebe 100644
--- a/pkg/front_end/testcases/regress/issue_34850.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_34850.dart.strong.transformed.expect
@@ -63,7 +63,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -81,7 +80,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -92,7 +90,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -110,7 +107,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -121,7 +117,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -143,7 +138,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/regress/issue_37681.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_37681.dart.strong.transformed.expect
index a16254c..8458a57 100644
--- a/pkg/front_end/testcases/regress/issue_37681.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_37681.dart.strong.transformed.expect
@@ -23,7 +23,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -40,7 +39,6 @@
           final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
           core::bool* :is_sync = false;
           FutureOr<dynamic>* :return_value;
-          dynamic :async_stack_trace;
           (dynamic) →* dynamic :async_op_then;
           (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
           core::int* :await_jump_var = 0;
@@ -58,7 +56,6 @@
             on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
               asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :async_op.call();
@@ -70,7 +67,6 @@
         function f_async_star() → core::int* /* originally async* */ {
           asy::_AsyncStarStreamController<dynamic>* :controller;
           dynamic :controller_stream;
-          dynamic :async_stack_trace;
           (dynamic) →* dynamic :async_op_then;
           (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
           core::int* :await_jump_var = 0;
@@ -95,7 +91,6 @@
             finally {
               :controller.{asy::_AsyncStarStreamController::close}();
             }
-          :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
           :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
           :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
           :controller = new asy::_AsyncStarStreamController::•<dynamic>(:async_op);
@@ -158,7 +153,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/front_end/testcases/set_literals/disambiguation_rule.dart.strong.transformed.expect b/pkg/front_end/testcases/set_literals/disambiguation_rule.dart.strong.transformed.expect
index 01725ee..8e38e87 100644
--- a/pkg/front_end/testcases/set_literals/disambiguation_rule.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/set_literals/disambiguation_rule.dart.strong.transformed.expect
@@ -57,7 +57,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -115,7 +114,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -126,7 +124,6 @@
   final asy::_Future<core::Map<core::int*, core::bool*>*>* :async_future = new asy::_Future::•<core::Map<core::int*, core::bool*>*>();
   core::bool* :is_sync = false;
   FutureOr<core::Map<core::int*, core::bool*>*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -144,7 +141,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -155,7 +151,6 @@
   final asy::_Future<core::Set<core::int*>*>* :async_future = new asy::_Future::•<core::Set<core::int*>*>();
   core::bool* :is_sync = false;
   FutureOr<core::Set<core::int*>*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -175,7 +170,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -186,7 +180,6 @@
   final asy::_Future<core::Iterable<core::int*>*>* :async_future = new asy::_Future::•<core::Iterable<core::int*>*>();
   core::bool* :is_sync = false;
   FutureOr<core::Iterable<core::int*>*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -206,7 +199,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -217,7 +209,6 @@
   final asy::_Future<col::LinkedHashSet<core::int*>*>* :async_future = new asy::_Future::•<col::LinkedHashSet<core::int*>*>();
   core::bool* :is_sync = false;
   FutureOr<col::LinkedHashSet<core::int*>*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -243,7 +234,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
@@ -254,7 +244,6 @@
   final asy::_Future<col::LinkedHashMap<core::int*, core::bool*>*>* :async_future = new asy::_Future::•<col::LinkedHashMap<core::int*, core::bool*>*>();
   core::bool* :is_sync = false;
   FutureOr<col::LinkedHashMap<core::int*, core::bool*>*>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -278,7 +267,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   :async_op.call();
diff --git a/pkg/kernel/lib/core_types.dart b/pkg/kernel/lib/core_types.dart
index 24f0250..8dadff5 100644
--- a/pkg/kernel/lib/core_types.dart
+++ b/pkg/kernel/lib/core_types.dart
@@ -90,7 +90,6 @@
   Constructor _streamIteratorDefaultConstructor;
   Constructor _asyncStarStreamControllerDefaultConstructor;
   Procedure _asyncStarMoveNextHelperProcedure;
-  Procedure _asyncStackTraceHelperProcedure;
   Procedure _asyncThenWrapperHelperProcedure;
   Procedure _asyncErrorWrapperHelperProcedure;
   Procedure _awaitHelperProcedure;
@@ -233,11 +232,6 @@
         index.getTopLevelMember('dart:async', '_asyncStarMoveNextHelper');
   }
 
-  Procedure get asyncStackTraceHelperProcedure {
-    return _asyncStackTraceHelperProcedure ??=
-        index.getTopLevelMember('dart:async', '_asyncStackTraceHelper');
-  }
-
   Procedure get asyncThenWrapperHelperProcedure {
     return _asyncThenWrapperHelperProcedure ??=
         index.getTopLevelMember('dart:async', '_asyncThenWrapperHelper');
diff --git a/pkg/kernel/lib/transformations/continuation.dart b/pkg/kernel/lib/transformations/continuation.dart
index adcb888..67dcc59 100644
--- a/pkg/kernel/lib/transformations/continuation.dart
+++ b/pkg/kernel/lib/transformations/continuation.dart
@@ -22,7 +22,6 @@
   static const asyncOp = ':async_op';
   static const asyncOpThen = ':async_op_then';
   static const asyncOpError = ':async_op_error';
-  static const asyncStackTraceVar = ':async_stack_trace';
   static const controller = ':controller';
   static const controllerStreamVar = ':controller_stream';
   static const forIterator = ':for-iterator';
@@ -524,8 +523,6 @@
 }
 
 abstract class AsyncRewriterBase extends ContinuationRewriterBase {
-  final VariableDeclaration stackTraceVariable;
-
   // :async_op has type ([dynamic result, dynamic e, StackTrace? s]) -> dynamic
   final VariableDeclaration nestedClosureVariable;
 
@@ -541,9 +538,7 @@
 
   AsyncRewriterBase(HelperNodes helper, FunctionNode enclosingFunction,
       StaticTypeContext staticTypeContext)
-      : stackTraceVariable =
-            VariableDeclaration(ContinuationVariables.asyncStackTraceVar),
-        nestedClosureVariable = VariableDeclaration(
+      : nestedClosureVariable = VariableDeclaration(
             ContinuationVariables.asyncOp,
             type: FunctionType([
               const DynamicType(),
@@ -567,9 +562,6 @@
   void setupAsyncContinuations(List<Statement> statements) {
     expressionRewriter = new ExpressionLifter(this);
 
-    // var :async_stack_trace;
-    statements.add(stackTraceVariable);
-
     // var :async_op_then;
     statements.add(thenContinuationVariable);
 
@@ -609,13 +601,6 @@
           ..fileOffset = enclosingFunction.parent.fileOffset;
     statements.add(closureFunction);
 
-    // :async_stack_trace = _asyncStackTraceHelper(asyncBody);
-    final stackTrace = new StaticInvocation(helper.asyncStackTraceHelper,
-        new Arguments(<Expression>[new VariableGet(nestedClosureVariable)]));
-    final stackTraceAssign = new ExpressionStatement(
-        new VariableSet(stackTraceVariable, stackTrace));
-    statements.add(stackTraceAssign);
-
     // :async_op_then = _asyncThenWrapperHelper(asyncBody);
     final boundThenClosure = new StaticInvocation(helper.asyncThenWrapper,
         new Arguments(<Expression>[new VariableGet(nestedClosureVariable)]));
@@ -1404,7 +1389,6 @@
 class HelperNodes {
   final Procedure asyncErrorWrapper;
   final Library asyncLibrary;
-  final Procedure asyncStackTraceHelper;
   final Member asyncStarStreamControllerAdd;
   final Member asyncStarStreamControllerAddError;
   final Member asyncStarStreamControllerAddStream;
@@ -1442,7 +1426,6 @@
   HelperNodes._(
       this.asyncErrorWrapper,
       this.asyncLibrary,
-      this.asyncStackTraceHelper,
       this.asyncStarStreamControllerAdd,
       this.asyncStarStreamControllerAddError,
       this.asyncStarStreamControllerAddStream,
@@ -1480,7 +1463,6 @@
     return new HelperNodes._(
         coreTypes.asyncErrorWrapperHelperProcedure,
         coreTypes.asyncLibrary,
-        coreTypes.asyncStackTraceHelperProcedure,
         coreTypes.asyncStarStreamControllerAdd,
         coreTypes.asyncStarStreamControllerAddError,
         coreTypes.asyncStarStreamControllerAddStream,
diff --git a/pkg/test_runner/lib/src/compiler_configuration.dart b/pkg/test_runner/lib/src/compiler_configuration.dart
index 6ea866c..d92797d 100644
--- a/pkg/test_runner/lib/src/compiler_configuration.dart
+++ b/pkg/test_runner/lib/src/compiler_configuration.dart
@@ -1085,8 +1085,6 @@
 }
 
 abstract class VMKernelCompilerMixin {
-  static final causalAsyncStacksRegExp = RegExp('--causal[_-]async[_-]stacks');
-
   TestConfiguration get _configuration;
 
   bool get _useSdk;
@@ -1116,8 +1114,6 @@
 
     var isProductMode = _configuration.configuration.mode == Mode.product;
 
-    var causalAsyncStacks = arguments.any(causalAsyncStacksRegExp.hasMatch);
-
     var args = [
       _isAot ? '--aot' : '--no-aot',
       '--platform=$vmPlatform',
@@ -1129,7 +1125,6 @@
           name.startsWith('--packages=') ||
           name.startsWith('--enable-experiment=')),
       '-Ddart.vm.product=$isProductMode',
-      '-Ddart.developer.causal_async_stacks=$causalAsyncStacks',
       if (_enableAsserts ||
           arguments.contains('--enable-asserts') ||
           arguments.contains('--enable_asserts'))
diff --git a/pkg/vm/lib/target/vm.dart b/pkg/vm/lib/target/vm.dart
index c5c5f57..c117efa 100644
--- a/pkg/vm/lib/target/vm.dart
+++ b/pkg/vm/lib/target/vm.dart
@@ -464,9 +464,6 @@
     // TODO(alexmarkov): Call this from the front-end in order to have
     //  the same defines when compiling platform.
     assert(map != null);
-    if (map['dart.vm.product'] == 'true') {
-      map['dart.developer.causal_async_stacks'] = 'false';
-    }
     map['dart.isVM'] = 'true';
     // TODO(dartbug.com/36460): Derive dart.library.* definitions from platform.
     for (String library in extraRequiredLibraries) {
diff --git a/pkg/vm/testcases/transformations/deferred_loading/main.dart.expect b/pkg/vm/testcases/transformations/deferred_loading/main.dart.expect
index 7c07613..7d95c30 100644
--- a/pkg/vm/testcases/transformations/deferred_loading/main.dart.expect
+++ b/pkg/vm/testcases/transformations/deferred_loading/main.dart.expect
@@ -49,7 +49,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -66,7 +65,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     [@vm.call-site-attributes.metadata=receiverType:dynamic Function([dynamic, dynamic, dart.core::StackTrace*])*] :async_op.call();
@@ -82,7 +80,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -99,7 +96,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     [@vm.call-site-attributes.metadata=receiverType:dynamic Function([dynamic, dynamic, dart.core::StackTrace*])*] :async_op.call();
@@ -116,7 +112,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -138,7 +133,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     [@vm.call-site-attributes.metadata=receiverType:dynamic Function([dynamic, dynamic, dart.core::StackTrace*])*] :async_op.call();
@@ -154,7 +148,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -171,7 +164,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     [@vm.call-site-attributes.metadata=receiverType:dynamic Function([dynamic, dynamic, dart.core::StackTrace*])*] :async_op.call();
@@ -188,7 +180,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -214,7 +205,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     [@vm.call-site-attributes.metadata=receiverType:dynamic Function([dynamic, dynamic, dart.core::StackTrace*])*] :async_op.call();
@@ -230,7 +220,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -252,7 +241,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     [@vm.call-site-attributes.metadata=receiverType:dynamic Function([dynamic, dynamic, dart.core::StackTrace*])*] :async_op.call();
@@ -269,7 +257,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -291,7 +278,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     [@vm.call-site-attributes.metadata=receiverType:dynamic Function([dynamic, dynamic, dart.core::StackTrace*])*] :async_op.call();
@@ -307,7 +293,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -326,7 +311,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     [@vm.call-site-attributes.metadata=receiverType:dynamic Function([dynamic, dynamic, dart.core::StackTrace*])*] :async_op.call();
@@ -342,7 +326,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -361,7 +344,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     [@vm.call-site-attributes.metadata=receiverType:dynamic Function([dynamic, dynamic, dart.core::StackTrace*])*] :async_op.call();
@@ -377,7 +359,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -399,7 +380,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     [@vm.call-site-attributes.metadata=receiverType:dynamic Function([dynamic, dynamic, dart.core::StackTrace*])*] :async_op.call();
@@ -416,7 +396,6 @@
     final dart.async::_Future<dynamic>* :async_future = new dart.async::_Future::•<dynamic>();
     dart.core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (dart.core::Object*, dart.core::StackTrace*) →* dynamic :async_op_error;
     dart.core::int* :await_jump_var = 0;
@@ -437,7 +416,6 @@
       on dynamic catch(dynamic exception, dart.core::StackTrace* stack_trace) {
         dart.async::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = dart.async::_asyncStackTraceHelper(:async_op);
     :async_op_then = dart.async::_asyncThenWrapperHelper(:async_op);
     :async_op_error = dart.async::_asyncErrorWrapperHelper(:async_op);
     [@vm.call-site-attributes.metadata=receiverType:dynamic Function([dynamic, dynamic, dart.core::StackTrace*])*] :async_op.call();
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/async_await.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/async_await.dart.expect
index f1dfad8..ee9f237 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/async_await.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/async_await.dart.expect
@@ -12,7 +12,6 @@
     final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
     core::bool* :is_sync = false;
     FutureOr<dynamic>* :return_value;
-    dynamic :async_stack_trace;
     (dynamic) →* dynamic :async_op_then;
     (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
     core::int* :await_jump_var = 0;
@@ -30,7 +29,6 @@
       on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
         asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
       }
-    :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
     :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
     :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
     [@vm.call-site-attributes.metadata=receiverType:dynamic Function([dynamic, dynamic, dart.core::StackTrace*])*] :async_op.call();
@@ -49,7 +47,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -67,7 +64,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   [@vm.call-site-attributes.metadata=receiverType:dynamic Function([dynamic, dynamic, dart.core::StackTrace*])*] :async_op.call();
@@ -78,7 +74,6 @@
   final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
   core::bool* :is_sync = false;
   FutureOr<dynamic>* :return_value;
-  dynamic :async_stack_trace;
   (dynamic) →* dynamic :async_op_then;
   (core::Object*, core::StackTrace*) →* dynamic :async_op_error;
   core::int* :await_jump_var = 0;
@@ -100,7 +95,6 @@
     on dynamic catch(dynamic exception, core::StackTrace* stack_trace) {
       asy::_completeOnAsyncError(:async_future, exception, stack_trace, :is_sync);
     }
-  :async_stack_trace = asy::_asyncStackTraceHelper(:async_op);
   :async_op_then = asy::_asyncThenWrapperHelper(:async_op);
   :async_op_error = asy::_asyncErrorWrapperHelper(:async_op);
   [@vm.call-site-attributes.metadata=receiverType:dynamic Function([dynamic, dynamic, dart.core::StackTrace*])*] :async_op.call();
diff --git a/pkg/vm_service/test/async_single_step_exception_test.dart b/pkg/vm_service/test/async_single_step_exception_test.dart
index 189196e..b616326 100644
--- a/pkg/vm_service/test/async_single_step_exception_test.dart
+++ b/pkg/vm_service/test/async_single_step_exception_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2019, 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.
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--lazy-async-stacks
 
 import 'dart:developer';
 import 'common/service_test_common.dart';
diff --git a/pkg/vm_service/test/async_single_step_into_test.dart b/pkg/vm_service/test/async_single_step_into_test.dart
index 90be6df..36dd15b 100644
--- a/pkg/vm_service/test/async_single_step_into_test.dart
+++ b/pkg/vm_service/test/async_single_step_into_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2019, 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.
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--lazy-async-stacks
 
 import 'dart:developer';
 import 'common/service_test_common.dart';
diff --git a/pkg/vm_service/test/async_single_step_out_test.dart b/pkg/vm_service/test/async_single_step_out_test.dart
index fe8baed..a0a3d83 100644
--- a/pkg/vm_service/test/async_single_step_out_test.dart
+++ b/pkg/vm_service/test/async_single_step_out_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2019, 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.
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--lazy-async-stacks
 
 import 'dart:developer';
 import 'common/service_test_common.dart';
diff --git a/pkg/vm_service/test/async_star_single_step_into_test.dart b/pkg/vm_service/test/async_star_single_step_into_test.dart
index 061c2fd..d2d730e 100644
--- a/pkg/vm_service/test/async_star_single_step_into_test.dart
+++ b/pkg/vm_service/test/async_star_single_step_into_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2019, 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.
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--lazy-async-stacks
 
 import 'dart:developer';
 import 'common/service_test_common.dart';
diff --git a/pkg/vm_service/test/async_star_step_out_test.dart b/pkg/vm_service/test/async_star_step_out_test.dart
index 6e4cde9..5bb8dde 100644
--- a/pkg/vm_service/test/async_star_step_out_test.dart
+++ b/pkg/vm_service/test/async_star_step_out_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2019, 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.
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--lazy-async-stacks
 
 import 'dart:developer';
 import 'common/service_test_common.dart';
diff --git a/pkg/vm_service/test/async_step_out_test.dart b/pkg/vm_service/test/async_step_out_test.dart
index 3ccfb1d..8e46584 100644
--- a/pkg/vm_service/test/async_step_out_test.dart
+++ b/pkg/vm_service/test/async_step_out_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2019, 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.
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--lazy-async-stacks
 
 import 'dart:developer';
 import 'common/service_test_common.dart';
diff --git a/pkg/vm_service/test/common/test_helper.dart b/pkg/vm_service/test/common/test_helper.dart
index 836e323..48d5941 100644
--- a/pkg/vm_service/test/common/test_helper.dart
+++ b/pkg/vm_service/test/common/test_helper.dart
@@ -13,14 +13,8 @@
 import 'service_test_common.dart';
 export 'service_test_common.dart' show IsolateTest, VMTest;
 
-/// Whether to use causal async stacks (if not we use lazy async stacks).
-const bool useCausalAsyncStacks =
-    bool.fromEnvironment('dart.developer.causal_async_stacks');
-
 /// The extra arguments to use
-const List<String> extraDebuggingArgs = useCausalAsyncStacks
-    ? ['--causal-async-stacks', '--no-lazy-async-stacks']
-    : ['--no-causal-async-stacks', '--lazy-async-stacks'];
+const List<String> extraDebuggingArgs = ['--lazy-async-stacks'];
 
 /// Will be set to the http address of the VM's service protocol before
 /// any tests are invoked.
diff --git a/pkg/vm_service/test/get_stack_test.dart b/pkg/vm_service/test/get_stack_test.dart
index 0f65938..5889996 100644
--- a/pkg/vm_service/test/get_stack_test.dart
+++ b/pkg/vm_service/test/get_stack_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// VMOptions=--lazy-async-stacks --no-causal-async-stacks --verbose_debug
+// VMOptions=--lazy-async-stacks --verbose_debug
 
 import 'dart:developer';
 
diff --git a/runtime/bin/gen_snapshot.cc b/runtime/bin/gen_snapshot.cc
index 72e10c8..3815b9a 100644
--- a/runtime/bin/gen_snapshot.cc
+++ b/runtime/bin/gen_snapshot.cc
@@ -209,15 +209,11 @@
                           char** argv,
                           CommandLineOptions* vm_options,
                           CommandLineOptions* inputs) {
-  const char* kPrefix = "-";
-  const intptr_t kPrefixLen = strlen(kPrefix);
-
   // Skip the binary name.
   int i = 1;
 
   // Parse out the vm options.
-  while ((i < argc) &&
-         OptionProcessor::IsValidFlag(argv[i], kPrefix, kPrefixLen)) {
+  while ((i < argc) && OptionProcessor::IsValidFlag(argv[i])) {
     if (OptionProcessor::TryProcess(argv[i], vm_options)) {
       i += 1;
       continue;
diff --git a/runtime/bin/main.cc b/runtime/bin/main.cc
index 76d3b51..7299ade 100644
--- a/runtime/bin/main.cc
+++ b/runtime/bin/main.cc
@@ -1140,10 +1140,10 @@
 
   // Parse command line arguments.
   if (app_snapshot == nullptr) {
-    int result = Options::ParseArguments(
+    bool success = Options::ParseArguments(
         argc, argv, vm_run_app_snapshot, &vm_options, &script_name,
         &dart_options, &print_flags_seen, &verbose_debug_seen);
-    if (result < 0) {
+    if (!success) {
       if (Options::help_option()) {
         Options::PrintUsage();
         Platform::Exit(0);
diff --git a/runtime/bin/main_options.cc b/runtime/bin/main_options.cc
index 2e962c1..d019ce4 100644
--- a/runtime/bin/main_options.cc
+++ b/runtime/bin/main_options.cc
@@ -282,6 +282,26 @@
   return true;
 }
 
+// Returns true if arg starts with the characters "--" followed by option, but
+// all '_' in the option name are treated as '-'.
+static bool IsOption(const char* arg, const char* option) {
+  if (arg[0] != '-' || arg[1] != '-') {
+    // Special case first two characters to avoid recognizing __flag.
+    return false;
+  }
+  for (int i = 0; option[i] != '\0'; i++) {
+    auto c = arg[i + 2];
+    if (c == '\0') {
+      // Not long enough.
+      return false;
+    }
+    if ((c == '_' ? '-' : c) != option[i]) {
+      return false;
+    }
+  }
+  return true;
+}
+
 const char* Options::vm_service_server_ip_ = DEFAULT_VM_SERVICE_SERVER_IP;
 int Options::vm_service_server_port_ = INVALID_VM_SERVICE_SERVER_PORT;
 bool Options::ProcessEnableVmServiceOption(const char* arg,
@@ -366,17 +386,14 @@
   return false;
 }
 
-int Options::ParseArguments(int argc,
-                            char** argv,
-                            bool vm_run_app_snapshot,
-                            CommandLineOptions* vm_options,
-                            char** script_name,
-                            CommandLineOptions* dart_options,
-                            bool* print_flags_seen,
-                            bool* verbose_debug_seen) {
-  const char* kPrefix = "--";
-  const intptr_t kPrefixLen = strlen(kPrefix);
-
+bool Options::ParseArguments(int argc,
+                             char** argv,
+                             bool vm_run_app_snapshot,
+                             CommandLineOptions* vm_options,
+                             char** script_name,
+                             CommandLineOptions* dart_options,
+                             bool* print_flags_seen,
+                             bool* verbose_debug_seen) {
   // Store the executable name.
   Platform::SetExecutableName(argv[0]);
 
@@ -395,43 +412,26 @@
       i++;
     } else {
       // Check if this flag is a potentially valid VM flag.
-      if (!OptionProcessor::IsValidFlag(argv[i], kPrefix, kPrefixLen)) {
+      if (!OptionProcessor::IsValidFlag(argv[i])) {
         break;
       }
-      // The following two flags are processed by both the embedder and
-      // the VM.
-      const char* kPrintFlags1 = "--print-flags";
-      const char* kPrintFlags2 = "--print_flags";
-      const char* kVerboseDebug1 = "--verbose_debug";
-      const char* kVerboseDebug2 = "--verbose-debug";
-
-      // The following two flags are processed as DartDev flags and are not to
+      // The following flags are processed as DartDev flags and are not to
       // be treated as if they are VM flags.
-      const char* kEnableDartDevAnalytics1 = "--enable-analytics";
-      const char* kEnableDartDevAnalytics2 = "--enable_analytics";
-      const char* kDisableDartDevAnalytics1 = "--disable-analytics";
-      const char* kDisableDartDevAnalytics2 = "--disable_analytics";
-
-      if ((strncmp(argv[i], kPrintFlags1, strlen(kPrintFlags1)) == 0) ||
-          (strncmp(argv[i], kPrintFlags2, strlen(kPrintFlags2)) == 0)) {
+      if (IsOption(argv[i], "print-flags")) {
         *print_flags_seen = true;
-      } else if ((strncmp(argv[i], kVerboseDebug1, strlen(kVerboseDebug1)) ==
-                  0) ||
-                 (strncmp(argv[i], kVerboseDebug2, strlen(kVerboseDebug2)) ==
-                  0)) {
+      } else if (IsOption(argv[i], "verbose-debug")) {
         *verbose_debug_seen = true;
-      } else if ((strncmp(argv[i], kEnableDartDevAnalytics1,
-                          strlen(kEnableDartDevAnalytics1)) == 0) ||
-                 (strncmp(argv[i], kEnableDartDevAnalytics2,
-                          strlen(kEnableDartDevAnalytics2)) == 0)) {
+      } else if (IsOption(argv[i], "enable-analytics")) {
         enable_dartdev_analytics = true;
         skipVmOption = true;
-      } else if ((strncmp(argv[i], kDisableDartDevAnalytics1,
-                          strlen(kDisableDartDevAnalytics1)) == 0) ||
-                 (strncmp(argv[i], kDisableDartDevAnalytics2,
-                          strlen(kDisableDartDevAnalytics2)) == 0)) {
+      } else if (IsOption(argv[i], "disable-analytics")) {
         disable_dartdev_analytics = true;
         skipVmOption = true;
+      } else if (IsOption(argv[i], "no-analytics")) {
+        // Just add this option even if we don't go to dartdev.
+        // It is irelevant for the vm.
+        dart_options->AddArgument("--no-analytics");
+        skipVmOption = true;
       }
       if (!skipVmOption) {
         temp_vm_options.AddArgument(argv[i]);
@@ -465,7 +465,6 @@
 
   bool implicitly_use_dart_dev = false;
   bool run_script = false;
-
   // Get the script name.
   if (i < argc) {
 #if !defined(DART_PRECOMPILED_RUNTIME)
@@ -506,25 +505,19 @@
     DartDevIsolate::set_should_run_dart_dev(true);
     // Let DartDev handle the default help message.
     dart_options->AddArgument("help");
-    return 0;
+    return true;
   } else if (!Options::disable_dart_dev() &&
              (enable_dartdev_analytics || disable_dartdev_analytics)) {
     // The analytics flags are a special case as we don't have a target script
     // or DartDev command but we still want to launch DartDev.
     DartDevIsolate::set_should_run_dart_dev(true);
 
-    if (enable_dartdev_analytics) {
-      dart_options->AddArgument("--enable-analytics");
-    }
-    if (disable_dartdev_analytics) {
-      dart_options->AddArgument("--disable-analytics");
-    }
-    return 0;
+    return true;
   }
 
 #endif    // !defined(DART_PRECOMPILED_RUNTIME)
   else {  // NOLINT
-    return -1;
+    return false;
   }
   USE(enable_dartdev_analytics);
   USE(disable_dartdev_analytics);
@@ -547,7 +540,7 @@
     while (tmp_i < argc) {
       // Check if this flag is a potentially valid VM flag. If not, we've likely
       // hit a script name and are done parsing VM flags.
-      if (!OptionProcessor::IsValidFlag(argv[tmp_i], kPrefix, kPrefixLen)) {
+      if (!OptionProcessor::IsValidFlag(argv[tmp_i])) {
         break;
       }
       OptionProcessor::TryProcess(argv[tmp_i], vm_options);
@@ -596,14 +589,12 @@
       first_option = false;
     }
   }
-
-
   // Verify consistency of arguments.
 
   // snapshot_depfile is an alias for depfile. Passing them both is an error.
   if ((snapshot_deps_filename_ != NULL) && (depfile_ != NULL)) {
     Syslog::PrintErr("Specify only one of --depfile and --snapshot_depfile\n");
-    return -1;
+    return false;
   }
   if (snapshot_deps_filename_ != NULL) {
     depfile_ = snapshot_deps_filename_;
@@ -612,25 +603,25 @@
 
   if ((packages_file_ != NULL) && (strlen(packages_file_) == 0)) {
     Syslog::PrintErr("Empty package file name specified.\n");
-    return -1;
+    return false;
   }
   if ((gen_snapshot_kind_ != kNone) && (snapshot_filename_ == NULL)) {
     Syslog::PrintErr(
         "Generating a snapshot requires a filename (--snapshot).\n");
-    return -1;
+    return false;
   }
   if ((gen_snapshot_kind_ == kNone) && (depfile_ != NULL) &&
       (snapshot_filename_ == NULL) && (depfile_output_filename_ == NULL)) {
     Syslog::PrintErr(
         "Generating a depfile requires an output filename"
         " (--depfile-output-filename or --snapshot).\n");
-    return -1;
+    return false;
   }
   if ((gen_snapshot_kind_ != kNone) && vm_run_app_snapshot) {
     Syslog::PrintErr(
         "Specifying an option to generate a snapshot and"
         " run using a snapshot is invalid.\n");
-    return -1;
+    return false;
   }
 
   // If --snapshot is given without --snapshot-kind, default to script snapshot.
@@ -638,7 +629,7 @@
     gen_snapshot_kind_ = kKernel;
   }
 
-  return 0;
+  return true;
 }
 
 }  // namespace bin
diff --git a/runtime/bin/main_options.h b/runtime/bin/main_options.h
index f900a3c..2ab8598 100644
--- a/runtime/bin/main_options.h
+++ b/runtime/bin/main_options.h
@@ -85,14 +85,15 @@
 
 class Options {
  public:
-  static int ParseArguments(int argc,
-                            char** argv,
-                            bool vm_run_app_shapshot,
-                            CommandLineOptions* vm_options,
-                            char** script_name,
-                            CommandLineOptions* dart_options,
-                            bool* print_flags_seen,
-                            bool* verbose_debug_seen);
+  // Returns true if argument parsing succeeded. False otherwise.
+  static bool ParseArguments(int argc,
+                             char** argv,
+                             bool vm_run_app_shapshot,
+                             CommandLineOptions* vm_options,
+                             char** script_name,
+                             CommandLineOptions* dart_options,
+                             bool* print_flags_seen,
+                             bool* verbose_debug_seen);
 
 #define STRING_OPTION_GETTER(flag, variable)                                   \
   static const char* variable() { return variable##_; }
diff --git a/runtime/bin/options.cc b/runtime/bin/options.cc
index 1eed113..6d4e355 100644
--- a/runtime/bin/options.cc
+++ b/runtime/bin/options.cc
@@ -9,12 +9,8 @@
 
 OptionProcessor* OptionProcessor::first_ = NULL;
 
-bool OptionProcessor::IsValidFlag(const char* name,
-                                  const char* prefix,
-                                  intptr_t prefix_length) {
-  const intptr_t name_length = strlen(name);
-  return ((name_length > prefix_length) &&
-          (strncmp(name, prefix, prefix_length) == 0));
+bool OptionProcessor::IsValidFlag(const char* name) {
+  return name[0] == '-' && name[1] == '-' && name[2] != '\0';
 }
 
 const char* OptionProcessor::ProcessOption(const char* option,
diff --git a/runtime/bin/options.h b/runtime/bin/options.h
index 4bcd7de..ef92579 100644
--- a/runtime/bin/options.h
+++ b/runtime/bin/options.h
@@ -22,9 +22,8 @@
 
   virtual ~OptionProcessor() {}
 
-  static bool IsValidFlag(const char* name,
-                          const char* prefix,
-                          intptr_t prefix_length);
+  // Returns true if name starts with "--".
+  static bool IsValidFlag(const char* name);
 
   virtual bool Process(const char* option, CommandLineOptions* options) = 0;
 
diff --git a/runtime/lib/stacktrace.cc b/runtime/lib/stacktrace.cc
index eaa287c..2c75f02 100644
--- a/runtime/lib/stacktrace.cc
+++ b/runtime/lib/stacktrace.cc
@@ -66,79 +66,17 @@
 // Gets current stack trace for `thread`.
 // This functions itself handles the --causel-async-stacks case.
 // For --lazy-async-stacks see `CurrentSyncStackTraceLazy`.
-// For --no-causel-async-stacks see `CurrentSyncStackTrace`.
+// For fallback see `CurrentSyncStackTrace`.
 // Extracts the causal async stack from the thread if any set, then prepends
 // the current sync. stack up until the current async function (if any).
-static StackTracePtr CurrentStackTrace(
-    Thread* thread,
-    bool for_async_function,
-    intptr_t skip_frames = 1,
-    bool causal_async_stacks = FLAG_causal_async_stacks) {
+static StackTracePtr CurrentStackTrace(Thread* thread,
+                                       bool for_async_function,
+                                       intptr_t skip_frames = 1) {
   if (FLAG_lazy_async_stacks) {
     return CurrentSyncStackTraceLazy(thread, skip_frames);
   }
-  if (!causal_async_stacks) {
-    // Return the synchronous stack trace.
-    return CurrentSyncStackTrace(thread, skip_frames);
-  }
-
-  Zone* zone = thread->zone();
-  Code& code = Code::ZoneHandle(zone);
-  Smi& offset = Smi::ZoneHandle(zone);
-  Function& async_function = Function::ZoneHandle(zone);
-  StackTrace& async_stack_trace = StackTrace::ZoneHandle(zone);
-  Array& async_code_array = Array::ZoneHandle(zone);
-  Array& async_pc_offset_array = Array::ZoneHandle(zone);
-
-  StackTraceUtils::ExtractAsyncStackTraceInfo(
-      thread, &async_function, &async_stack_trace, &async_code_array,
-      &async_pc_offset_array);
-
-  // Determine the size of the stack trace.
-  const intptr_t extra_frames = for_async_function ? 1 : 0;
-  bool sync_async_end = false;
-  // Count frames until `async_function` and set whether the async function is
-  // running synchronously (i.e. hasn't yielded yet).
-  const intptr_t synchronous_stack_trace_length = StackTraceUtils::CountFrames(
-      thread, skip_frames, async_function, &sync_async_end);
-
-  ASSERT(synchronous_stack_trace_length > 0);
-
-  const intptr_t capacity = synchronous_stack_trace_length +
-                            extra_frames;  // For the asynchronous gap.
-
-  // Allocate memory for the stack trace.
-  const Array& code_array = Array::ZoneHandle(zone, Array::New(capacity));
-  const Array& pc_offset_array = Array::ZoneHandle(zone, Array::New(capacity));
-
-  intptr_t write_cursor = 0;
-  if (for_async_function) {
-    // Place the asynchronous gap marker at the top of the stack trace.
-    code = StubCode::AsynchronousGapMarker().raw();
-    ASSERT(!code.IsNull());
-    offset = Smi::New(0);
-    code_array.SetAt(write_cursor, code);
-    pc_offset_array.SetAt(write_cursor, offset);
-    write_cursor++;
-  }
-
-  // Prepend: synchronous stack trace + (cached) async stack trace.
-
-  write_cursor +=
-      StackTraceUtils::CollectFrames(thread, code_array, pc_offset_array,
-                                     /*array_offset=*/write_cursor,
-                                     /*count=*/synchronous_stack_trace_length,
-                                     /*skip_frames=*/skip_frames);
-
-  ASSERT(write_cursor == capacity);
-
-  const StackTrace& result = StackTrace::Handle(
-      zone,
-      StackTrace::New(code_array, pc_offset_array,
-                      /*async_link=*/async_stack_trace,
-                      /*skip_sync_start_in_parent_stack=*/sync_async_end));
-
-  return result.raw();
+  // Return the synchronous stack trace.
+  return CurrentSyncStackTrace(thread, skip_frames);
 }
 
 StackTracePtr GetStackTraceForException() {
@@ -150,39 +88,6 @@
   return CurrentStackTrace(thread, false);
 }
 
-DEFINE_NATIVE_ENTRY(StackTrace_asyncStackTraceHelper, 0, 1) {
-  if (!FLAG_causal_async_stacks) {
-    // If causal async stacks are not enabled we should recognize this method
-    // and never call to the NOP runtime.
-    // See kernel_to_il.cc.
-    UNREACHABLE();
-  }
-#if !defined(PRODUCT)
-  GET_NATIVE_ARGUMENT(Closure, async_op, arguments->NativeArgAt(0));
-  Debugger* debugger = isolate->debugger();
-  if (debugger != NULL) {
-    debugger->MaybeAsyncStepInto(async_op);
-  }
-#endif
-  return CurrentStackTrace(thread, true);
-}
-
-DEFINE_NATIVE_ENTRY(StackTrace_clearAsyncThreadStackTrace, 0, 0) {
-  thread->clear_async_stack_trace();
-  return Object::null();
-}
-
-DEFINE_NATIVE_ENTRY(StackTrace_setAsyncThreadStackTrace, 0, 1) {
-  if (!FLAG_causal_async_stacks) {
-    return Object::null();
-  }
-
-  GET_NON_NULL_NATIVE_ARGUMENT(StackTrace, stack_trace,
-                               arguments->NativeArgAt(0));
-  thread->set_async_stack_trace(stack_trace);
-  return Object::null();
-}
-
 static void AppendFrames(const GrowableObjectArray& code_list,
                          const GrowableObjectArray& pc_offset_list,
                          int skip_frames) {
diff --git a/runtime/observatory/tests/service/async_single_step_exception_test.dart b/runtime/observatory/tests/service/async_single_step_exception_test.dart
index 55bd063..0fdc183 100644
--- a/runtime/observatory/tests/service/async_single_step_exception_test.dart
+++ b/runtime/observatory/tests/service/async_single_step_exception_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--async-debugger --verbose-debug --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async-debugger --verbose-debug --causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--async-debugger --verbose-debug --lazy-async-stacks
 
 import 'dart:developer';
 import 'service_test_common.dart';
diff --git a/runtime/observatory/tests/service/async_single_step_into_test.dart b/runtime/observatory/tests/service/async_single_step_into_test.dart
index 8d8417f..7477840 100644
--- a/runtime/observatory/tests/service/async_single_step_into_test.dart
+++ b/runtime/observatory/tests/service/async_single_step_into_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--async-debugger --verbose-debug --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async-debugger --verbose-debug --causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--async-debugger --verbose-debug --lazy-async-stacks
 
 import 'dart:developer';
 import 'service_test_common.dart';
diff --git a/runtime/observatory/tests/service/async_single_step_out_test.dart b/runtime/observatory/tests/service/async_single_step_out_test.dart
index 2b51e24..cfeac6c 100644
--- a/runtime/observatory/tests/service/async_single_step_out_test.dart
+++ b/runtime/observatory/tests/service/async_single_step_out_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--async-debugger --verbose-debug --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async-debugger --verbose-debug --causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--async-debugger --verbose-debug --lazy-async-stacks
 
 import 'dart:developer';
 import 'service_test_common.dart';
diff --git a/runtime/observatory/tests/service/async_star_single_step_into_test.dart b/runtime/observatory/tests/service/async_star_single_step_into_test.dart
index 65a784d..0d99fd5 100644
--- a/runtime/observatory/tests/service/async_star_single_step_into_test.dart
+++ b/runtime/observatory/tests/service/async_star_single_step_into_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--async-debugger --verbose-debug --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async-debugger --verbose-debug --causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--async-debugger --verbose-debug --lazy-async-stacks
 
 import 'dart:developer';
 import 'service_test_common.dart';
diff --git a/runtime/observatory/tests/service/async_star_step_out_test.dart b/runtime/observatory/tests/service/async_star_step_out_test.dart
index fca9d16..95ca280 100644
--- a/runtime/observatory/tests/service/async_star_step_out_test.dart
+++ b/runtime/observatory/tests/service/async_star_step_out_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--async-debugger --verbose-debug --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async-debugger --verbose-debug --causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--async-debugger --verbose-debug --lazy-async-stacks
 
 import 'dart:developer';
 import 'service_test_common.dart';
diff --git a/runtime/observatory/tests/service/async_step_out_test.dart b/runtime/observatory/tests/service/async_step_out_test.dart
index f22f8d8..4cce826 100644
--- a/runtime/observatory/tests/service/async_step_out_test.dart
+++ b/runtime/observatory/tests/service/async_step_out_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--async-debugger --verbose-debug --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async-debugger --verbose-debug --causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--async-debugger --verbose-debug --lazy-async-stacks
 
 import 'dart:developer';
 import 'service_test_common.dart';
diff --git a/runtime/observatory/tests/service/awaiter_async_stack_contents_2_test.dart b/runtime/observatory/tests/service/awaiter_async_stack_contents_2_test.dart
index e9b971c..b2d2165 100644
--- a/runtime/observatory/tests/service/awaiter_async_stack_contents_2_test.dart
+++ b/runtime/observatory/tests/service/awaiter_async_stack_contents_2_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2018, 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.
-// VMOptions=--async-debugger --verbose-debug --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async-debugger --verbose-debug --causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--async-debugger --verbose-debug --lazy-async-stacks
 
 import 'dart:developer';
 import 'package:observatory/models.dart' as M;
@@ -50,28 +50,13 @@
       print(v);
     }
 
-    if (useCausalAsyncStacks) {
-      expect(awaiterFrames.length, greaterThanOrEqualTo(4));
-      // Awaiter frame.
-      expect(await awaiterFrames[0].toUserString(),
-          stringContainsInOrder(['foobar', '.dart:${LINE_A}']));
-      // Awaiter frame.
-      expect(await awaiterFrames[1].toUserString(),
-          stringContainsInOrder(['helper', '.dart:${LINE_B}']));
-      // Suspension point.
-      expect(awaiterFrames[2].kind, equals(M.FrameKind.asyncSuspensionMarker));
-      // Causal frame.
-      expect(await awaiterFrames[3].toUserString(),
-          stringContainsInOrder(['testMain', '.dart:${LINE_C}']));
-    } else {
-      expect(awaiterFrames.length, greaterThanOrEqualTo(2));
-      // Awaiter frame.
-      expect(await awaiterFrames[0].toUserString(),
-          stringContainsInOrder(['foobar', '.dart:${LINE_A}']));
-      // Awaiter frame.
-      expect(await awaiterFrames[1].toUserString(),
-          stringContainsInOrder(['helper', '.dart:${LINE_B}']));
-    }
+    expect(awaiterFrames.length, greaterThanOrEqualTo(2));
+    // Awaiter frame.
+    expect(await awaiterFrames[0].toUserString(),
+        stringContainsInOrder(['foobar', '.dart:${LINE_A}']));
+    // Awaiter frame.
+    expect(await awaiterFrames[1].toUserString(),
+        stringContainsInOrder(['helper', '.dart:${LINE_B}']));
   },
 ];
 
diff --git a/runtime/observatory/tests/service/awaiter_async_stack_contents_test.dart b/runtime/observatory/tests/service/awaiter_async_stack_contents_test.dart
index 0aef00e..77eeed2 100644
--- a/runtime/observatory/tests/service/awaiter_async_stack_contents_test.dart
+++ b/runtime/observatory/tests/service/awaiter_async_stack_contents_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--async-debugger --verbose-debug --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async-debugger --verbose-debug --causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--async-debugger --verbose-debug --lazy-async-stacks
 
 import 'dart:developer';
 import 'package:observatory/models.dart' as M;
@@ -53,29 +53,15 @@
     ServiceMap stack = await isolate.getStack();
     expect(stack['awaiterFrames'], isNotNull);
     List awaiterFrames = stack['awaiterFrames'];
-    if (useCausalAsyncStacks) {
-      expect(awaiterFrames.length, greaterThanOrEqualTo(4));
-      // Awaiter frame.
-      expect(await awaiterFrames[0].toUserString(),
-          stringContainsInOrder(['foobar', '.dart:$LINE_C']));
-      // Awaiter frame.
-      expect(await awaiterFrames[1].toUserString(),
-          stringContainsInOrder(['helper', '.dart:$LINE_D']));
-      // Suspension point.
-      expect(awaiterFrames[2].kind, equals(M.FrameKind.asyncSuspensionMarker));
-      // Causal frame.
-      expect(await awaiterFrames[3].toUserString(),
-          stringContainsInOrder(['testMain', '.dart:$LINE_B']));
-    } else {
-      expect(awaiterFrames.length, greaterThanOrEqualTo(2));
-      // Awaiter frame.
-      expect(await awaiterFrames[0].toUserString(),
-          stringContainsInOrder(['foobar', '.dart:$LINE_C']));
-      // Awaiter frame.
-      expect(await awaiterFrames[1].toUserString(),
-          stringContainsInOrder(['helper', '.dart:$LINE_D']));
-      // "helper" is not await'ed.
-    }
+
+    expect(awaiterFrames.length, greaterThanOrEqualTo(2));
+    // Awaiter frame.
+    expect(await awaiterFrames[0].toUserString(),
+        stringContainsInOrder(['foobar', '.dart:$LINE_C']));
+    // Awaiter frame.
+    expect(await awaiterFrames[1].toUserString(),
+        stringContainsInOrder(['helper', '.dart:$LINE_D']));
+    // "helper" is not await'ed.
   },
 ];
 
diff --git a/runtime/observatory/tests/service/causal_async_stack_contents_test.dart b/runtime/observatory/tests/service/causal_async_stack_contents_test.dart
index ed77ae6..3e4a8eb 100644
--- a/runtime/observatory/tests/service/causal_async_stack_contents_test.dart
+++ b/runtime/observatory/tests/service/causal_async_stack_contents_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks --verbose_debug
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks --verbose_debug
+//
+// VMOptions=--lazy-async-stacks --verbose_debug
 
 import 'dart:developer';
 import 'package:observatory/models.dart' as M;
@@ -48,14 +48,8 @@
     // Has causal frames (we are inside an async function)
     expect(stack['asyncCausalFrames'], isNotNull);
     var asyncStack = stack['asyncCausalFrames'];
-    if (useCausalAsyncStacks) {
-      expect(asyncStack[0].toString(), contains('helper'));
-      expect(asyncStack[1].kind, equals(M.FrameKind.asyncSuspensionMarker));
-      expect(asyncStack[2].toString(), contains('testMain'));
-    } else {
-      expect(asyncStack[0].toString(), contains('helper'));
-      // "helper" is not await'ed.
-    }
+    expect(asyncStack[0].toString(), contains('helper'));
+    // "helper" is not await'ed.
   },
   resumeIsolate,
   hasStoppedAtBreakpoint,
@@ -65,19 +59,9 @@
     // Has causal frames (we are inside a function called by an async function)
     expect(stack['asyncCausalFrames'], isNotNull);
     var asyncStack = stack['asyncCausalFrames'];
-    if (useCausalAsyncStacks) {
-      expect(asyncStack[0].toString(), contains('foobar'));
-      expect(asyncStack[1].toString(), contains('helper'));
-      expect(asyncStack[2].kind, equals(M.FrameKind.asyncSuspensionMarker));
-      expect(asyncStack[3].toString(), contains('testMain'));
-      expect(await asyncStack[0].location.toUserString(), contains('.dart:20'));
-      expect(await asyncStack[1].location.toUserString(), contains('.dart:27'));
-      expect(await asyncStack[3].location.toUserString(), contains('.dart:32'));
-    } else {
-      expect(asyncStack[0].toString(), contains('foobar'));
-      expect(asyncStack[1].toString(), contains('helper'));
-      // "helper" is not await'ed.
-    }
+    expect(asyncStack[0].toString(), contains('foobar'));
+    expect(asyncStack[1].toString(), contains('helper'));
+    // "helper" is not await'ed.
   },
 ];
 
diff --git a/runtime/observatory/tests/service/causal_async_stack_presence_test.dart b/runtime/observatory/tests/service/causal_async_stack_presence_test.dart
index 0e57f47..3a90e4a 100644
--- a/runtime/observatory/tests/service/causal_async_stack_presence_test.dart
+++ b/runtime/observatory/tests/service/causal_async_stack_presence_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks --verbose_debug
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks --verbose_debug
+//
+// VMOptions=--lazy-async-stacks --verbose_debug
 
 import 'dart:developer';
 import 'package:observatory/service_io.dart';
diff --git a/runtime/observatory/tests/service/causal_async_star_stack_contents_test.dart b/runtime/observatory/tests/service/causal_async_star_stack_contents_test.dart
index 8efcecc..8d66a17a 100644
--- a/runtime/observatory/tests/service/causal_async_star_stack_contents_test.dart
+++ b/runtime/observatory/tests/service/causal_async_star_stack_contents_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks --verbose_debug
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks --verbose_debug
+//
+// VMOptions=--lazy-async-stacks --verbose_debug
 
 import 'dart:developer';
 import 'package:observatory/models.dart' as M;
@@ -44,16 +44,9 @@
     // No causal frames because we are in a completely synchronous stack.
     expect(stack['asyncCausalFrames'], isNotNull);
     var asyncStack = stack['asyncCausalFrames'];
-    if (useCausalAsyncStacks) {
-      expect(asyncStack.length, greaterThanOrEqualTo(3));
-      expect(asyncStack[0].toString(), contains('helper'));
-      expect(asyncStack[1].kind, equals(M.FrameKind.asyncSuspensionMarker));
-      expect(asyncStack[2].toString(), contains('testMain'));
-    } else {
-      expect(asyncStack.length, greaterThanOrEqualTo(1));
-      expect(asyncStack[0].toString(), contains('helper'));
-      // helper isn't awaited.
-    }
+    expect(asyncStack.length, greaterThanOrEqualTo(1));
+    expect(asyncStack[0].toString(), contains('helper'));
+    // helper isn't awaited.
   },
   resumeIsolate,
   hasStoppedAtBreakpoint,
@@ -68,10 +61,6 @@
     expect(asyncStack[1].kind, equals(M.FrameKind.asyncSuspensionMarker));
     expect(asyncStack[2].toString(), contains('helper'));
     expect(asyncStack[3].kind, equals(M.FrameKind.asyncSuspensionMarker));
-    if (useCausalAsyncStacks) {
-      // helper isn't awaited.
-      expect(asyncStack[4].toString(), contains('testMain'));
-    }
   },
   resumeIsolate,
   hasStoppedAtBreakpoint,
@@ -93,12 +82,6 @@
     expect(asyncStack[2].toString(), contains('helper'));
     expect(await asyncStack[2].location.toUserString(), contains('.dart:30'));
     expect(asyncStack[3].kind, equals(M.FrameKind.asyncSuspensionMarker));
-    if (useCausalAsyncStacks) {
-      // helper isn't awaited.
-      expect(asyncStack.length, greaterThanOrEqualTo(5));
-      expect(asyncStack[4].toString(), contains('testMain'));
-      expect(await asyncStack[4].location.toUserString(), contains('.dart:36'));
-    }
   },
 ];
 
diff --git a/runtime/observatory/tests/service/causal_async_star_stack_presence_test.dart b/runtime/observatory/tests/service/causal_async_star_stack_presence_test.dart
index df29834..4d3e448 100644
--- a/runtime/observatory/tests/service/causal_async_star_stack_presence_test.dart
+++ b/runtime/observatory/tests/service/causal_async_star_stack_presence_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks --verbose_debug
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks --verbose_debug
+//
+// VMOptions=--lazy-async-stacks --verbose_debug
 
 import 'dart:developer';
 import 'package:observatory/service_io.dart';
diff --git a/runtime/observatory/tests/service/get_stack_limit_rpc_test.dart b/runtime/observatory/tests/service/get_stack_limit_rpc_test.dart
index 99a8bf1..b1ccb4f 100644
--- a/runtime/observatory/tests/service/get_stack_limit_rpc_test.dart
+++ b/runtime/observatory/tests/service/get_stack_limit_rpc_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks
+// VMOptions=--lazy-async-stacks
 
 import 'dart:async';
 import 'dart:developer';
@@ -13,31 +13,29 @@
 import 'service_test_common.dart';
 import 'test_helper.dart';
 
-bar(int depth) {
+bar(int depth) async {
   if (depth == 21) {
     debugger();
     return;
   }
-  foo(depth + 1);
+  await foo(depth + 1);
 }
 
-foo(int depth) {
-  bar(depth + 1);
+foo(int depth) async {
+  if (depth == 10) {
+    // Yield once to force the rest to run async.
+    await 0;
+  }
+  await bar(depth + 1);
 }
 
-testMain() {
-  foo(0);
+testMain() async {
+  await foo(0);
 }
 
-verifyStack(List frames, int numFrames) {
-  for (int i = 0; i < frames.length && i < numFrames; ++i) {
-    final frame = frames[i];
-    if (i < 22) {
-      expect(frame.function!.qualifiedName, (i % 2) == 0 ? 'bar' : 'foo');
-    } else if (i == 22) {
-      expect(frame.function!.qualifiedName, 'testMain');
-      break;
-    }
+verifyStack(List frames, List<String> expectedNames) {
+  for (int i = 0; i < frames.length && i < expectedNames.length; ++i) {
+    expect(frames[i].function!.qualifiedName, expectedNames[i]);
   }
 }
 
@@ -57,10 +55,14 @@
     var awaiterFrames = stack['awaiterFrames'];
     expect(frames.length, greaterThanOrEqualTo(20));
     expect(asyncFrames.length, greaterThan(frames.length));
-    expect(awaiterFrames.length, greaterThan(frames.length));
+    expect(awaiterFrames.length, 13);
     expect(stack['truncated'], false);
-
-    verifyStack(frames, frames.length);
+    verifyStack(frames, [
+      'bar.async_op', 'foo.async_op', 'bar.async_op', 'foo.async_op',
+      'bar.async_op', 'foo.async_op', 'bar.async_op', 'foo.async_op',
+      'bar.async_op', 'foo.async_op', 'bar.async_op', 'foo.async_op',
+      '_RootZone.runUnary', // Internal async. mech. ..
+    ]);
 
     final fullStackLength = frames.length;
 
@@ -75,7 +77,12 @@
     expect(asyncFrames.length, fullStackLength + 1);
     expect(asyncFrames.length, fullStackLength + 1);
     expect(stack['truncated'], true);
-    verifyStack(frames, fullStackLength);
+    verifyStack(frames, [
+      'bar.async_op', 'foo.async_op', 'bar.async_op', 'foo.async_op',
+      'bar.async_op', 'foo.async_op', 'bar.async_op', 'foo.async_op',
+      'bar.async_op', 'foo.async_op', 'bar.async_op', 'foo.async_op',
+      '_RootZone.runUnary', // Internal async. mech. ..
+    ]);
 
     // Try a limit < actual stack depth and expect to get a stack of depth
     // 'limit'.
@@ -88,7 +95,18 @@
     expect(asyncFrames.length, 10);
     expect(awaiterFrames.length, 10);
     expect(stack['truncated'], true);
-    verifyStack(frames, 10);
+    verifyStack(frames, [
+      'bar.async_op',
+      'foo.async_op',
+      'bar.async_op',
+      'foo.async_op',
+      'bar.async_op',
+      'foo.async_op',
+      'bar.async_op',
+      'foo.async_op',
+      'bar.async_op',
+      'foo.async_op',
+    ]);
   },
 // Invalid limit
   (Isolate isolate) async {
diff --git a/runtime/observatory/tests/service/next_through_simple_async_test.dart b/runtime/observatory/tests/service/next_through_simple_async_test.dart
index 5a3ac87..bc2c3d5 100644
--- a/runtime/observatory/tests/service/next_through_simple_async_test.dart
+++ b/runtime/observatory/tests/service/next_through_simple_async_test.dart
@@ -1,19 +1,17 @@
 // Copyright (c) 2017, 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.
-
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--lazy-async-stacks
 
 import 'test_helper.dart';
 import 'service_test_common.dart';
 import 'dart:io';
 
-const int LINE_A = 16;
+const int LINE_A = 14;
 const String file = "next_through_simple_async_test.dart";
 
-// line A is at the "code() async" line
-code() async {
+code() async {  // LINE_A
   File f = new File(Platform.script.toFilePath());
   DateTime modified = await f.lastModified();
   bool exists = await f.exists();
diff --git a/runtime/observatory/tests/service/next_through_simple_async_with_returns_test.dart b/runtime/observatory/tests/service/next_through_simple_async_with_returns_test.dart
index 68dca68..9a3f234 100644
--- a/runtime/observatory/tests/service/next_through_simple_async_with_returns_test.dart
+++ b/runtime/observatory/tests/service/next_through_simple_async_with_returns_test.dart
@@ -1,19 +1,17 @@
 // Copyright (c) 2017, 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.
-
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--lazy-async-stacks
 
 import 'test_helper.dart';
 import 'service_test_common.dart';
 import 'dart:io';
 
-const int LINE_A = 16;
+const int LINE_A = 14;
 const String file = "next_through_simple_async_with_returns_test.dart";
 
-// line A is at the "code() async" line
-code() async {
+code() async {  // LINE_A
   File f = new File(Platform.script.toFilePath());
   bool exists = await f.exists();
   if (exists) {
diff --git a/runtime/observatory/tests/service/pause_on_unhandled_async_exceptions2_test.dart b/runtime/observatory/tests/service/pause_on_unhandled_async_exceptions2_test.dart
index e922a19..67f6901 100644
--- a/runtime/observatory/tests/service/pause_on_unhandled_async_exceptions2_test.dart
+++ b/runtime/observatory/tests/service/pause_on_unhandled_async_exceptions2_test.dart
@@ -1,10 +1,9 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--async_debugger --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async_debugger --causal-async-stacks --no-lazy-async-stacks
-// VMOptions=--async_debugger --no-causal-async-stacks --lazy-async-stacks --optimization-counter-threshold=5
-// VMOptions=--async_debugger --causal-async-stacks --no-lazy-async-stacks --optimization-counter-threshold=5
+//
+// VMOptions=--async_debugger --lazy-async-stacks
+// VMOptions=--async_debugger --lazy-async-stacks --optimization-counter-threshold=5
 
 import 'package:observatory/service_io.dart';
 import 'package:observatory/models.dart' as M;
@@ -12,12 +11,12 @@
 import 'test_helper.dart';
 import 'service_test_common.dart';
 
-const LINE_A = 37;
+const LINE_A = 36;
 
 class Foo {}
 
 doThrow() {
-  throw "TheException"; // Line 13.
+  throw "TheException";
   return "end of doThrow";
 }
 
diff --git a/runtime/observatory/tests/service/pause_on_unhandled_async_exceptions_test.dart b/runtime/observatory/tests/service/pause_on_unhandled_async_exceptions_test.dart
index 05cf750..fe636dd 100644
--- a/runtime/observatory/tests/service/pause_on_unhandled_async_exceptions_test.dart
+++ b/runtime/observatory/tests/service/pause_on_unhandled_async_exceptions_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--async_debugger --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async_debugger --causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--async_debugger --lazy-async-stacks
 
 import 'package:observatory/service_io.dart';
 import 'package:observatory/models.dart' as M;
@@ -15,7 +15,7 @@
 class Foo {}
 
 doThrow() {
-  throw "TheException"; // Line 13.
+  throw "TheException";
   return "end of doThrow";
 }
 
@@ -45,21 +45,10 @@
     var stack = await isolate.getStack();
     expect(stack['asyncCausalFrames'], isNotNull);
     var asyncStack = stack['asyncCausalFrames'];
-    if (useCausalAsyncStacks) {
-      expect(asyncStack.length, greaterThanOrEqualTo(4));
-      expect(asyncStack[0].toString(), contains('doThrow'));
-      expect(asyncStack[1].toString(), contains('asyncThrower'));
-      expect(asyncStack[2].kind, equals(M.FrameKind.asyncSuspensionMarker));
-      expect(asyncStack[3].toString(), contains('testeeMain'));
-      // We've stopped at LINE_A.
-      expect(await asyncStack[3].location.toUserString(),
-          contains('.dart:$LINE_A'));
-    } else {
-      expect(asyncStack.length, greaterThanOrEqualTo(2));
-      expect(asyncStack[0].toString(), contains('doThrow'));
-      expect(asyncStack[1].toString(), contains('asyncThrower'));
-      // There was no await'er for "doThrow()".
-    }
+    expect(asyncStack.length, greaterThanOrEqualTo(2));
+    expect(asyncStack[0].toString(), contains('doThrow'));
+    expect(asyncStack[1].toString(), contains('asyncThrower'));
+    // There was no await'er for "doThrow()".
   }
 ];
 
diff --git a/runtime/observatory/tests/service/test_helper.dart b/runtime/observatory/tests/service/test_helper.dart
index 805e7fe..3143df6d 100644
--- a/runtime/observatory/tests/service/test_helper.dart
+++ b/runtime/observatory/tests/service/test_helper.dart
@@ -13,17 +13,11 @@
 import 'service_test_common.dart';
 export 'service_test_common.dart' show DDSTest, IsolateTest, VMTest;
 
-/// Whether to use causal async stacks (if not we use lazy async stacks).
-const bool useCausalAsyncStacks =
-    const bool.fromEnvironment('dart.developer.causal_async_stacks');
-
 /// Determines whether DDS is enabled for this test run.
 const bool useDds = const bool.fromEnvironment('USE_DDS');
 
 /// The extra arguments to use
-const List<String> extraDebuggingArgs = useCausalAsyncStacks
-    ? const ['--causal-async-stacks', '--no-lazy-async-stacks']
-    : const ['--no-causal-async-stacks', '--lazy-async-stacks'];
+const List<String> extraDebuggingArgs = ['--lazy-async-stacks'];
 
 /// Will be set to the http address of the VM's service protocol before
 /// any tests are invoked.
diff --git a/runtime/observatory_2/tests/service_2/async_single_step_exception_test.dart b/runtime/observatory_2/tests/service_2/async_single_step_exception_test.dart
index fdc490e..841afab 100644
--- a/runtime/observatory_2/tests/service_2/async_single_step_exception_test.dart
+++ b/runtime/observatory_2/tests/service_2/async_single_step_exception_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--async-debugger --verbose-debug --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async-debugger --verbose-debug --causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--async-debugger --verbose-debug --lazy-async-stacks
 
 import 'dart:developer';
 import 'service_test_common.dart';
diff --git a/runtime/observatory_2/tests/service_2/async_single_step_into_test.dart b/runtime/observatory_2/tests/service_2/async_single_step_into_test.dart
index 8d8417f..7477840 100644
--- a/runtime/observatory_2/tests/service_2/async_single_step_into_test.dart
+++ b/runtime/observatory_2/tests/service_2/async_single_step_into_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--async-debugger --verbose-debug --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async-debugger --verbose-debug --causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--async-debugger --verbose-debug --lazy-async-stacks
 
 import 'dart:developer';
 import 'service_test_common.dart';
diff --git a/runtime/observatory_2/tests/service_2/async_single_step_out_test.dart b/runtime/observatory_2/tests/service_2/async_single_step_out_test.dart
index 2b51e24..cfeac6c 100644
--- a/runtime/observatory_2/tests/service_2/async_single_step_out_test.dart
+++ b/runtime/observatory_2/tests/service_2/async_single_step_out_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--async-debugger --verbose-debug --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async-debugger --verbose-debug --causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--async-debugger --verbose-debug --lazy-async-stacks
 
 import 'dart:developer';
 import 'service_test_common.dart';
diff --git a/runtime/observatory_2/tests/service_2/async_star_single_step_into_test.dart b/runtime/observatory_2/tests/service_2/async_star_single_step_into_test.dart
index 65a784d..0d99fd5 100644
--- a/runtime/observatory_2/tests/service_2/async_star_single_step_into_test.dart
+++ b/runtime/observatory_2/tests/service_2/async_star_single_step_into_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--async-debugger --verbose-debug --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async-debugger --verbose-debug --causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--async-debugger --verbose-debug --lazy-async-stacks
 
 import 'dart:developer';
 import 'service_test_common.dart';
diff --git a/runtime/observatory_2/tests/service_2/async_star_step_out_test.dart b/runtime/observatory_2/tests/service_2/async_star_step_out_test.dart
index fca9d16..95ca280 100644
--- a/runtime/observatory_2/tests/service_2/async_star_step_out_test.dart
+++ b/runtime/observatory_2/tests/service_2/async_star_step_out_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--async-debugger --verbose-debug --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async-debugger --verbose-debug --causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--async-debugger --verbose-debug --lazy-async-stacks
 
 import 'dart:developer';
 import 'service_test_common.dart';
diff --git a/runtime/observatory_2/tests/service_2/async_step_out_test.dart b/runtime/observatory_2/tests/service_2/async_step_out_test.dart
index f22f8d8..4cce826 100644
--- a/runtime/observatory_2/tests/service_2/async_step_out_test.dart
+++ b/runtime/observatory_2/tests/service_2/async_step_out_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--async-debugger --verbose-debug --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async-debugger --verbose-debug --causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--async-debugger --verbose-debug --lazy-async-stacks
 
 import 'dart:developer';
 import 'service_test_common.dart';
diff --git a/runtime/observatory_2/tests/service_2/awaiter_async_stack_contents_2_test.dart b/runtime/observatory_2/tests/service_2/awaiter_async_stack_contents_2_test.dart
index be22e8b..0df05fd 100644
--- a/runtime/observatory_2/tests/service_2/awaiter_async_stack_contents_2_test.dart
+++ b/runtime/observatory_2/tests/service_2/awaiter_async_stack_contents_2_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2018, 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.
-// VMOptions=--async-debugger --verbose-debug --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async-debugger --verbose-debug --causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--async-debugger --verbose-debug --lazy-async-stacks
 
 import 'dart:developer';
 import 'package:observatory_2/models.dart' as M;
@@ -50,28 +50,13 @@
       print(v);
     }
 
-    if (useCausalAsyncStacks) {
-      expect(awaiterFrames.length, greaterThanOrEqualTo(4));
-      // Awaiter frame.
-      expect(await awaiterFrames[0].toUserString(),
-          stringContainsInOrder(['foobar', '.dart:${LINE_A}']));
-      // Awaiter frame.
-      expect(await awaiterFrames[1].toUserString(),
-          stringContainsInOrder(['helper', '.dart:${LINE_B}']));
-      // Suspension point.
-      expect(awaiterFrames[2].kind, equals(M.FrameKind.asyncSuspensionMarker));
-      // Causal frame.
-      expect(await awaiterFrames[3].toUserString(),
-          stringContainsInOrder(['testMain', '.dart:${LINE_C}']));
-    } else {
-      expect(awaiterFrames.length, greaterThanOrEqualTo(2));
-      // Awaiter frame.
-      expect(await awaiterFrames[0].toUserString(),
-          stringContainsInOrder(['foobar', '.dart:${LINE_A}']));
-      // Awaiter frame.
-      expect(await awaiterFrames[1].toUserString(),
-          stringContainsInOrder(['helper', '.dart:${LINE_B}']));
-    }
+    expect(awaiterFrames.length, greaterThanOrEqualTo(2));
+    // Awaiter frame.
+    expect(await awaiterFrames[0].toUserString(),
+        stringContainsInOrder(['foobar', '.dart:${LINE_A}']));
+    // Awaiter frame.
+    expect(await awaiterFrames[1].toUserString(),
+        stringContainsInOrder(['helper', '.dart:${LINE_B}']));
   },
 ];
 
diff --git a/runtime/observatory_2/tests/service_2/awaiter_async_stack_contents_test.dart b/runtime/observatory_2/tests/service_2/awaiter_async_stack_contents_test.dart
index 5f18945..9e0f8f3 100644
--- a/runtime/observatory_2/tests/service_2/awaiter_async_stack_contents_test.dart
+++ b/runtime/observatory_2/tests/service_2/awaiter_async_stack_contents_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--async-debugger --verbose-debug --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async-debugger --verbose-debug --causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--async-debugger --verbose-debug --lazy-async-stacks
 
 import 'dart:developer';
 import 'package:observatory_2/models.dart' as M;
@@ -53,29 +53,14 @@
     ServiceMap stack = await isolate.getStack();
     expect(stack['awaiterFrames'], isNotNull);
     List awaiterFrames = stack['awaiterFrames'];
-    if (useCausalAsyncStacks) {
-      expect(awaiterFrames.length, greaterThanOrEqualTo(4));
-      // Awaiter frame.
-      expect(await awaiterFrames[0].toUserString(),
-          stringContainsInOrder(['foobar', '.dart:$LINE_C']));
-      // Awaiter frame.
-      expect(await awaiterFrames[1].toUserString(),
-          stringContainsInOrder(['helper', '.dart:$LINE_D']));
-      // Suspension point.
-      expect(awaiterFrames[2].kind, equals(M.FrameKind.asyncSuspensionMarker));
-      // Causal frame.
-      expect(await awaiterFrames[3].toUserString(),
-          stringContainsInOrder(['testMain', '.dart:$LINE_B']));
-    } else {
-      expect(awaiterFrames.length, greaterThanOrEqualTo(2));
-      // Awaiter frame.
-      expect(await awaiterFrames[0].toUserString(),
-          stringContainsInOrder(['foobar', '.dart:$LINE_C']));
-      // Awaiter frame.
-      expect(await awaiterFrames[1].toUserString(),
-          stringContainsInOrder(['helper', '.dart:$LINE_D']));
-      // "helper" is not await'ed.
-    }
+    expect(awaiterFrames.length, greaterThanOrEqualTo(2));
+    // Awaiter frame.
+    expect(await awaiterFrames[0].toUserString(),
+        stringContainsInOrder(['foobar', '.dart:$LINE_C']));
+    // Awaiter frame.
+    expect(await awaiterFrames[1].toUserString(),
+        stringContainsInOrder(['helper', '.dart:$LINE_D']));
+    // "helper" is not await'ed.
   },
 ];
 
diff --git a/runtime/observatory_2/tests/service_2/causal_async_stack_contents_test.dart b/runtime/observatory_2/tests/service_2/causal_async_stack_contents_test.dart
index 067887d..7523c0f 100644
--- a/runtime/observatory_2/tests/service_2/causal_async_stack_contents_test.dart
+++ b/runtime/observatory_2/tests/service_2/causal_async_stack_contents_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks --verbose_debug
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks --verbose_debug
+//
+// VMOptions=--lazy-async-stacks --verbose_debug
 
 import 'dart:developer';
 import 'package:observatory_2/models.dart' as M;
@@ -48,14 +48,8 @@
     // Has causal frames (we are inside an async function)
     expect(stack['asyncCausalFrames'], isNotNull);
     var asyncStack = stack['asyncCausalFrames'];
-    if (useCausalAsyncStacks) {
-      expect(asyncStack[0].toString(), contains('helper'));
-      expect(asyncStack[1].kind, equals(M.FrameKind.asyncSuspensionMarker));
-      expect(asyncStack[2].toString(), contains('testMain'));
-    } else {
-      expect(asyncStack[0].toString(), contains('helper'));
-      // "helper" is not await'ed.
-    }
+    expect(asyncStack[0].toString(), contains('helper'));
+    // "helper" is not await'ed.
   },
   resumeIsolate,
   hasStoppedAtBreakpoint,
@@ -65,19 +59,9 @@
     // Has causal frames (we are inside a function called by an async function)
     expect(stack['asyncCausalFrames'], isNotNull);
     var asyncStack = stack['asyncCausalFrames'];
-    if (useCausalAsyncStacks) {
-      expect(asyncStack[0].toString(), contains('foobar'));
-      expect(asyncStack[1].toString(), contains('helper'));
-      expect(asyncStack[2].kind, equals(M.FrameKind.asyncSuspensionMarker));
-      expect(asyncStack[3].toString(), contains('testMain'));
-      expect(await asyncStack[0].location.toUserString(), contains('.dart:20'));
-      expect(await asyncStack[1].location.toUserString(), contains('.dart:27'));
-      expect(await asyncStack[3].location.toUserString(), contains('.dart:32'));
-    } else {
-      expect(asyncStack[0].toString(), contains('foobar'));
-      expect(asyncStack[1].toString(), contains('helper'));
-      // "helper" is not await'ed.
-    }
+    expect(asyncStack[0].toString(), contains('foobar'));
+    expect(asyncStack[1].toString(), contains('helper'));
+    // "helper" is not await'ed.
   },
 ];
 
diff --git a/runtime/observatory_2/tests/service_2/causal_async_stack_presence_test.dart b/runtime/observatory_2/tests/service_2/causal_async_stack_presence_test.dart
index c37359e..f52f4a1 100644
--- a/runtime/observatory_2/tests/service_2/causal_async_stack_presence_test.dart
+++ b/runtime/observatory_2/tests/service_2/causal_async_stack_presence_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks --verbose_debug
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks --verbose_debug
+//
+// VMOptions=--lazy-async-stacks --verbose_debug
 
 import 'dart:developer';
 import 'package:observatory_2/service_io.dart';
diff --git a/runtime/observatory_2/tests/service_2/causal_async_star_stack_contents_test.dart b/runtime/observatory_2/tests/service_2/causal_async_star_stack_contents_test.dart
index 4474624..5044d57 100644
--- a/runtime/observatory_2/tests/service_2/causal_async_star_stack_contents_test.dart
+++ b/runtime/observatory_2/tests/service_2/causal_async_star_stack_contents_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks --verbose_debug
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks --verbose_debug
+//
+// VMOptions=--lazy-async-stacks --verbose_debug
 
 import 'dart:developer';
 import 'package:observatory_2/models.dart' as M;
@@ -44,16 +44,9 @@
     // No causal frames because we are in a completely synchronous stack.
     expect(stack['asyncCausalFrames'], isNotNull);
     var asyncStack = stack['asyncCausalFrames'];
-    if (useCausalAsyncStacks) {
-      expect(asyncStack.length, greaterThanOrEqualTo(3));
-      expect(asyncStack[0].toString(), contains('helper'));
-      expect(asyncStack[1].kind, equals(M.FrameKind.asyncSuspensionMarker));
-      expect(asyncStack[2].toString(), contains('testMain'));
-    } else {
-      expect(asyncStack.length, greaterThanOrEqualTo(1));
-      expect(asyncStack[0].toString(), contains('helper'));
-      // helper isn't awaited.
-    }
+    expect(asyncStack.length, greaterThanOrEqualTo(1));
+    expect(asyncStack[0].toString(), contains('helper'));
+    // helper isn't awaited.
   },
   resumeIsolate,
   hasStoppedAtBreakpoint,
@@ -68,10 +61,7 @@
     expect(asyncStack[1].kind, equals(M.FrameKind.asyncSuspensionMarker));
     expect(asyncStack[2].toString(), contains('helper'));
     expect(asyncStack[3].kind, equals(M.FrameKind.asyncSuspensionMarker));
-    if (useCausalAsyncStacks) {
-      // helper isn't awaited.
-      expect(asyncStack[4].toString(), contains('testMain'));
-    }
+    // helper isn't awaited.
   },
   resumeIsolate,
   hasStoppedAtBreakpoint,
@@ -93,12 +83,7 @@
     expect(asyncStack[2].toString(), contains('helper'));
     expect(await asyncStack[2].location.toUserString(), contains('.dart:30'));
     expect(asyncStack[3].kind, equals(M.FrameKind.asyncSuspensionMarker));
-    if (useCausalAsyncStacks) {
-      // helper isn't awaited.
-      expect(asyncStack.length, greaterThanOrEqualTo(5));
-      expect(asyncStack[4].toString(), contains('testMain'));
-      expect(await asyncStack[4].location.toUserString(), contains('.dart:36'));
-    }
+    // helper isn't awaited.
   },
 ];
 
diff --git a/runtime/observatory_2/tests/service_2/causal_async_star_stack_presence_test.dart b/runtime/observatory_2/tests/service_2/causal_async_star_stack_presence_test.dart
index db19b2c..7fb385a 100644
--- a/runtime/observatory_2/tests/service_2/causal_async_star_stack_presence_test.dart
+++ b/runtime/observatory_2/tests/service_2/causal_async_star_stack_presence_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks --verbose_debug
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks --verbose_debug
+//
+// VMOptions=--lazy-async-stacks --verbose_debug
 
 import 'dart:developer';
 import 'package:observatory_2/service_io.dart';
diff --git a/runtime/observatory_2/tests/service_2/get_stack_limit_rpc_test.dart b/runtime/observatory_2/tests/service_2/get_stack_limit_rpc_test.dart
index 5248ebc..33766da 100644
--- a/runtime/observatory_2/tests/service_2/get_stack_limit_rpc_test.dart
+++ b/runtime/observatory_2/tests/service_2/get_stack_limit_rpc_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks
+// VMOptions=--lazy-async-stacks
 
 import 'dart:async';
 import 'dart:developer';
@@ -13,31 +13,29 @@
 import 'service_test_common.dart';
 import 'test_helper.dart';
 
-bar(int depth) {
+bar(int depth) async {
   if (depth == 21) {
     debugger();
     return;
   }
-  foo(depth + 1);
+  await foo(depth + 1);
 }
 
-foo(int depth) {
-  bar(depth + 1);
+foo(int depth) async {
+  if (depth == 10) {
+    // Yield once to force the rest to run async.
+    await 0;
+  }
+  await bar(depth + 1);
 }
 
-testMain() {
-  foo(0);
+testMain() async {
+  await foo(0);
 }
 
-verifyStack(List frames, int numFrames) {
-  for (int i = 0; i < frames.length && i < numFrames; ++i) {
-    final frame = frames[i];
-    if (i < 22) {
-      expect(frame.function.qualifiedName, (i % 2) == 0 ? 'bar' : 'foo');
-    } else if (i == 22) {
-      expect(frame.function.qualifiedName, 'testMain');
-      break;
-    }
+verifyStack(List frames, List<String> expectedNames) {
+  for (int i = 0; i < frames.length && i < expectedNames.length; ++i) {
+    expect(frames[i].function.qualifiedName, expectedNames[i]);
   }
 }
 
@@ -57,10 +55,14 @@
     var awaiterFrames = stack['awaiterFrames'];
     expect(frames.length, greaterThanOrEqualTo(20));
     expect(asyncFrames.length, greaterThan(frames.length));
-    expect(awaiterFrames.length, greaterThan(frames.length));
+    expect(awaiterFrames.length, 13);
     expect(stack['truncated'], false);
-
-    verifyStack(frames, frames.length);
+    verifyStack(frames, [
+      'bar.async_op', 'foo.async_op', 'bar.async_op', 'foo.async_op',
+      'bar.async_op', 'foo.async_op', 'bar.async_op', 'foo.async_op',
+      'bar.async_op', 'foo.async_op', 'bar.async_op', 'foo.async_op',
+      '_RootZone.runUnary', // Internal async. mech. ..
+    ]);
 
     final fullStackLength = frames.length;
 
@@ -75,7 +77,12 @@
     expect(asyncFrames.length, fullStackLength + 1);
     expect(asyncFrames.length, fullStackLength + 1);
     expect(stack['truncated'], true);
-    verifyStack(frames, fullStackLength);
+    verifyStack(frames, [
+      'bar.async_op', 'foo.async_op', 'bar.async_op', 'foo.async_op',
+      'bar.async_op', 'foo.async_op', 'bar.async_op', 'foo.async_op',
+      'bar.async_op', 'foo.async_op', 'bar.async_op', 'foo.async_op',
+      '_RootZone.runUnary', // Internal async. mech. ..
+    ]);
 
     // Try a limit < actual stack depth and expect to get a stack of depth
     // 'limit'.
@@ -88,7 +95,18 @@
     expect(asyncFrames.length, 10);
     expect(awaiterFrames.length, 10);
     expect(stack['truncated'], true);
-    verifyStack(frames, 10);
+    verifyStack(frames, [
+      'bar.async_op',
+      'foo.async_op',
+      'bar.async_op',
+      'foo.async_op',
+      'bar.async_op',
+      'foo.async_op',
+      'bar.async_op',
+      'foo.async_op',
+      'bar.async_op',
+      'foo.async_op',
+    ]);
   },
 // Invalid limit
   (Isolate isolate) async {
diff --git a/runtime/observatory_2/tests/service_2/next_through_simple_async_test.dart b/runtime/observatory_2/tests/service_2/next_through_simple_async_test.dart
index 5a3ac87..bc2c3d5 100644
--- a/runtime/observatory_2/tests/service_2/next_through_simple_async_test.dart
+++ b/runtime/observatory_2/tests/service_2/next_through_simple_async_test.dart
@@ -1,19 +1,17 @@
 // Copyright (c) 2017, 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.
-
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--lazy-async-stacks
 
 import 'test_helper.dart';
 import 'service_test_common.dart';
 import 'dart:io';
 
-const int LINE_A = 16;
+const int LINE_A = 14;
 const String file = "next_through_simple_async_test.dart";
 
-// line A is at the "code() async" line
-code() async {
+code() async {  // LINE_A
   File f = new File(Platform.script.toFilePath());
   DateTime modified = await f.lastModified();
   bool exists = await f.exists();
diff --git a/runtime/observatory_2/tests/service_2/next_through_simple_async_with_returns_test.dart b/runtime/observatory_2/tests/service_2/next_through_simple_async_with_returns_test.dart
index 68dca68..9a3f234 100644
--- a/runtime/observatory_2/tests/service_2/next_through_simple_async_with_returns_test.dart
+++ b/runtime/observatory_2/tests/service_2/next_through_simple_async_with_returns_test.dart
@@ -1,19 +1,17 @@
 // Copyright (c) 2017, 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.
-
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--lazy-async-stacks
 
 import 'test_helper.dart';
 import 'service_test_common.dart';
 import 'dart:io';
 
-const int LINE_A = 16;
+const int LINE_A = 14;
 const String file = "next_through_simple_async_with_returns_test.dart";
 
-// line A is at the "code() async" line
-code() async {
+code() async {  // LINE_A
   File f = new File(Platform.script.toFilePath());
   bool exists = await f.exists();
   if (exists) {
diff --git a/runtime/observatory_2/tests/service_2/pause_on_unhandled_async_exceptions2_test.dart b/runtime/observatory_2/tests/service_2/pause_on_unhandled_async_exceptions2_test.dart
index fa4bf52..50d9537 100644
--- a/runtime/observatory_2/tests/service_2/pause_on_unhandled_async_exceptions2_test.dart
+++ b/runtime/observatory_2/tests/service_2/pause_on_unhandled_async_exceptions2_test.dart
@@ -1,10 +1,9 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--async_debugger --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async_debugger --causal-async-stacks --no-lazy-async-stacks
-// VMOptions=--async_debugger --no-causal-async-stacks --lazy-async-stacks --optimization-counter-threshold=5
-// VMOptions=--async_debugger --causal-async-stacks --no-lazy-async-stacks --optimization-counter-threshold=5
+//
+// VMOptions=--async_debugger --lazy-async-stacks
+// VMOptions=--async_debugger --lazy-async-stacks --optimization-counter-threshold=5
 
 import 'package:observatory_2/service_io.dart';
 import 'package:observatory_2/models.dart' as M;
@@ -12,12 +11,12 @@
 import 'test_helper.dart';
 import 'service_test_common.dart';
 
-const LINE_A = 37;
+const LINE_A = 36;
 
 class Foo {}
 
 doThrow() {
-  throw "TheException"; // Line 13.
+  throw "TheException";
   return "end of doThrow";
 }
 
diff --git a/runtime/observatory_2/tests/service_2/pause_on_unhandled_async_exceptions_test.dart b/runtime/observatory_2/tests/service_2/pause_on_unhandled_async_exceptions_test.dart
index da16126..d179cb6 100644
--- a/runtime/observatory_2/tests/service_2/pause_on_unhandled_async_exceptions_test.dart
+++ b/runtime/observatory_2/tests/service_2/pause_on_unhandled_async_exceptions_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--async_debugger --no-causal-async-stacks --lazy-async-stacks
-// VMOptions=--async_debugger --causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--async_debugger --lazy-async-stacks
 
 import 'package:observatory_2/service_io.dart';
 import 'package:observatory_2/models.dart' as M;
@@ -15,7 +15,7 @@
 class Foo {}
 
 doThrow() {
-  throw "TheException"; // Line 13.
+  throw "TheException";
   return "end of doThrow";
 }
 
@@ -45,21 +45,10 @@
     var stack = await isolate.getStack();
     expect(stack['asyncCausalFrames'], isNotNull);
     var asyncStack = stack['asyncCausalFrames'];
-    if (useCausalAsyncStacks) {
-      expect(asyncStack.length, greaterThanOrEqualTo(4));
-      expect(asyncStack[0].toString(), contains('doThrow'));
-      expect(asyncStack[1].toString(), contains('asyncThrower'));
-      expect(asyncStack[2].kind, equals(M.FrameKind.asyncSuspensionMarker));
-      expect(asyncStack[3].toString(), contains('testeeMain'));
-      // We've stopped at LINE_A.
-      expect(await asyncStack[3].location.toUserString(),
-          contains('.dart:$LINE_A'));
-    } else {
-      expect(asyncStack.length, greaterThanOrEqualTo(2));
-      expect(asyncStack[0].toString(), contains('doThrow'));
-      expect(asyncStack[1].toString(), contains('asyncThrower'));
-      // There was no await'er for "doThrow()".
-    }
+    expect(asyncStack.length, greaterThanOrEqualTo(2));
+    expect(asyncStack[0].toString(), contains('doThrow'));
+    expect(asyncStack[1].toString(), contains('asyncThrower'));
+    // There was no await'er for "doThrow()".
   }
 ];
 
diff --git a/runtime/observatory_2/tests/service_2/test_helper.dart b/runtime/observatory_2/tests/service_2/test_helper.dart
index 18f345e..0a352fe 100644
--- a/runtime/observatory_2/tests/service_2/test_helper.dart
+++ b/runtime/observatory_2/tests/service_2/test_helper.dart
@@ -13,17 +13,11 @@
 import 'service_test_common.dart';
 export 'service_test_common.dart' show DDSTest, IsolateTest, VMTest;
 
-/// Whether to use causal async stacks (if not we use lazy async stacks).
-const bool useCausalAsyncStacks =
-    const bool.fromEnvironment('dart.developer.causal_async_stacks');
-
 /// Determines whether DDS is enabled for this test run.
 const bool useDds = const bool.fromEnvironment('USE_DDS');
 
 /// The extra arguments to use
-const List<String> extraDebuggingArgs = useCausalAsyncStacks
-    ? const ['--causal-async-stacks', '--no-lazy-async-stacks']
-    : const ['--no-causal-async-stacks', '--lazy-async-stacks'];
+const List<String> extraDebuggingArgs = ['--lazy-async-stacks'];
 
 /// Will be set to the http address of the VM's service protocol before
 /// any tests are invoked.
diff --git a/runtime/tests/vm/dart/causal_stacks/async_throws_stack_lazy_non_symbolic_test.dart b/runtime/tests/vm/dart/causal_stacks/async_throws_stack_lazy_non_symbolic_test.dart
index 2ec438e..5f18af8 100644
--- a/runtime/tests/vm/dart/causal_stacks/async_throws_stack_lazy_non_symbolic_test.dart
+++ b/runtime/tests/vm/dart/causal_stacks/async_throws_stack_lazy_non_symbolic_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2020, 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.
-
-// VMOptions=--dwarf-stack-traces --save-debugging-info=async_lazy_debug.so --lazy-async-stacks --no-causal-async-stacks --no-use-bare-instructions
+//
+// VMOptions=--dwarf-stack-traces --save-debugging-info=async_lazy_debug.so --lazy-async-stacks --no-use-bare-instructions
 
 import 'dart:async';
 import 'dart:io';
diff --git a/runtime/tests/vm/dart/causal_stacks/async_throws_stack_lazy_test.dart b/runtime/tests/vm/dart/causal_stacks/async_throws_stack_lazy_test.dart
index 3155257..26805f1 100644
--- a/runtime/tests/vm/dart/causal_stacks/async_throws_stack_lazy_test.dart
+++ b/runtime/tests/vm/dart/causal_stacks/async_throws_stack_lazy_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2019, 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.
-
-// VMOptions=--lazy-async-stacks --no-causal-async-stacks
+//
+// VMOptions=--lazy-async-stacks
 
 import 'dart:async';
 
diff --git a/runtime/tests/vm/dart/causal_stacks/async_throws_stack_no_causal_non_symbolic_test.dart b/runtime/tests/vm/dart/causal_stacks/async_throws_stack_no_causal_non_symbolic_test.dart
index f65de84..c9dbb09 100644
--- a/runtime/tests/vm/dart/causal_stacks/async_throws_stack_no_causal_non_symbolic_test.dart
+++ b/runtime/tests/vm/dart/causal_stacks/async_throws_stack_no_causal_non_symbolic_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2020, 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.
-
-// VMOptions=--dwarf-stack-traces --save-debugging-info=async_no_causal_debug.so --no-causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--dwarf-stack-traces --save-debugging-info=async_no_causal_debug.so --no-lazy-async-stacks
 
 import 'dart:async';
 import 'dart:io';
diff --git a/runtime/tests/vm/dart/causal_stacks/async_throws_stack_no_causal_test.dart b/runtime/tests/vm/dart/causal_stacks/async_throws_stack_no_causal_test.dart
index 7cc8cf0..84848c9 100644
--- a/runtime/tests/vm/dart/causal_stacks/async_throws_stack_no_causal_test.dart
+++ b/runtime/tests/vm/dart/causal_stacks/async_throws_stack_no_causal_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2019, 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.
-
-// VMOptions=--no-causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--no-lazy-async-stacks
 
 import 'dart:async';
 
diff --git a/runtime/tests/vm/dart/causal_stacks/async_throws_stack_non_symbolic_test.dart b/runtime/tests/vm/dart/causal_stacks/async_throws_stack_non_symbolic_test.dart
deleted file mode 100644
index cdb783a..0000000
--- a/runtime/tests/vm/dart/causal_stacks/async_throws_stack_non_symbolic_test.dart
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (c) 2020, 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.
-
-// VMOptions=--dwarf-stack-traces --save-debugging-info=async_causal_debug.so --causal-async-stacks --no-lazy-async-stacks
-
-import 'dart:async';
-import 'dart:io';
-
-import 'utils.dart';
-
-Future<void> main(List<String> args) async {
-  // We won't have access to the debugging info file on Android.
-  if (Platform.isAndroid) return;
-
-  await doTestsCausal('async_causal_debug.so');
-}
diff --git a/runtime/tests/vm/dart/causal_stacks/async_throws_stack_test.dart b/runtime/tests/vm/dart/causal_stacks/async_throws_stack_test.dart
deleted file mode 100644
index 6d25d36..0000000
--- a/runtime/tests/vm/dart/causal_stacks/async_throws_stack_test.dart
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (c) 2019, 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.
-
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks
-
-import 'dart:async';
-
-import 'utils.dart';
-
-Future<void> main(List<String> args) async => await doTestsCausal();
diff --git a/runtime/tests/vm/dart/causal_stacks/utils.dart b/runtime/tests/vm/dart/causal_stacks/utils.dart
index c77ce92..73ffe1d 100644
--- a/runtime/tests/vm/dart/causal_stacks/utils.dart
+++ b/runtime/tests/vm/dart/causal_stacks/utils.dart
@@ -285,520 +285,7 @@
 // Test "Suites":
 // ----
 
-// For: --causal-async-stacks
-Future<void> doTestsCausal([String? debugInfoFilename]) async {
-  final allYieldExpected = const <String>[
-    r'^#0      throwSync \(.*/utils.dart:16(:3)?\)$',
-    r'^#1      allYield3 \(.*/utils.dart:39(:3)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#2      allYield2 \(.*/utils.dart:34(:9)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#3      allYield \(.*/utils.dart:29(:9)?\)$',
-    r'^<asynchronous suspension>$',
-  ];
-  await doTestAwait(
-      allYield,
-      allYieldExpected +
-          const <String>[
-            r'^#4      doTestAwait ',
-            r'^#5      doTestsCausal ',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      allYield,
-      allYieldExpected +
-          const <String>[
-            r'^#4      doTestAwaitThen ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      allYield,
-      allYieldExpected +
-          const <String>[
-            r'^#4      doTestAwaitCatchError ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-
-  final noYieldsExpected = const <String>[
-    r'^#0      throwSync \(.*/utils.dart:16(:3)?\)$',
-    r'^#1      noYields3 \(.*/utils.dart:54(:3)?\)$',
-    r'^#2      noYields2 \(.*/utils.dart:50(:9)?\)$',
-    r'^#3      noYields \(.*/utils.dart:46(:9)?\)$',
-  ];
-  await doTestAwait(
-      noYields,
-      noYieldsExpected +
-          const <String>[
-            r'^#4      doTestAwait ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      noYields,
-      noYieldsExpected +
-          const <String>[
-            r'^#4      doTestAwaitThen ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      noYields,
-      noYieldsExpected +
-          const <String>[
-            r'^#4      doTestAwaitCatchError ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-
-  final mixedYieldsExpected = const <String>[
-    r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#1      mixedYields3 \(.*/utils.dart:70(:10)?\)$',
-    r'^#2      mixedYields2 \(.*/utils.dart:66(:9)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#3      mixedYields \(.*/utils.dart:61(:9)?\)$',
-  ];
-  await doTestAwait(
-      mixedYields,
-      mixedYieldsExpected +
-          const <String>[
-            r'^#4      doTestAwait ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      mixedYields,
-      mixedYieldsExpected +
-          const <String>[
-            r'^#4      doTestAwaitThen ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      mixedYields,
-      mixedYieldsExpected +
-          const <String>[
-            r'^#4      doTestAwaitCatchError ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-
-  final syncSuffixExpected = const <String>[
-    r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#1      syncSuffix3 \(.*/utils.dart:86(:10)?\)$',
-    r'^#2      syncSuffix2 \(.*/utils.dart:82(:9)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#3      syncSuffix \(.*/utils.dart:77(:9)?\)$',
-  ];
-  await doTestAwait(
-      syncSuffix,
-      syncSuffixExpected +
-          const <String>[
-            r'^#4      doTestAwait ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      syncSuffix,
-      syncSuffixExpected +
-          const <String>[
-            r'^#4      doTestAwaitThen ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      syncSuffix,
-      syncSuffixExpected +
-          const <String>[
-            r'^#4      doTestAwaitCatchError ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-
-  final nonAsyncNoStackExpected = const <String>[
-    r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#1      nonAsyncNoStack2.<anonymous closure> ',
-    r'^#2      _RootZone.runUnary ',
-    r'^#3      _FutureListener.handleValue ',
-    r'^#4      Future._propagateToListeners.handleValueCallback ',
-    r'^#5      Future._propagateToListeners ',
-    r'^#6      Future._completeWithValue ',
-    r'^#7      Future._asyncCompleteWithValue.<anonymous closure> ',
-    r'^#8      _microtaskLoop ',
-    r'^#9      _startMicrotaskLoop ',
-    r'^#10     _runPendingImmediateCallback ',
-    r'^#11     _RawReceivePortImpl._handleMessage ',
-  ];
-  await doTestAwait(
-      nonAsyncNoStack, nonAsyncNoStackExpected, debugInfoFilename);
-  await doTestAwaitThen(
-      nonAsyncNoStack, nonAsyncNoStackExpected, debugInfoFilename);
-  await doTestAwaitCatchError(
-      nonAsyncNoStack, nonAsyncNoStackExpected, debugInfoFilename);
-
-  final asyncStarThrowSyncExpected = const <String>[
-    r'^#0      throwSync \(.*/utils.dart:16(:3)?\)$',
-    r'^#1      asyncStarThrowSync \(.*/utils.dart:112(:11)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#2      awaitEveryAsyncStarThrowSync \(.+\)$',
-  ];
-  await doTestAwait(
-      awaitEveryAsyncStarThrowSync,
-      asyncStarThrowSyncExpected +
-          const <String>[
-            r'^#3      doTestAwait \(.+\)$',
-            r'^#4      doTestsCausal \(.+\)$',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> \(.+\)$',
-            r'^#7      _RawReceivePortImpl._handleMessage \(.+\)$',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      awaitEveryAsyncStarThrowSync,
-      asyncStarThrowSyncExpected +
-          const <String>[
-            r'^#3      doTestAwaitThen \(.+\)$',
-            r'^#4      doTestsCausal \(.+\)$',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> \(.+\)$',
-            r'^#7      _RawReceivePortImpl._handleMessage \(.+\)$',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      awaitEveryAsyncStarThrowSync,
-      asyncStarThrowSyncExpected +
-          const <String>[
-            r'^#3      doTestAwaitCatchError \(.+\)$',
-            r'^#4      doTestsCausal \(.+\)$',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> \(.+\)$',
-            r'^#7      _RawReceivePortImpl._handleMessage \(.+\)$',
-          ],
-      debugInfoFilename);
-
-  final asyncStarThrowAsyncExpected = const <String>[
-    r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#1      asyncStarThrowAsync \(.*/utils.dart:126(:11)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#2      awaitEveryAsyncStarThrowAsync \(.+\)$',
-  ];
-  await doTestAwait(
-      awaitEveryAsyncStarThrowAsync,
-      asyncStarThrowAsyncExpected +
-          const <String>[
-            r'^#3      doTestAwait \(.+\)$',
-            r'^#4      doTestsCausal \(.+\)$',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> \(.+\)$',
-            r'^#7      _RawReceivePortImpl._handleMessage \(.+\)$',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      awaitEveryAsyncStarThrowAsync,
-      asyncStarThrowAsyncExpected +
-          const <String>[
-            r'^#3      doTestAwaitThen \(.+\)$',
-            r'^#4      doTestsCausal \(.+\)$',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> \(.+\)$',
-            r'^#7      _RawReceivePortImpl._handleMessage \(.+\)$',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      awaitEveryAsyncStarThrowAsync,
-      asyncStarThrowAsyncExpected +
-          const <String>[
-            r'^#3      doTestAwaitCatchError \(.+\)$',
-            r'^#4      doTestsCausal \(.+\)$',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> \(.+\)$',
-            r'^#7      _RawReceivePortImpl._handleMessage \(.+\)$',
-          ],
-      debugInfoFilename);
-
-  final listenAsyncStartExpected = const <String>[
-    r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#1      asyncStarThrowAsync \(.*/utils.dart:126(:11)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#2      listenAsyncStarThrowAsync \(.+/utils.dart:132(:27)?\)$',
-  ];
-  await doTestAwait(
-      listenAsyncStarThrowAsync,
-      listenAsyncStartExpected +
-          const <String>[
-            r'^#3      doTestAwait \(.+\)$',
-            r'^#4      doTestsCausal \(.+\)$',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> \(.+\)$',
-            r'^#7      _RawReceivePortImpl._handleMessage \(.+\)$',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      listenAsyncStarThrowAsync,
-      listenAsyncStartExpected +
-          const <String>[
-            r'^#3      doTestAwaitThen \(.+\)$',
-            r'^#4      doTestsCausal \(.+\)$',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> \(.+\)$',
-            r'^#7      _RawReceivePortImpl._handleMessage \(.+\)$',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      listenAsyncStarThrowAsync,
-      listenAsyncStartExpected +
-          const <String>[
-            r'^#3      doTestAwaitCatchError \(.+\)$',
-            r'^#4      doTestsCausal \(.+\)$',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> \(.+\)$',
-            r'^#7      _RawReceivePortImpl._handleMessage \(.+\)$',
-          ],
-      debugInfoFilename);
-
-  final customErrorZoneExpected = const <String>[
-    r'#0      throwSync \(.*/utils.dart:16(:3)?\)$',
-    r'#1      allYield3 \(.*/utils.dart:39(:3)?\)$',
-    r'<asynchronous suspension>$',
-    r'#2      allYield2 \(.*/utils.dart:34(:9)?\)$',
-    r'<asynchronous suspension>$',
-    r'#3      allYield \(.*/utils.dart:29(:9)?\)$',
-    r'<asynchronous suspension>$',
-    r'#4      customErrorZone.<anonymous closure> \(.*/utils.dart:144(:11)?\)$',
-    r'#5      _rootRun ',
-    r'#6      _CustomZone.run ',
-    r'#7      _runZoned ',
-    r'#8      runZonedGuarded ',
-    r'#9      customErrorZone \(.*/utils.dart:143(:3)?\)$',
-  ];
-  await doTestAwait(
-      customErrorZone,
-      customErrorZoneExpected +
-          const <String>[
-            r'#10     doTestAwait ',
-            r'#11     doTestsCausal ',
-            r'<asynchronous suspension>$',
-            r'#12     main \(.+\)$',
-            r'#13     _delayEntrypointInvocation.<anonymous closure> ',
-            r'#14     _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      customErrorZone,
-      customErrorZoneExpected +
-          const <String>[
-            r'#10     doTestAwaitThen ',
-            r'#11     doTestsCausal ',
-            r'<asynchronous suspension>$',
-            r'#12     main \(.+\)$',
-            r'#13     _delayEntrypointInvocation.<anonymous closure> ',
-            r'#14     _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      customErrorZone,
-      customErrorZoneExpected +
-          const <String>[
-            r'#10     doTestAwaitCatchError ',
-            r'#11     doTestsCausal ',
-            r'<asynchronous suspension>$',
-            r'#12     main \(.+\)$',
-            r'#13     _delayEntrypointInvocation.<anonymous closure> ',
-            r'#14     _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-
-  final awaitTimeoutExpected = const <String>[
-    r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#1      awaitTimeout ',
-  ];
-  await doTestAwait(
-      awaitTimeout,
-      awaitTimeoutExpected +
-          const <String>[
-            r'^#2      doTestAwait ',
-            r'^#3      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#4      main \(.+\)$',
-            r'^#5      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#6      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      awaitTimeout,
-      awaitTimeoutExpected +
-          const <String>[
-            r'^#2      doTestAwaitThen ',
-            r'^#3      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#4      main \(.+\)$',
-            r'^#5      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#6      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      awaitTimeout,
-      awaitTimeoutExpected +
-          const <String>[
-            r'^#2      doTestAwaitCatchError ',
-            r'^#3      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#4      main \(.+\)$',
-            r'^#5      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#6      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-
-  final awaitWaitExpected = const <String>[
-    r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#1      awaitWait ',
-  ];
-  await doTestAwait(
-      awaitWait,
-      awaitWaitExpected +
-          const <String>[
-            r'^#2      doTestAwait ',
-            r'^#3      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#4      main \(.+\)$',
-            r'^#5      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#6      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      awaitWait,
-      awaitWaitExpected +
-          const <String>[
-            r'^#2      doTestAwaitThen ',
-            r'^#3      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#4      main \(.+\)$',
-            r'^#5      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#6      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      awaitWait,
-      awaitWaitExpected +
-          const <String>[
-            r'^#2      doTestAwaitCatchError ',
-            r'^#3      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#4      main \(.+\)$',
-            r'^#5      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#6      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-
-  final futureSyncWhenCompleteExpected = const <String>[
-    r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#1      new Future.sync ',
-    r'^#2      futureSyncWhenComplete ',
-  ];
-  await doTestAwait(
-      futureSyncWhenComplete,
-      futureSyncWhenCompleteExpected +
-          const <String>[
-            r'^#3      doTestAwait ',
-            r'^#4      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#7      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      futureSyncWhenComplete,
-      futureSyncWhenCompleteExpected +
-          const <String>[
-            r'^#3      doTestAwaitThen ',
-            r'^#4      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#7      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      futureSyncWhenComplete,
-      futureSyncWhenCompleteExpected +
-          const <String>[
-            r'^#3      doTestAwaitCatchError ',
-            r'^#4      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#7      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-}
-
-// For: --no-causal-async-stacks --no-lazy-async-stacks
+// For: --no-lazy-async-stacks
 Future<void> doTestsNoCausalNoLazy([String? debugInfoFilename]) async {
   final allYieldExpected = const <String>[
     r'^#0      throwSync \(.*/utils.dart:16(:3)?\)$',
diff --git a/runtime/tests/vm/dart/isolates/dart_api_create_lightweight_isolate_test.dart b/runtime/tests/vm/dart/isolates/dart_api_create_lightweight_isolate_test.dart
index 9f9359d..f2e8a70 100644
--- a/runtime/tests/vm/dart/isolates/dart_api_create_lightweight_isolate_test.dart
+++ b/runtime/tests/vm/dart/isolates/dart_api_create_lightweight_isolate_test.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 // SharedObjects=ffi_test_functions
+// VMOptions=
 // VMOptions=--enable-isolate-groups --disable-heap-verification
 
 import 'dart:async';
@@ -16,6 +17,8 @@
 import '../../../../../tests/ffi/dylib_utils.dart';
 
 final bool isAOT = Platform.executable.contains('dart_precompiled_runtime');
+final bool isolateGropusEnabled =
+    Platform.executableArguments.contains('--enable-isolate-groups');
 final sdkRoot = Platform.script.resolve('../../../../../');
 
 class Isolate extends Struct {}
@@ -23,6 +26,10 @@
 abstract class FfiBindings {
   static final ffiTestFunctions = dlopenPlatformSpecific("ffi_test_functions");
 
+  static final IGH_MsanUnpoison = ffiTestFunctions.lookupFunction<
+      Pointer<Isolate> Function(Pointer<Void>, IntPtr),
+      Pointer<Isolate> Function(Pointer<Void>, int)>('IGH_MsanUnpoison');
+
   static final IGH_CreateIsolate = ffiTestFunctions.lookupFunction<
       Pointer<Isolate> Function(Pointer<Utf8>, Pointer<Void>),
       Pointer<Isolate> Function(
@@ -49,6 +56,7 @@
   static Pointer<Isolate> createLightweightIsolate(
       String name, Pointer<Void> peer) {
     final cname = Utf8.toUtf8(name);
+    IGH_MsanUnpoison(cname.cast(), name.length + 10);
     try {
       final isolate = IGH_CreateIsolate(cname, peer);
       Expect.isTrue(isolate.address != 0);
@@ -61,10 +69,13 @@
   static void invokeTopLevelAndRunLoopAsync(
       Pointer<Isolate> isolate, SendPort sendPort, String name,
       {bool? errorsAreFatal, SendPort? onError, SendPort? onExit}) {
-    final dartScript = sdkRoot.resolve(
+    final dartScriptUri = sdkRoot.resolve(
         'runtime/tests/vm/dart/isolates/dart_api_create_lightweight_isolate_test.dart');
-    final libraryUri = Utf8.toUtf8(dartScript.toString());
+    final dartScript = dartScriptUri.toString();
+    final libraryUri = Utf8.toUtf8(dartScript);
+    IGH_MsanUnpoison(libraryUri.cast(), dartScript.length + 1);
     final functionName = Utf8.toUtf8(name);
+    IGH_MsanUnpoison(functionName.cast(), name.length + 1);
 
     IGH_StartIsolate(
         isolate,
@@ -94,6 +105,7 @@
 
 Future withPeerPointer(fun(Pointer<Void> peer)) async {
   final Pointer<Void> peer = Utf8.toUtf8('abc').cast();
+  FfiBindings.IGH_MsanUnpoison(peer.cast(), 'abc'.length + 1);
   try {
     await fun(peer);
   } catch (e, s) {
@@ -190,7 +202,7 @@
     await exit.first;
     Expect.equals(1, accumulatedErrors.length);
     Expect.equals('error-0', accumulatedErrors[0][0]);
-    Expect.isTrue(accumulatedErrors[0][1].contains('childTestFatalError'));
+    Expect.contains('childTestFatalError', accumulatedErrors[0][1]);
 
     exit.close();
     errors.close();
@@ -204,6 +216,19 @@
   await testFatalError();
 }
 
+Future testNotSupported() async {
+  dynamic exception;
+  try {
+    FfiBindings.createLightweightIsolate('debug-name', Pointer.fromAddress(0));
+  } catch (e) {
+    exception = e;
+  }
+  Expect.contains(
+      'Lightweight isolates are only implemented in AOT mode and need to be '
+      'explicitly enabled by passing --enable-isolate-groups.',
+      exception.toString());
+}
+
 Future testJit() async {
   dynamic exception;
   try {
@@ -211,12 +236,15 @@
   } catch (e) {
     exception = e;
   }
-  Expect.isTrue(exception
-      .toString()
-      .contains('Lightweight isolates are not yet ready in JIT mode'));
+  Expect.contains(
+      'Lightweight isolates are not yet ready in JIT mode', exception);
 }
 
 Future main(args) async {
+  if (!isolateGropusEnabled) {
+    await testNotSupported();
+    return;
+  }
   if (isAOT) {
     await testAot();
   } else {
diff --git a/runtime/tests/vm/dart/regress40189_test.dart b/runtime/tests/vm/dart/regress40189_test.dart
index 9f30e0c..f857e5b 100644
--- a/runtime/tests/vm/dart/regress40189_test.dart
+++ b/runtime/tests/vm/dart/regress40189_test.dart
@@ -1,7 +1,8 @@
 // Copyright (c) 2020, 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.
-// VMOptions=--lazy-async-stacks --no-causal-async-stacks
+//
+// VMOptions=--lazy-async-stacks
 
 import "package:expect/expect.dart";
 
diff --git a/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_lazy_non_symbolic_test.dart b/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_lazy_non_symbolic_test.dart
index 2ec438e..5f18af8 100644
--- a/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_lazy_non_symbolic_test.dart
+++ b/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_lazy_non_symbolic_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2020, 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.
-
-// VMOptions=--dwarf-stack-traces --save-debugging-info=async_lazy_debug.so --lazy-async-stacks --no-causal-async-stacks --no-use-bare-instructions
+//
+// VMOptions=--dwarf-stack-traces --save-debugging-info=async_lazy_debug.so --lazy-async-stacks --no-use-bare-instructions
 
 import 'dart:async';
 import 'dart:io';
diff --git a/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_lazy_test.dart b/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_lazy_test.dart
index 3155257..26805f1 100644
--- a/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_lazy_test.dart
+++ b/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_lazy_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2019, 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.
-
-// VMOptions=--lazy-async-stacks --no-causal-async-stacks
+//
+// VMOptions=--lazy-async-stacks
 
 import 'dart:async';
 
diff --git a/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_no_causal_non_symbolic_test.dart b/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_no_causal_non_symbolic_test.dart
index f65de84..c9dbb09 100644
--- a/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_no_causal_non_symbolic_test.dart
+++ b/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_no_causal_non_symbolic_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2020, 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.
-
-// VMOptions=--dwarf-stack-traces --save-debugging-info=async_no_causal_debug.so --no-causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--dwarf-stack-traces --save-debugging-info=async_no_causal_debug.so --no-lazy-async-stacks
 
 import 'dart:async';
 import 'dart:io';
diff --git a/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_no_causal_test.dart b/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_no_causal_test.dart
index 7cc8cf0..84848c9 100644
--- a/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_no_causal_test.dart
+++ b/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_no_causal_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2019, 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.
-
-// VMOptions=--no-causal-async-stacks --no-lazy-async-stacks
+//
+// VMOptions=--no-lazy-async-stacks
 
 import 'dart:async';
 
diff --git a/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_non_symbolic_test.dart b/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_non_symbolic_test.dart
deleted file mode 100644
index cdb783a..0000000
--- a/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_non_symbolic_test.dart
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (c) 2020, 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.
-
-// VMOptions=--dwarf-stack-traces --save-debugging-info=async_causal_debug.so --causal-async-stacks --no-lazy-async-stacks
-
-import 'dart:async';
-import 'dart:io';
-
-import 'utils.dart';
-
-Future<void> main(List<String> args) async {
-  // We won't have access to the debugging info file on Android.
-  if (Platform.isAndroid) return;
-
-  await doTestsCausal('async_causal_debug.so');
-}
diff --git a/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_test.dart b/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_test.dart
deleted file mode 100644
index 6d25d36..0000000
--- a/runtime/tests/vm/dart_2/causal_stacks/async_throws_stack_test.dart
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (c) 2019, 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.
-
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks
-
-import 'dart:async';
-
-import 'utils.dart';
-
-Future<void> main(List<String> args) async => await doTestsCausal();
diff --git a/runtime/tests/vm/dart_2/causal_stacks/utils.dart b/runtime/tests/vm/dart_2/causal_stacks/utils.dart
index f511d4c..192984f 100644
--- a/runtime/tests/vm/dart_2/causal_stacks/utils.dart
+++ b/runtime/tests/vm/dart_2/causal_stacks/utils.dart
@@ -285,520 +285,7 @@
 // Test "Suites":
 // ----
 
-// For: --causal-async-stacks
-Future<void> doTestsCausal([String debugInfoFilename]) async {
-  final allYieldExpected = const <String>[
-    r'^#0      throwSync \(.*/utils.dart:16(:3)?\)$',
-    r'^#1      allYield3 \(.*/utils.dart:39(:3)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#2      allYield2 \(.*/utils.dart:34(:9)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#3      allYield \(.*/utils.dart:29(:9)?\)$',
-    r'^<asynchronous suspension>$',
-  ];
-  await doTestAwait(
-      allYield,
-      allYieldExpected +
-          const <String>[
-            r'^#4      doTestAwait ',
-            r'^#5      doTestsCausal ',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      allYield,
-      allYieldExpected +
-          const <String>[
-            r'^#4      doTestAwaitThen ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      allYield,
-      allYieldExpected +
-          const <String>[
-            r'^#4      doTestAwaitCatchError ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-
-  final noYieldsExpected = const <String>[
-    r'^#0      throwSync \(.*/utils.dart:16(:3)?\)$',
-    r'^#1      noYields3 \(.*/utils.dart:54(:3)?\)$',
-    r'^#2      noYields2 \(.*/utils.dart:50(:9)?\)$',
-    r'^#3      noYields \(.*/utils.dart:46(:9)?\)$',
-  ];
-  await doTestAwait(
-      noYields,
-      noYieldsExpected +
-          const <String>[
-            r'^#4      doTestAwait ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      noYields,
-      noYieldsExpected +
-          const <String>[
-            r'^#4      doTestAwaitThen ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      noYields,
-      noYieldsExpected +
-          const <String>[
-            r'^#4      doTestAwaitCatchError ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-
-  final mixedYieldsExpected = const <String>[
-    r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#1      mixedYields3 \(.*/utils.dart:70(:10)?\)$',
-    r'^#2      mixedYields2 \(.*/utils.dart:66(:9)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#3      mixedYields \(.*/utils.dart:61(:9)?\)$',
-  ];
-  await doTestAwait(
-      mixedYields,
-      mixedYieldsExpected +
-          const <String>[
-            r'^#4      doTestAwait ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      mixedYields,
-      mixedYieldsExpected +
-          const <String>[
-            r'^#4      doTestAwaitThen ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      mixedYields,
-      mixedYieldsExpected +
-          const <String>[
-            r'^#4      doTestAwaitCatchError ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-
-  final syncSuffixExpected = const <String>[
-    r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#1      syncSuffix3 \(.*/utils.dart:86(:10)?\)$',
-    r'^#2      syncSuffix2 \(.*/utils.dart:82(:9)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#3      syncSuffix \(.*/utils.dart:77(:9)?\)$',
-  ];
-  await doTestAwait(
-      syncSuffix,
-      syncSuffixExpected +
-          const <String>[
-            r'^#4      doTestAwait ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      syncSuffix,
-      syncSuffixExpected +
-          const <String>[
-            r'^#4      doTestAwaitThen ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      syncSuffix,
-      syncSuffixExpected +
-          const <String>[
-            r'^#4      doTestAwaitCatchError ',
-            r'^#5      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#6      main ',
-            r'^#7      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#8      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-
-  final nonAsyncNoStackExpected = const <String>[
-    r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#1      nonAsyncNoStack2.<anonymous closure> ',
-    r'^#2      _RootZone.runUnary ',
-    r'^#3      _FutureListener.handleValue ',
-    r'^#4      Future._propagateToListeners.handleValueCallback ',
-    r'^#5      Future._propagateToListeners ',
-    r'^#6      Future._completeWithValue ',
-    r'^#7      Future._asyncCompleteWithValue.<anonymous closure> ',
-    r'^#8      _microtaskLoop ',
-    r'^#9      _startMicrotaskLoop ',
-    r'^#10     _runPendingImmediateCallback ',
-    r'^#11     _RawReceivePortImpl._handleMessage ',
-  ];
-  await doTestAwait(
-      nonAsyncNoStack, nonAsyncNoStackExpected, debugInfoFilename);
-  await doTestAwaitThen(
-      nonAsyncNoStack, nonAsyncNoStackExpected, debugInfoFilename);
-  await doTestAwaitCatchError(
-      nonAsyncNoStack, nonAsyncNoStackExpected, debugInfoFilename);
-
-  final asyncStarThrowSyncExpected = const <String>[
-    r'^#0      throwSync \(.*/utils.dart:16(:3)?\)$',
-    r'^#1      asyncStarThrowSync \(.*/utils.dart:112(:11)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#2      awaitEveryAsyncStarThrowSync \(.+\)$',
-  ];
-  await doTestAwait(
-      awaitEveryAsyncStarThrowSync,
-      asyncStarThrowSyncExpected +
-          const <String>[
-            r'^#3      doTestAwait \(.+\)$',
-            r'^#4      doTestsCausal \(.+\)$',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> \(.+\)$',
-            r'^#7      _RawReceivePortImpl._handleMessage \(.+\)$',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      awaitEveryAsyncStarThrowSync,
-      asyncStarThrowSyncExpected +
-          const <String>[
-            r'^#3      doTestAwaitThen \(.+\)$',
-            r'^#4      doTestsCausal \(.+\)$',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> \(.+\)$',
-            r'^#7      _RawReceivePortImpl._handleMessage \(.+\)$',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      awaitEveryAsyncStarThrowSync,
-      asyncStarThrowSyncExpected +
-          const <String>[
-            r'^#3      doTestAwaitCatchError \(.+\)$',
-            r'^#4      doTestsCausal \(.+\)$',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> \(.+\)$',
-            r'^#7      _RawReceivePortImpl._handleMessage \(.+\)$',
-          ],
-      debugInfoFilename);
-
-  final asyncStarThrowAsyncExpected = const <String>[
-    r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#1      asyncStarThrowAsync \(.*/utils.dart:126(:11)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#2      awaitEveryAsyncStarThrowAsync \(.+\)$',
-  ];
-  await doTestAwait(
-      awaitEveryAsyncStarThrowAsync,
-      asyncStarThrowAsyncExpected +
-          const <String>[
-            r'^#3      doTestAwait \(.+\)$',
-            r'^#4      doTestsCausal \(.+\)$',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> \(.+\)$',
-            r'^#7      _RawReceivePortImpl._handleMessage \(.+\)$',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      awaitEveryAsyncStarThrowAsync,
-      asyncStarThrowAsyncExpected +
-          const <String>[
-            r'^#3      doTestAwaitThen \(.+\)$',
-            r'^#4      doTestsCausal \(.+\)$',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> \(.+\)$',
-            r'^#7      _RawReceivePortImpl._handleMessage \(.+\)$',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      awaitEveryAsyncStarThrowAsync,
-      asyncStarThrowAsyncExpected +
-          const <String>[
-            r'^#3      doTestAwaitCatchError \(.+\)$',
-            r'^#4      doTestsCausal \(.+\)$',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> \(.+\)$',
-            r'^#7      _RawReceivePortImpl._handleMessage \(.+\)$',
-          ],
-      debugInfoFilename);
-
-  final listenAsyncStartExpected = const <String>[
-    r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#1      asyncStarThrowAsync \(.*/utils.dart:126(:11)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#2      listenAsyncStarThrowAsync \(.+/utils.dart:132(:27)?\)$',
-  ];
-  await doTestAwait(
-      listenAsyncStarThrowAsync,
-      listenAsyncStartExpected +
-          const <String>[
-            r'^#3      doTestAwait \(.+\)$',
-            r'^#4      doTestsCausal \(.+\)$',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> \(.+\)$',
-            r'^#7      _RawReceivePortImpl._handleMessage \(.+\)$',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      listenAsyncStarThrowAsync,
-      listenAsyncStartExpected +
-          const <String>[
-            r'^#3      doTestAwaitThen \(.+\)$',
-            r'^#4      doTestsCausal \(.+\)$',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> \(.+\)$',
-            r'^#7      _RawReceivePortImpl._handleMessage \(.+\)$',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      listenAsyncStarThrowAsync,
-      listenAsyncStartExpected +
-          const <String>[
-            r'^#3      doTestAwaitCatchError \(.+\)$',
-            r'^#4      doTestsCausal \(.+\)$',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> \(.+\)$',
-            r'^#7      _RawReceivePortImpl._handleMessage \(.+\)$',
-          ],
-      debugInfoFilename);
-
-  final customErrorZoneExpected = const <String>[
-    r'#0      throwSync \(.*/utils.dart:16(:3)?\)$',
-    r'#1      allYield3 \(.*/utils.dart:39(:3)?\)$',
-    r'<asynchronous suspension>$',
-    r'#2      allYield2 \(.*/utils.dart:34(:9)?\)$',
-    r'<asynchronous suspension>$',
-    r'#3      allYield \(.*/utils.dart:29(:9)?\)$',
-    r'<asynchronous suspension>$',
-    r'#4      customErrorZone.<anonymous closure> \(.*/utils.dart:144(:11)?\)$',
-    r'#5      _rootRun ',
-    r'#6      _CustomZone.run ',
-    r'#7      _runZoned ',
-    r'#8      runZonedGuarded ',
-    r'#9      customErrorZone \(.*/utils.dart:143(:3)?\)$',
-  ];
-  await doTestAwait(
-      customErrorZone,
-      customErrorZoneExpected +
-          const <String>[
-            r'#10     doTestAwait ',
-            r'#11     doTestsCausal ',
-            r'<asynchronous suspension>$',
-            r'#12     main \(.+\)$',
-            r'#13     _delayEntrypointInvocation.<anonymous closure> ',
-            r'#14     _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      customErrorZone,
-      customErrorZoneExpected +
-          const <String>[
-            r'#10     doTestAwaitThen ',
-            r'#11     doTestsCausal ',
-            r'<asynchronous suspension>$',
-            r'#12     main \(.+\)$',
-            r'#13     _delayEntrypointInvocation.<anonymous closure> ',
-            r'#14     _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      customErrorZone,
-      customErrorZoneExpected +
-          const <String>[
-            r'#10     doTestAwaitCatchError ',
-            r'#11     doTestsCausal ',
-            r'<asynchronous suspension>$',
-            r'#12     main \(.+\)$',
-            r'#13     _delayEntrypointInvocation.<anonymous closure> ',
-            r'#14     _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-
-  final awaitTimeoutExpected = const <String>[
-    r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#1      awaitTimeout ',
-  ];
-  await doTestAwait(
-      awaitTimeout,
-      awaitTimeoutExpected +
-          const <String>[
-            r'^#2      doTestAwait ',
-            r'^#3      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#4      main \(.+\)$',
-            r'^#5      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#6      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      awaitTimeout,
-      awaitTimeoutExpected +
-          const <String>[
-            r'^#2      doTestAwaitThen ',
-            r'^#3      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#4      main \(.+\)$',
-            r'^#5      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#6      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      awaitTimeout,
-      awaitTimeoutExpected +
-          const <String>[
-            r'^#2      doTestAwaitCatchError ',
-            r'^#3      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#4      main \(.+\)$',
-            r'^#5      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#6      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-
-  final awaitWaitExpected = const <String>[
-    r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#1      awaitWait ',
-  ];
-  await doTestAwait(
-      awaitWait,
-      awaitWaitExpected +
-          const <String>[
-            r'^#2      doTestAwait ',
-            r'^#3      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#4      main \(.+\)$',
-            r'^#5      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#6      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      awaitWait,
-      awaitWaitExpected +
-          const <String>[
-            r'^#2      doTestAwaitThen ',
-            r'^#3      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#4      main \(.+\)$',
-            r'^#5      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#6      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      awaitWait,
-      awaitWaitExpected +
-          const <String>[
-            r'^#2      doTestAwaitCatchError ',
-            r'^#3      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#4      main \(.+\)$',
-            r'^#5      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#6      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-
-  final futureSyncWhenCompleteExpected = const <String>[
-    r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
-    r'^<asynchronous suspension>$',
-    r'^#1      new Future.sync ',
-    r'^#2      futureSyncWhenComplete ',
-  ];
-  await doTestAwait(
-      futureSyncWhenComplete,
-      futureSyncWhenCompleteExpected +
-          const <String>[
-            r'^#3      doTestAwait ',
-            r'^#4      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#7      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitThen(
-      futureSyncWhenComplete,
-      futureSyncWhenCompleteExpected +
-          const <String>[
-            r'^#3      doTestAwaitThen ',
-            r'^#4      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#7      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-  await doTestAwaitCatchError(
-      futureSyncWhenComplete,
-      futureSyncWhenCompleteExpected +
-          const <String>[
-            r'^#3      doTestAwaitCatchError ',
-            r'^#4      doTestsCausal ',
-            r'^<asynchronous suspension>$',
-            r'^#5      main \(.+\)$',
-            r'^#6      _delayEntrypointInvocation.<anonymous closure> ',
-            r'^#7      _RawReceivePortImpl._handleMessage ',
-          ],
-      debugInfoFilename);
-}
-
-// For: --no-causal-async-stacks --no-lazy-async-stacks
+// For: --no-lazy-async-stacks
 Future<void> doTestsNoCausalNoLazy([String debugInfoFilename]) async {
   final allYieldExpected = const <String>[
     r'^#0      throwSync \(.*/utils.dart:16(:3)?\)$',
diff --git a/runtime/tests/vm/dart_2/isolates/dart_api_create_lightweight_isolate_test.dart b/runtime/tests/vm/dart_2/isolates/dart_api_create_lightweight_isolate_test.dart
index 89045e8..0daead0 100644
--- a/runtime/tests/vm/dart_2/isolates/dart_api_create_lightweight_isolate_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/dart_api_create_lightweight_isolate_test.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 // SharedObjects=ffi_test_functions
+// VMOptions=
 // VMOptions=--enable-isolate-groups --disable-heap-verification
 
 import 'dart:async';
@@ -16,6 +17,8 @@
 import '../../../../../tests/ffi/dylib_utils.dart';
 
 final bool isAOT = Platform.executable.contains('dart_precompiled_runtime');
+final bool isolateGropusEnabled =
+    Platform.executableArguments.contains('--enable-isolate-groups');
 final sdkRoot = Platform.script.resolve('../../../../../');
 
 class Isolate extends Struct {}
@@ -199,7 +202,7 @@
     await exit.first;
     Expect.equals(1, accumulatedErrors.length);
     Expect.equals('error-0', accumulatedErrors[0][0]);
-    Expect.isTrue(accumulatedErrors[0][1].contains('childTestFatalError'));
+    Expect.contains('childTestFatalError', accumulatedErrors[0][1]);
 
     exit.close();
     errors.close();
@@ -213,6 +216,19 @@
   await testFatalError();
 }
 
+Future testNotSupported() async {
+  dynamic exception;
+  try {
+    FfiBindings.createLightweightIsolate('debug-name', Pointer.fromAddress(0));
+  } catch (e) {
+    exception = e;
+  }
+  Expect.contains(
+      'Lightweight isolates are only implemented in AOT mode and need to be '
+      'explicitly enabled by passing --enable-isolate-groups.',
+      exception.toString());
+}
+
 Future testJit() async {
   dynamic exception;
   try {
@@ -220,12 +236,15 @@
   } catch (e) {
     exception = e;
   }
-  Expect.isTrue(exception
-      .toString()
-      .contains('Lightweight isolates are not yet ready in JIT mode'));
+  Expect.contains(
+      'Lightweight isolates are not yet ready in JIT mode', exception);
 }
 
 Future main(args) async {
+  if (!isolateGropusEnabled) {
+    await testNotSupported();
+    return;
+  }
   if (isAOT) {
     await testAot();
   } else {
diff --git a/runtime/tests/vm/dart_2/regress40189_test.dart b/runtime/tests/vm/dart_2/regress40189_test.dart
index 9f30e0c..f857e5b 100644
--- a/runtime/tests/vm/dart_2/regress40189_test.dart
+++ b/runtime/tests/vm/dart_2/regress40189_test.dart
@@ -1,7 +1,8 @@
 // Copyright (c) 2020, 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.
-// VMOptions=--lazy-async-stacks --no-causal-async-stacks
+//
+// VMOptions=--lazy-async-stacks
 
 import "package:expect/expect.dart";
 
diff --git a/runtime/vm/BUILD.gn b/runtime/vm/BUILD.gn
index 1da3a20..49fac81 100644
--- a/runtime/vm/BUILD.gn
+++ b/runtime/vm/BUILD.gn
@@ -178,10 +178,8 @@
       "$root_out_dir/vm_outline" + output_postfix + ".dill",
     ]
     args = [ "dart:core" ]
-    allow_causal_async_stacks = false
     args += [
       "-Ddart.vm.product=$is_product_flag",
-      "-Ddart.developer.causal_async_stacks=$allow_causal_async_stacks",
       "-Ddart.isVM=true",
       "--enable-experiment=non-nullable",
       "--nnbd-agnostic",
diff --git a/runtime/vm/base_isolate.h b/runtime/vm/base_isolate.h
index be59b16..a8c09ee 100644
--- a/runtime/vm/base_isolate.h
+++ b/runtime/vm/base_isolate.h
@@ -46,8 +46,6 @@
   // zones/handles in the API scope :
   // - Dart_RunLoop()
   // - IsolateSaver in Dart_NewNativePort
-  // Similarly, tracking async_stack_trace requires that we always reschedule
-  // on the same thread.
   // We probably need a mechanism to return to the specific thread only
   // for these specific cases. We should also determine if the embedder
   // should allow exiting an isolate with live state in zones/handles in
diff --git a/runtime/vm/bootstrap_natives.h b/runtime/vm/bootstrap_natives.h
index 8d51e7a..b1e5e653 100644
--- a/runtime/vm/bootstrap_natives.h
+++ b/runtime/vm/bootstrap_natives.h
@@ -162,9 +162,6 @@
   V(AssertionError_throwNew, 3)                                                \
   V(AssertionError_throwNewSource, 4)                                          \
   V(Async_rethrow, 2)                                                          \
-  V(StackTrace_asyncStackTraceHelper, 1)                                       \
-  V(StackTrace_clearAsyncThreadStackTrace, 0)                                  \
-  V(StackTrace_setAsyncThreadStackTrace, 1)                                    \
   V(StackTrace_current, 0)                                                     \
   V(TypeError_throwNew, 4)                                                     \
   V(FallThroughError_throwNew, 1)                                              \
diff --git a/runtime/vm/compilation_trace.cc b/runtime/vm/compilation_trace.cc
index 5a86366..d2f88ed 100644
--- a/runtime/vm/compilation_trace.cc
+++ b/runtime/vm/compilation_trace.cc
@@ -448,7 +448,6 @@
   ADD_FLAG(enable_asserts);
   ADD_FLAG(use_field_guards);
   ADD_FLAG(use_osr);
-  ADD_FLAG(causal_async_stacks);
   ADD_FLAG(fields_may_be_reset);
 #undef ADD_FLAG
 
diff --git a/runtime/vm/compiler/aot/precompiler.cc b/runtime/vm/compiler/aot/precompiler.cc
index 592f55f..ea2fc4a 100644
--- a/runtime/vm/compiler/aot/precompiler.cc
+++ b/runtime/vm/compiler/aot/precompiler.cc
@@ -416,7 +416,6 @@
       I->object_store()->set_simple_instance_of_function(null_function);
       I->object_store()->set_simple_instance_of_true_function(null_function);
       I->object_store()->set_simple_instance_of_false_function(null_function);
-      I->object_store()->set_async_set_thread_stack_trace(null_function);
       I->object_store()->set_async_star_move_next_helper(null_function);
       I->object_store()->set_complete_on_async_return(null_function);
       I->object_store()->set_async_star_stream_controller(null_class);
diff --git a/runtime/vm/compiler/asm_intrinsifier_arm.cc b/runtime/vm/compiler/asm_intrinsifier_arm.cc
index 9a58b9e..fd9c7c7 100644
--- a/runtime/vm/compiler/asm_intrinsifier_arm.cc
+++ b/runtime/vm/compiler/asm_intrinsifier_arm.cc
@@ -2235,20 +2235,6 @@
 #endif
 }
 
-void AsmIntrinsifier::ClearAsyncThreadStackTrace(Assembler* assembler,
-                                                 Label* normal_ir_body) {
-  __ LoadObject(R0, NullObject());
-  __ str(R0, Address(THR, target::Thread::async_stack_trace_offset()));
-  __ Ret();
-}
-
-void AsmIntrinsifier::SetAsyncThreadStackTrace(Assembler* assembler,
-                                               Label* normal_ir_body) {
-  __ ldr(R0, Address(THR, target::Thread::async_stack_trace_offset()));
-  __ LoadObject(R0, NullObject());
-  __ Ret();
-}
-
 #undef __
 
 }  // namespace compiler
diff --git a/runtime/vm/compiler/asm_intrinsifier_arm64.cc b/runtime/vm/compiler/asm_intrinsifier_arm64.cc
index 6464f77..1c1271d 100644
--- a/runtime/vm/compiler/asm_intrinsifier_arm64.cc
+++ b/runtime/vm/compiler/asm_intrinsifier_arm64.cc
@@ -2332,20 +2332,6 @@
 #endif
 }
 
-void AsmIntrinsifier::ClearAsyncThreadStackTrace(Assembler* assembler,
-                                                 Label* normal_ir_body) {
-  __ LoadObject(R0, NullObject());
-  __ str(R0, Address(THR, target::Thread::async_stack_trace_offset()));
-  __ ret();
-}
-
-void AsmIntrinsifier::SetAsyncThreadStackTrace(Assembler* assembler,
-                                               Label* normal_ir_body) {
-  __ ldr(R0, Address(THR, target::Thread::async_stack_trace_offset()));
-  __ LoadObject(R0, NullObject());
-  __ ret();
-}
-
 #undef __
 
 }  // namespace compiler
diff --git a/runtime/vm/compiler/asm_intrinsifier_ia32.cc b/runtime/vm/compiler/asm_intrinsifier_ia32.cc
index 09a12de..ec97c64 100644
--- a/runtime/vm/compiler/asm_intrinsifier_ia32.cc
+++ b/runtime/vm/compiler/asm_intrinsifier_ia32.cc
@@ -2240,20 +2240,6 @@
 #endif
 }
 
-void AsmIntrinsifier::ClearAsyncThreadStackTrace(Assembler* assembler,
-                                                 Label* normal_ir_body) {
-  __ LoadObject(EAX, NullObject());
-  __ movl(Address(THR, target::Thread::async_stack_trace_offset()), EAX);
-  __ ret();
-}
-
-void AsmIntrinsifier::SetAsyncThreadStackTrace(Assembler* assembler,
-                                               Label* normal_ir_body) {
-  __ movl(Address(THR, target::Thread::async_stack_trace_offset()), EAX);
-  __ LoadObject(EAX, NullObject());
-  __ ret();
-}
-
 #undef __
 
 }  // namespace compiler
diff --git a/runtime/vm/compiler/asm_intrinsifier_x64.cc b/runtime/vm/compiler/asm_intrinsifier_x64.cc
index dad953a..8a424dd 100644
--- a/runtime/vm/compiler/asm_intrinsifier_x64.cc
+++ b/runtime/vm/compiler/asm_intrinsifier_x64.cc
@@ -2268,20 +2268,6 @@
 #endif
 }
 
-void AsmIntrinsifier::ClearAsyncThreadStackTrace(Assembler* assembler,
-                                                 Label* normal_ir_body) {
-  __ LoadObject(RAX, NullObject());
-  __ movq(Address(THR, target::Thread::async_stack_trace_offset()), RAX);
-  __ ret();
-}
-
-void AsmIntrinsifier::SetAsyncThreadStackTrace(Assembler* assembler,
-                                               Label* normal_ir_body) {
-  __ movq(Address(THR, target::Thread::async_stack_trace_offset()), RAX);
-  __ LoadObject(RAX, NullObject());
-  __ ret();
-}
-
 #undef __
 
 }  // namespace compiler
diff --git a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
index 397daaf..83f434f 100644
--- a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
+++ b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
@@ -482,40 +482,6 @@
   return DebugStepCheck(check_pos);
 }
 
-Fragment StreamingFlowGraphBuilder::SetAsyncStackTrace(
-    const Function& dart_function) {
-  if (!FLAG_causal_async_stacks ||
-      !(dart_function.IsAsyncClosure() || dart_function.IsAsyncGenClosure())) {
-    return {};
-  }
-
-  // The code we are building will be executed right after we enter
-  // the function and before any nested contexts are allocated.
-  ASSERT(B->context_depth_ ==
-         scopes()->yield_jump_variable->owner()->context_level());
-
-  Fragment instructions;
-  LocalScope* scope = parsed_function()->scope();
-
-  const Function& target = Function::ZoneHandle(
-      Z, I->object_store()->async_set_thread_stack_trace());
-  ASSERT(!target.IsNull());
-
-  // Fetch and load :async_stack_trace
-  LocalVariable* async_stack_trace_var =
-      scope->LookupVariable(Symbols::AsyncStackTraceVar(), false);
-  ASSERT((async_stack_trace_var != NULL) &&
-         async_stack_trace_var->is_captured());
-
-  Fragment code;
-  code += LoadLocal(async_stack_trace_var);
-  // Call _setAsyncThreadStackTrace
-  code += StaticCall(TokenPosition::kNoSource, target,
-                     /* argument_count = */ 1, ICData::kStatic);
-  code += Drop();
-  return code;
-}
-
 Fragment StreamingFlowGraphBuilder::TypeArgumentsHandling(
     const Function& dart_function) {
   Fragment prologue = B->BuildDefaultTypeHandling(dart_function);
@@ -801,7 +767,6 @@
   Fragment F;
   F += CheckStackOverflowInPrologue(dart_function);
   F += DebugStepCheckInPrologue(dart_function, token_position);
-  F += SetAsyncStackTrace(dart_function);
   F += B->InitConstantParameters();
   return F;
 }
@@ -3042,10 +3007,6 @@
   Fragment instructions;
   LocalVariable* instance_variable = NULL;
 
-  const bool special_case_nop_async_stack_trace_helper =
-      !FLAG_causal_async_stacks &&
-      recognized_kind == MethodRecognizer::kAsyncStackTraceHelper;
-
   const bool special_case_unchecked_cast =
       klass.IsTopLevel() && (klass.library() == Library::InternalLibrary()) &&
       (target.name() == Symbols::UnsafeCast().raw());
@@ -3054,9 +3015,8 @@
       klass.IsTopLevel() && (klass.library() == Library::CoreLibrary()) &&
       (target.name() == Symbols::Identical().raw());
 
-  const bool special_case = special_case_identical ||
-                            special_case_unchecked_cast ||
-                            special_case_nop_async_stack_trace_helper;
+  const bool special_case =
+      special_case_identical || special_case_unchecked_cast;
 
   // If we cross the Kernel -> VM core library boundary, a [StaticInvocation]
   // can appear, but the thing we're calling is not a static method, but a
@@ -3116,10 +3076,6 @@
     ASSERT(argument_count == 2);
     instructions +=
         StrictCompare(position, Token::kEQ_STRICT, /*number_check=*/true);
-  } else if (special_case_nop_async_stack_trace_helper) {
-    ASSERT(argument_count == 1);
-    instructions += Drop();
-    instructions += NullConstant();
   } else if (special_case_unchecked_cast) {
     // Simply do nothing: the result value is already pushed on the stack.
   } else {
diff --git a/runtime/vm/compiler/frontend/kernel_to_il.cc b/runtime/vm/compiler/frontend/kernel_to_il.cc
index f7327ba..1620bbf 100644
--- a/runtime/vm/compiler/frontend/kernel_to_il.cc
+++ b/runtime/vm/compiler/frontend/kernel_to_il.cc
@@ -546,18 +546,6 @@
     instructions += DebugStepCheck(position);
   }
 
-  if (FLAG_causal_async_stacks &&
-      (function.IsAsyncClosure() || function.IsAsyncGenClosure())) {
-    // We are returning from an asynchronous closure. Before we do that, be
-    // sure to clear the thread's asynchronous stack trace.
-    const Function& target = Function::ZoneHandle(
-        Z, I->object_store()->async_clear_thread_stack_trace());
-    ASSERT(!target.IsNull());
-    instructions += StaticCall(TokenPosition::kNoSource, target,
-                               /* argument_count = */ 0, ICData::kStatic);
-    instructions += Drop();
-  }
-
   instructions += BaseFlowGraphBuilder::Return(position, yield_index);
 
   return instructions;
@@ -880,8 +868,6 @@
     case MethodRecognizer::kReachabilityFence:
     case MethodRecognizer::kUtf8DecoderScan:
       return true;
-    case MethodRecognizer::kAsyncStackTraceHelper:
-      return !FLAG_causal_async_stacks;
     default:
       return false;
   }
@@ -1225,10 +1211,6 @@
           StoreInstanceFieldInstr::Kind::kOther, kNoStoreBarrier);
       body += NullConstant();
       break;
-    case MethodRecognizer::kAsyncStackTraceHelper:
-      ASSERT(!FLAG_causal_async_stacks);
-      body += NullConstant();
-      break;
     case MethodRecognizer::kUtf8DecoderScan:
       ASSERT(function.NumParameters() == 5);
       body += LoadLocal(parsed_function_->RawParameterVariable(0));  // decoder
diff --git a/runtime/vm/compiler/frontend/scope_builder.cc b/runtime/vm/compiler/frontend/scope_builder.cc
index ab4762a..8ca008e 100644
--- a/runtime/vm/compiler/frontend/scope_builder.cc
+++ b/runtime/vm/compiler/frontend/scope_builder.cc
@@ -550,16 +550,6 @@
   }
   function_node_helper.SetJustRead(FunctionNodeHelper::kTypeParameters);
 
-  if (FLAG_causal_async_stacks &&
-      (function_node_helper.dart_async_marker_ == FunctionNodeHelper::kAsync ||
-       function_node_helper.dart_async_marker_ ==
-           FunctionNodeHelper::kAsyncStar)) {
-    LocalVariable* asyncStackTraceVar = MakeVariable(
-        TokenPosition::kNoSource, TokenPosition::kNoSource,
-        Symbols::AsyncStackTraceVar(), AbstractType::dynamic_type());
-    scope_->AddVariable(asyncStackTraceVar);
-  }
-
   // The :sync_op and :async_op continuations are called multiple times. So we
   // don't want the parameters from the first invocation to get stored in the
   // context and reused on later invocations with different parameters.
@@ -579,8 +569,8 @@
     first_body_token_position_ = helper_.reader_.min_position();
   }
 
-  // Ensure that :await_jump_var, :await_ctx_var, :async_op, :is_sync,
-  // :async_future and :async_stack_trace are captured.
+  // Ensure that :await_jump_var, :await_ctx_var, :async_op, :is_sync and
+  // :async_future are captured.
   if (function_node_helper.async_marker_ == FunctionNodeHelper::kSyncYielding) {
     {
       LocalVariable* temp = nullptr;
@@ -621,13 +611,6 @@
         scope_->CaptureVariable(temp);
       }
     }
-    if (FLAG_causal_async_stacks) {
-      LocalVariable* temp =
-          scope_->LookupVariable(Symbols::AsyncStackTraceVar(), true);
-      if (temp != nullptr) {
-        scope_->CaptureVariable(temp);
-      }
-    }
   }
 
   // Mark known chained futures such as _Future::timeout()'s _future.
diff --git a/runtime/vm/compiler/jit/compiler.cc b/runtime/vm/compiler/jit/compiler.cc
index 571907e..2c54ec6 100644
--- a/runtime/vm/compiler/jit/compiler.cc
+++ b/runtime/vm/compiler/jit/compiler.cc
@@ -104,7 +104,6 @@
     FLAG_reorder_basic_blocks = true;
     FLAG_use_field_guards = false;
     FLAG_use_cha_deopt = false;
-    FLAG_causal_async_stacks = false;
     FLAG_lazy_async_stacks = true;
 
 #if !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
diff --git a/runtime/vm/compiler/recognized_methods_list.h b/runtime/vm/compiler/recognized_methods_list.h
index 1f50840..1323840 100644
--- a/runtime/vm/compiler/recognized_methods_list.h
+++ b/runtime/vm/compiler/recognized_methods_list.h
@@ -159,7 +159,6 @@
   V(_HashVMBase, get:_deletedKeys, LinkedHashMap_getDeletedKeys, 0xd55a64fe)   \
   V(_HashVMBase, set:_deletedKeys, LinkedHashMap_setDeletedKeys, 0x5570ec7a)   \
   V(::, _classRangeCheck, ClassRangeCheck, 0x5ee76890)                         \
-  V(::, _asyncStackTraceHelper, AsyncStackTraceHelper, 0x92cea93f)             \
   V(::, _abi, FfiAbi, 0x00a48df9)                                              \
   V(::, _asFunctionInternal, FfiAsFunctionInternal, 0x4ea3f680)                \
   V(::, _nativeCallbackFunction, FfiNativeCallbackFunction, 0xe7a60d02)        \
@@ -383,10 +382,6 @@
   V(::, _getCurrentTag, Profiler_getCurrentTag, 0x33c3ec34)                    \
   V(::, _isDartStreamEnabled, Timeline_isDartStreamEnabled, 0x7dfcaa37)        \
 
-#define ASYNC_LIB_INTRINSIC_LIST(V)                                            \
-  V(::, _clearAsyncThreadStackTrace, ClearAsyncThreadStackTrace, 0x20fecae5)   \
-  V(::, _setAsyncThreadStackTrace, SetAsyncThreadStackTrace, 0x39346972)       \
-
 #define INTERNAL_LIB_INTRINSIC_LIST(V)                                         \
   V(::, allocateOneByteString, AllocateOneByteString, 0xc86bebfa)              \
   V(::, allocateTwoByteString, AllocateTwoByteString, 0xd0312797)              \
@@ -394,7 +389,6 @@
   V(::, writeIntoTwoByteString, WriteIntoTwoByteString, 0xd82789d0)            \
 
 #define ALL_INTRINSICS_NO_INTEGER_LIB_LIST(V)                                  \
-  ASYNC_LIB_INTRINSIC_LIST(V)                                                  \
   CORE_LIB_INTRINSIC_LIST(V)                                                   \
   DEVELOPER_LIB_INTRINSIC_LIST(V)                                              \
   INTERNAL_LIB_INTRINSIC_LIST(V)                                               \
diff --git a/runtime/vm/compiler/runtime_api.h b/runtime/vm/compiler/runtime_api.h
index 4418eeb..7ab2fdd 100644
--- a/runtime/vm/compiler/runtime_api.h
+++ b/runtime/vm/compiler/runtime_api.h
@@ -990,7 +990,6 @@
   static uword exit_through_runtime_call();
   static uword exit_through_ffi();
   static word dart_stream_offset();
-  static word async_stack_trace_offset();
   static word predefined_symbols_address_offset();
   static word optimize_entry_offset();
   static word deoptimize_entry_offset();
diff --git a/runtime/vm/compiler/runtime_offsets_extracted.h b/runtime/vm/compiler/runtime_offsets_extracted.h
index f1f6fa3..e4dae18 100644
--- a/runtime/vm/compiler/runtime_offsets_extracted.h
+++ b/runtime/vm/compiler/runtime_offsets_extracted.h
@@ -219,155 +219,153 @@
 static constexpr dart::compiler::target::word String_length_offset = 4;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 4;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 376;
+    Thread_AllocateArray_entry_point_offset = 368;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    696;
+    688;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    700;
+    692;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 128;
+    Thread_array_write_barrier_code_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 272;
+    Thread_array_write_barrier_entry_point_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 280;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 188;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 180;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 284;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 276;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 192;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 288;
+    Thread_allocate_object_entry_point_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 196;
+    Thread_allocate_object_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 292;
+    Thread_allocate_object_parameterized_entry_point_offset = 284;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 200;
+    Thread_allocate_object_parameterized_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 296;
+    Thread_allocate_object_slow_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 204;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 732;
-static constexpr dart::compiler::target::word Thread_async_stack_trace_offset =
-    96;
+    Thread_allocate_object_slow_stub_offset = 196;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 724;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 340;
-static constexpr dart::compiler::target::word Thread_bool_false_offset = 120;
-static constexpr dart::compiler::target::word Thread_bool_true_offset = 116;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 332;
+static constexpr dart::compiler::target::word Thread_bool_false_offset = 112;
+static constexpr dart::compiler::target::word Thread_bool_true_offset = 108;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 332;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 324;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 276;
+    Thread_call_to_runtime_entry_point_offset = 268;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 144;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 740;
+    Thread_call_to_runtime_stub_offset = 136;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 732;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 48;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    316;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 232;
+    308;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    320;
+    312;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    236;
+    228;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    356;
+    348;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 352;
+    Thread_double_negate_address_offset = 344;
 static constexpr dart::compiler::target::word Thread_end_offset = 56;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 256;
+    Thread_enter_safepoint_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    716;
+    708;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 260;
+    Thread_exit_safepoint_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 264;
+    Thread_call_native_through_safepoint_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 324;
+    Thread_call_native_through_safepoint_entry_point_offset = 316;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 136;
+    Thread_fix_allocation_stub_code_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 132;
+    Thread_fix_callers_target_code_offset = 124;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 368;
+    Thread_float_absolute_address_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 364;
+    Thread_float_negate_address_offset = 356;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    360;
+    352;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 372;
+    Thread_float_zerow_address_offset = 364;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    704;
+    696;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 140;
+    Thread_invoke_dart_code_stub_offset = 132;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    728;
+    720;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 44;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     68;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 240;
+    Thread_lazy_deopt_from_return_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 244;
+    Thread_lazy_deopt_from_throw_stub_offset = 236;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 252;
+    Thread_lazy_specialize_type_test_stub_offset = 244;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 84;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 308;
+    Thread_megamorphic_call_checked_entry_offset = 300;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 312;
+    Thread_switchable_call_miss_entry_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 216;
+    Thread_switchable_call_miss_stub_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 336;
+    Thread_no_scope_native_wrapper_entry_point_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 152;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 144;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 148;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 140;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 160;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 152;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 156;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 168;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 164;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 156;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 176;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 168;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 172;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 164;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 184;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 180;
-static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 172;
+static constexpr dart::compiler::target::word Thread_object_null_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 344;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 708;
+    Thread_predefined_symbols_address_offset = 336;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 700;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 712;
+    Thread_saved_shadow_call_stack_offset = 704;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    720;
+    712;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 248;
+    Thread_slow_type_test_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 328;
+    Thread_slow_type_test_entry_point_offset = 320;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 36;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     60;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 64;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 304;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 212;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 300;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 208;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     80;
 static constexpr dart::compiler::target::word
@@ -375,15 +373,15 @@
 static constexpr dart::compiler::target::word Thread_top_offset = 52;
 static constexpr dart::compiler::target::word Thread_top_resource_offset = 24;
 static constexpr dart::compiler::target::word
-    Thread_unboxed_int64_runtime_arg_offset = 104;
+    Thread_unboxed_int64_runtime_arg_offset = 96;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 92;
 static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    124;
+    116;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 268;
+    Thread_write_barrier_entry_point_offset = 260;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     40;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 724;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 716;
 static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8;
 static constexpr dart::compiler::target::word TwoByteString_data_offset = 12;
 static constexpr dart::compiler::target::word Type_arguments_offset = 16;
@@ -435,7 +433,7 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        664, 668, 672, 676, 680, -1, 684, -1, 688, 692, -1, -1, -1, -1, -1, -1};
+        656, 660, 664, 668, 672, -1, 676, -1, 680, 684, -1, -1, -1, -1, -1, -1};
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 8;
 static constexpr dart::compiler::target::word Array_InstanceSize = 12;
 static constexpr dart::compiler::target::word Array_header_size = 12;
@@ -738,156 +736,154 @@
 static constexpr dart::compiler::target::word String_length_offset = 8;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 736;
+    Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1400;
+    1392;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1408;
+    1400;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 240;
+    Thread_array_write_barrier_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 528;
+    Thread_array_write_barrier_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 360;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 368;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 560;
+    Thread_allocate_object_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 376;
+    Thread_allocate_object_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 568;
+    Thread_allocate_object_parameterized_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 384;
+    Thread_allocate_object_parameterized_stub_offset = 376;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 576;
+    Thread_allocate_object_slow_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 392;
+    Thread_allocate_object_slow_stub_offset = 384;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1472;
-static constexpr dart::compiler::target::word Thread_async_stack_trace_offset =
-    192;
+    1464;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 664;
-static constexpr dart::compiler::target::word Thread_bool_false_offset = 224;
-static constexpr dart::compiler::target::word Thread_bool_true_offset = 216;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 656;
+static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
+static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 648;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 536;
+    Thread_call_to_runtime_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 272;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1488;
+    Thread_call_to_runtime_stub_offset = 264;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1480;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 96;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    616;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 448;
+    608;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    624;
+    616;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    456;
+    448;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    696;
+    688;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 688;
+    Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word Thread_end_offset = 112;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 496;
+    Thread_enter_safepoint_stub_offset = 488;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1440;
+    1432;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 504;
+    Thread_exit_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 512;
+    Thread_call_native_through_safepoint_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 632;
+    Thread_call_native_through_safepoint_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 256;
+    Thread_fix_allocation_stub_code_offset = 248;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 248;
+    Thread_fix_callers_target_code_offset = 240;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 720;
+    Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 712;
+    Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    704;
+    696;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 728;
+    Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1416;
+    1408;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 264;
+    Thread_invoke_dart_code_stub_offset = 256;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1464;
+    1456;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 88;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     136;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 464;
+    Thread_lazy_deopt_from_return_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 472;
+    Thread_lazy_deopt_from_throw_stub_offset = 464;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 488;
+    Thread_lazy_specialize_type_test_stub_offset = 480;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 168;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 600;
+    Thread_megamorphic_call_checked_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 608;
+    Thread_switchable_call_miss_entry_offset = 600;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 416;
+    Thread_switchable_call_miss_stub_offset = 408;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 656;
+    Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 288;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 280;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 304;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 296;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 320;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 312;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 336;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 328;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 352;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 344;
-static constexpr dart::compiler::target::word Thread_object_null_offset = 208;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 672;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1424;
+    Thread_predefined_symbols_address_offset = 664;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1416;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1432;
+    Thread_saved_shadow_call_stack_offset = 1424;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1448;
+    1440;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 480;
+    Thread_slow_type_test_stub_offset = 472;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 640;
+    Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 72;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     120;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 408;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 400;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     160;
 static constexpr dart::compiler::target::word
@@ -895,16 +891,16 @@
 static constexpr dart::compiler::target::word Thread_top_offset = 104;
 static constexpr dart::compiler::target::word Thread_top_resource_offset = 48;
 static constexpr dart::compiler::target::word
-    Thread_unboxed_int64_runtime_arg_offset = 200;
+    Thread_unboxed_int64_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 184;
 static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    232;
+    224;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 520;
+    Thread_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     80;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1456;
+    1448;
 static constexpr dart::compiler::target::word TimelineStream_enabled_offset =
     16;
 static constexpr dart::compiler::target::word TwoByteString_data_offset = 16;
@@ -957,8 +953,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1312, 1320, 1328, 1336, -1,   -1,   1344, 1352,
-        1360, 1368, 1376, -1,   1384, 1392, -1,   -1};
+        1304, 1312, 1320, 1328, -1,   -1,   1336, 1344,
+        1352, 1360, 1368, -1,   1376, 1384, -1,   -1};
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_InstanceSize = 24;
 static constexpr dart::compiler::target::word Array_header_size = 24;
@@ -1259,155 +1255,153 @@
 static constexpr dart::compiler::target::word String_length_offset = 4;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 4;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 376;
+    Thread_AllocateArray_entry_point_offset = 368;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    664;
+    656;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    668;
+    660;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 128;
+    Thread_array_write_barrier_code_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 272;
+    Thread_array_write_barrier_entry_point_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 280;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 188;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 180;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 284;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 276;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 192;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 288;
+    Thread_allocate_object_entry_point_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 196;
+    Thread_allocate_object_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 292;
+    Thread_allocate_object_parameterized_entry_point_offset = 284;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 200;
+    Thread_allocate_object_parameterized_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 296;
+    Thread_allocate_object_slow_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 204;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 700;
-static constexpr dart::compiler::target::word Thread_async_stack_trace_offset =
-    96;
+    Thread_allocate_object_slow_stub_offset = 196;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 692;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 340;
-static constexpr dart::compiler::target::word Thread_bool_false_offset = 120;
-static constexpr dart::compiler::target::word Thread_bool_true_offset = 116;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 332;
+static constexpr dart::compiler::target::word Thread_bool_false_offset = 112;
+static constexpr dart::compiler::target::word Thread_bool_true_offset = 108;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 332;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 324;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 276;
+    Thread_call_to_runtime_entry_point_offset = 268;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 144;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 708;
+    Thread_call_to_runtime_stub_offset = 136;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 700;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 48;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    316;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 232;
+    308;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    320;
+    312;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    236;
+    228;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    356;
+    348;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 352;
+    Thread_double_negate_address_offset = 344;
 static constexpr dart::compiler::target::word Thread_end_offset = 56;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 256;
+    Thread_enter_safepoint_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    684;
+    676;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 260;
+    Thread_exit_safepoint_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 264;
+    Thread_call_native_through_safepoint_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 324;
+    Thread_call_native_through_safepoint_entry_point_offset = 316;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 136;
+    Thread_fix_allocation_stub_code_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 132;
+    Thread_fix_callers_target_code_offset = 124;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 368;
+    Thread_float_absolute_address_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 364;
+    Thread_float_negate_address_offset = 356;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    360;
+    352;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 372;
+    Thread_float_zerow_address_offset = 364;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    672;
+    664;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 140;
+    Thread_invoke_dart_code_stub_offset = 132;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    696;
+    688;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 44;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     68;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 240;
+    Thread_lazy_deopt_from_return_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 244;
+    Thread_lazy_deopt_from_throw_stub_offset = 236;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 252;
+    Thread_lazy_specialize_type_test_stub_offset = 244;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 84;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 308;
+    Thread_megamorphic_call_checked_entry_offset = 300;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 312;
+    Thread_switchable_call_miss_entry_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 216;
+    Thread_switchable_call_miss_stub_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 336;
+    Thread_no_scope_native_wrapper_entry_point_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 152;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 144;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 148;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 140;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 160;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 152;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 156;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 168;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 164;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 156;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 176;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 168;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 172;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 164;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 184;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 180;
-static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 172;
+static constexpr dart::compiler::target::word Thread_object_null_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 344;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 676;
+    Thread_predefined_symbols_address_offset = 336;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 668;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 680;
+    Thread_saved_shadow_call_stack_offset = 672;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    688;
+    680;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 248;
+    Thread_slow_type_test_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 328;
+    Thread_slow_type_test_entry_point_offset = 320;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 36;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     60;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 64;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 304;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 212;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 300;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 208;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     80;
 static constexpr dart::compiler::target::word
@@ -1415,15 +1409,15 @@
 static constexpr dart::compiler::target::word Thread_top_offset = 52;
 static constexpr dart::compiler::target::word Thread_top_resource_offset = 24;
 static constexpr dart::compiler::target::word
-    Thread_unboxed_int64_runtime_arg_offset = 104;
+    Thread_unboxed_int64_runtime_arg_offset = 96;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 92;
 static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    124;
+    116;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 268;
+    Thread_write_barrier_entry_point_offset = 260;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     40;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 692;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 684;
 static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8;
 static constexpr dart::compiler::target::word TwoByteString_data_offset = 12;
 static constexpr dart::compiler::target::word Type_arguments_offset = 16;
@@ -1775,156 +1769,154 @@
 static constexpr dart::compiler::target::word String_length_offset = 8;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 736;
+    Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1472;
+    1464;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1480;
+    1472;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 240;
+    Thread_array_write_barrier_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 528;
+    Thread_array_write_barrier_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 360;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 368;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 560;
+    Thread_allocate_object_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 376;
+    Thread_allocate_object_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 568;
+    Thread_allocate_object_parameterized_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 384;
+    Thread_allocate_object_parameterized_stub_offset = 376;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 576;
+    Thread_allocate_object_slow_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 392;
+    Thread_allocate_object_slow_stub_offset = 384;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1544;
-static constexpr dart::compiler::target::word Thread_async_stack_trace_offset =
-    192;
+    1536;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 664;
-static constexpr dart::compiler::target::word Thread_bool_false_offset = 224;
-static constexpr dart::compiler::target::word Thread_bool_true_offset = 216;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 656;
+static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
+static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 648;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 536;
+    Thread_call_to_runtime_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 272;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1560;
+    Thread_call_to_runtime_stub_offset = 264;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1552;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 96;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    616;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 448;
+    608;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    624;
+    616;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    456;
+    448;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    696;
+    688;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 688;
+    Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word Thread_end_offset = 112;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 496;
+    Thread_enter_safepoint_stub_offset = 488;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1512;
+    1504;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 504;
+    Thread_exit_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 512;
+    Thread_call_native_through_safepoint_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 632;
+    Thread_call_native_through_safepoint_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 256;
+    Thread_fix_allocation_stub_code_offset = 248;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 248;
+    Thread_fix_callers_target_code_offset = 240;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 720;
+    Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 712;
+    Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    704;
+    696;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 728;
+    Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1488;
+    1480;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 264;
+    Thread_invoke_dart_code_stub_offset = 256;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1536;
+    1528;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 88;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     136;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 464;
+    Thread_lazy_deopt_from_return_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 472;
+    Thread_lazy_deopt_from_throw_stub_offset = 464;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 488;
+    Thread_lazy_specialize_type_test_stub_offset = 480;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 168;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 600;
+    Thread_megamorphic_call_checked_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 608;
+    Thread_switchable_call_miss_entry_offset = 600;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 416;
+    Thread_switchable_call_miss_stub_offset = 408;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 656;
+    Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 288;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 280;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 304;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 296;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 320;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 312;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 336;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 328;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 352;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 344;
-static constexpr dart::compiler::target::word Thread_object_null_offset = 208;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 672;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1496;
+    Thread_predefined_symbols_address_offset = 664;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1488;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1504;
+    Thread_saved_shadow_call_stack_offset = 1496;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1520;
+    1512;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 480;
+    Thread_slow_type_test_stub_offset = 472;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 640;
+    Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 72;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     120;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 408;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 400;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     160;
 static constexpr dart::compiler::target::word
@@ -1932,16 +1924,16 @@
 static constexpr dart::compiler::target::word Thread_top_offset = 104;
 static constexpr dart::compiler::target::word Thread_top_resource_offset = 48;
 static constexpr dart::compiler::target::word
-    Thread_unboxed_int64_runtime_arg_offset = 200;
+    Thread_unboxed_int64_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 184;
 static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    232;
+    224;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 520;
+    Thread_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     80;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1528;
+    1520;
 static constexpr dart::compiler::target::word TimelineStream_enabled_offset =
     16;
 static constexpr dart::compiler::target::word TwoByteString_data_offset = 16;
@@ -1994,9 +1986,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392,
-        1400, 1408, 1416, 1424, -1,   -1,   -1,   -1,   1432, 1440, -1,
-        -1,   1448, 1456, 1464, -1,   -1,   -1,   -1,   -1,   -1};
+        1304, 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384,
+        1392, 1400, 1408, 1416, -1,   -1,   -1,   -1,   1424, 1432, -1,
+        -1,   1440, 1448, 1456, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_InstanceSize = 24;
 static constexpr dart::compiler::target::word Array_header_size = 24;
@@ -2296,155 +2288,153 @@
 static constexpr dart::compiler::target::word String_length_offset = 4;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 4;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 376;
+    Thread_AllocateArray_entry_point_offset = 368;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    696;
+    688;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    700;
+    692;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 128;
+    Thread_array_write_barrier_code_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 272;
+    Thread_array_write_barrier_entry_point_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 280;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 188;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 180;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 284;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 276;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 192;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 288;
+    Thread_allocate_object_entry_point_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 196;
+    Thread_allocate_object_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 292;
+    Thread_allocate_object_parameterized_entry_point_offset = 284;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 200;
+    Thread_allocate_object_parameterized_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 296;
+    Thread_allocate_object_slow_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 204;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 732;
-static constexpr dart::compiler::target::word Thread_async_stack_trace_offset =
-    96;
+    Thread_allocate_object_slow_stub_offset = 196;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 724;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 340;
-static constexpr dart::compiler::target::word Thread_bool_false_offset = 120;
-static constexpr dart::compiler::target::word Thread_bool_true_offset = 116;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 332;
+static constexpr dart::compiler::target::word Thread_bool_false_offset = 112;
+static constexpr dart::compiler::target::word Thread_bool_true_offset = 108;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 332;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 324;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 276;
+    Thread_call_to_runtime_entry_point_offset = 268;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 144;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 740;
+    Thread_call_to_runtime_stub_offset = 136;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 732;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 48;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    316;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 232;
+    308;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    320;
+    312;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    236;
+    228;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    356;
+    348;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 352;
+    Thread_double_negate_address_offset = 344;
 static constexpr dart::compiler::target::word Thread_end_offset = 56;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 256;
+    Thread_enter_safepoint_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    716;
+    708;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 260;
+    Thread_exit_safepoint_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 264;
+    Thread_call_native_through_safepoint_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 324;
+    Thread_call_native_through_safepoint_entry_point_offset = 316;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 136;
+    Thread_fix_allocation_stub_code_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 132;
+    Thread_fix_callers_target_code_offset = 124;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 368;
+    Thread_float_absolute_address_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 364;
+    Thread_float_negate_address_offset = 356;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    360;
+    352;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 372;
+    Thread_float_zerow_address_offset = 364;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    704;
+    696;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 140;
+    Thread_invoke_dart_code_stub_offset = 132;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    728;
+    720;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 44;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     68;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 240;
+    Thread_lazy_deopt_from_return_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 244;
+    Thread_lazy_deopt_from_throw_stub_offset = 236;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 252;
+    Thread_lazy_specialize_type_test_stub_offset = 244;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 84;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 308;
+    Thread_megamorphic_call_checked_entry_offset = 300;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 312;
+    Thread_switchable_call_miss_entry_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 216;
+    Thread_switchable_call_miss_stub_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 336;
+    Thread_no_scope_native_wrapper_entry_point_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 152;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 144;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 148;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 140;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 160;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 152;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 156;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 168;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 164;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 156;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 176;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 168;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 172;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 164;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 184;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 180;
-static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 172;
+static constexpr dart::compiler::target::word Thread_object_null_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 344;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 708;
+    Thread_predefined_symbols_address_offset = 336;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 700;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 712;
+    Thread_saved_shadow_call_stack_offset = 704;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    720;
+    712;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 248;
+    Thread_slow_type_test_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 328;
+    Thread_slow_type_test_entry_point_offset = 320;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 36;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     60;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 64;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 304;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 212;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 300;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 208;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     80;
 static constexpr dart::compiler::target::word
@@ -2452,15 +2442,15 @@
 static constexpr dart::compiler::target::word Thread_top_offset = 52;
 static constexpr dart::compiler::target::word Thread_top_resource_offset = 24;
 static constexpr dart::compiler::target::word
-    Thread_unboxed_int64_runtime_arg_offset = 104;
+    Thread_unboxed_int64_runtime_arg_offset = 96;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 92;
 static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    124;
+    116;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 268;
+    Thread_write_barrier_entry_point_offset = 260;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     40;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 724;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 716;
 static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8;
 static constexpr dart::compiler::target::word TwoByteString_data_offset = 12;
 static constexpr dart::compiler::target::word Type_arguments_offset = 16;
@@ -2509,7 +2499,7 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        664, 668, 672, 676, 680, -1, 684, -1, 688, 692, -1, -1, -1, -1, -1, -1};
+        656, 660, 664, 668, 672, -1, 676, -1, 680, 684, -1, -1, -1, -1, -1, -1};
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 8;
 static constexpr dart::compiler::target::word Array_InstanceSize = 12;
 static constexpr dart::compiler::target::word Array_header_size = 12;
@@ -2809,156 +2799,154 @@
 static constexpr dart::compiler::target::word String_length_offset = 8;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 736;
+    Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1400;
+    1392;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1408;
+    1400;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 240;
+    Thread_array_write_barrier_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 528;
+    Thread_array_write_barrier_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 360;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 368;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 560;
+    Thread_allocate_object_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 376;
+    Thread_allocate_object_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 568;
+    Thread_allocate_object_parameterized_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 384;
+    Thread_allocate_object_parameterized_stub_offset = 376;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 576;
+    Thread_allocate_object_slow_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 392;
+    Thread_allocate_object_slow_stub_offset = 384;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1472;
-static constexpr dart::compiler::target::word Thread_async_stack_trace_offset =
-    192;
+    1464;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 664;
-static constexpr dart::compiler::target::word Thread_bool_false_offset = 224;
-static constexpr dart::compiler::target::word Thread_bool_true_offset = 216;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 656;
+static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
+static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 648;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 536;
+    Thread_call_to_runtime_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 272;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1488;
+    Thread_call_to_runtime_stub_offset = 264;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1480;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 96;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    616;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 448;
+    608;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    624;
+    616;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    456;
+    448;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    696;
+    688;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 688;
+    Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word Thread_end_offset = 112;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 496;
+    Thread_enter_safepoint_stub_offset = 488;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1440;
+    1432;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 504;
+    Thread_exit_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 512;
+    Thread_call_native_through_safepoint_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 632;
+    Thread_call_native_through_safepoint_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 256;
+    Thread_fix_allocation_stub_code_offset = 248;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 248;
+    Thread_fix_callers_target_code_offset = 240;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 720;
+    Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 712;
+    Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    704;
+    696;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 728;
+    Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1416;
+    1408;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 264;
+    Thread_invoke_dart_code_stub_offset = 256;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1464;
+    1456;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 88;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     136;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 464;
+    Thread_lazy_deopt_from_return_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 472;
+    Thread_lazy_deopt_from_throw_stub_offset = 464;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 488;
+    Thread_lazy_specialize_type_test_stub_offset = 480;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 168;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 600;
+    Thread_megamorphic_call_checked_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 608;
+    Thread_switchable_call_miss_entry_offset = 600;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 416;
+    Thread_switchable_call_miss_stub_offset = 408;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 656;
+    Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 288;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 280;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 304;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 296;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 320;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 312;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 336;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 328;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 352;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 344;
-static constexpr dart::compiler::target::word Thread_object_null_offset = 208;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 672;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1424;
+    Thread_predefined_symbols_address_offset = 664;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1416;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1432;
+    Thread_saved_shadow_call_stack_offset = 1424;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1448;
+    1440;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 480;
+    Thread_slow_type_test_stub_offset = 472;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 640;
+    Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 72;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     120;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 408;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 400;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     160;
 static constexpr dart::compiler::target::word
@@ -2966,16 +2954,16 @@
 static constexpr dart::compiler::target::word Thread_top_offset = 104;
 static constexpr dart::compiler::target::word Thread_top_resource_offset = 48;
 static constexpr dart::compiler::target::word
-    Thread_unboxed_int64_runtime_arg_offset = 200;
+    Thread_unboxed_int64_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 184;
 static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    232;
+    224;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 520;
+    Thread_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     80;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1456;
+    1448;
 static constexpr dart::compiler::target::word TimelineStream_enabled_offset =
     16;
 static constexpr dart::compiler::target::word TwoByteString_data_offset = 16;
@@ -3025,8 +3013,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1312, 1320, 1328, 1336, -1,   -1,   1344, 1352,
-        1360, 1368, 1376, -1,   1384, 1392, -1,   -1};
+        1304, 1312, 1320, 1328, -1,   -1,   1336, 1344,
+        1352, 1360, 1368, -1,   1376, 1384, -1,   -1};
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_InstanceSize = 24;
 static constexpr dart::compiler::target::word Array_header_size = 24;
@@ -3324,155 +3312,153 @@
 static constexpr dart::compiler::target::word String_length_offset = 4;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 4;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 376;
+    Thread_AllocateArray_entry_point_offset = 368;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    664;
+    656;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    668;
+    660;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 128;
+    Thread_array_write_barrier_code_offset = 120;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 272;
+    Thread_array_write_barrier_entry_point_offset = 264;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 280;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 188;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 180;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 284;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 276;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 192;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 288;
+    Thread_allocate_object_entry_point_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 196;
+    Thread_allocate_object_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 292;
+    Thread_allocate_object_parameterized_entry_point_offset = 284;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 200;
+    Thread_allocate_object_parameterized_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 296;
+    Thread_allocate_object_slow_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 204;
-static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 700;
-static constexpr dart::compiler::target::word Thread_async_stack_trace_offset =
-    96;
+    Thread_allocate_object_slow_stub_offset = 196;
+static constexpr dart::compiler::target::word Thread_api_top_scope_offset = 692;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 340;
-static constexpr dart::compiler::target::word Thread_bool_false_offset = 120;
-static constexpr dart::compiler::target::word Thread_bool_true_offset = 116;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 332;
+static constexpr dart::compiler::target::word Thread_bool_false_offset = 112;
+static constexpr dart::compiler::target::word Thread_bool_true_offset = 108;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 332;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 324;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 276;
+    Thread_call_to_runtime_entry_point_offset = 268;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 144;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 708;
+    Thread_call_to_runtime_stub_offset = 136;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 700;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 48;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    316;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 232;
+    308;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 224;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    320;
+    312;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    236;
+    228;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    356;
+    348;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 352;
+    Thread_double_negate_address_offset = 344;
 static constexpr dart::compiler::target::word Thread_end_offset = 56;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 256;
+    Thread_enter_safepoint_stub_offset = 248;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    684;
+    676;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 260;
+    Thread_exit_safepoint_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 264;
+    Thread_call_native_through_safepoint_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 324;
+    Thread_call_native_through_safepoint_entry_point_offset = 316;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 136;
+    Thread_fix_allocation_stub_code_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 132;
+    Thread_fix_callers_target_code_offset = 124;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 368;
+    Thread_float_absolute_address_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 364;
+    Thread_float_negate_address_offset = 356;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    360;
+    352;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 372;
+    Thread_float_zerow_address_offset = 364;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    672;
+    664;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 140;
+    Thread_invoke_dart_code_stub_offset = 132;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    696;
+    688;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 44;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     68;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 240;
+    Thread_lazy_deopt_from_return_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 244;
+    Thread_lazy_deopt_from_throw_stub_offset = 236;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 252;
+    Thread_lazy_specialize_type_test_stub_offset = 244;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 84;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 308;
+    Thread_megamorphic_call_checked_entry_offset = 300;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 312;
+    Thread_switchable_call_miss_entry_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 216;
+    Thread_switchable_call_miss_stub_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 336;
+    Thread_no_scope_native_wrapper_entry_point_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 152;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 144;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 148;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 140;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 160;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 152;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 156;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 168;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 160;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 164;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 156;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 176;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 168;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 172;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 164;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 184;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 176;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 180;
-static constexpr dart::compiler::target::word Thread_object_null_offset = 112;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 172;
+static constexpr dart::compiler::target::word Thread_object_null_offset = 104;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 344;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 676;
+    Thread_predefined_symbols_address_offset = 336;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 668;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 680;
+    Thread_saved_shadow_call_stack_offset = 672;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    688;
+    680;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 248;
+    Thread_slow_type_test_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 328;
+    Thread_slow_type_test_entry_point_offset = 320;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 36;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     60;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 64;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 304;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 212;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 300;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 208;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     80;
 static constexpr dart::compiler::target::word
@@ -3480,15 +3466,15 @@
 static constexpr dart::compiler::target::word Thread_top_offset = 52;
 static constexpr dart::compiler::target::word Thread_top_resource_offset = 24;
 static constexpr dart::compiler::target::word
-    Thread_unboxed_int64_runtime_arg_offset = 104;
+    Thread_unboxed_int64_runtime_arg_offset = 96;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 92;
 static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    124;
+    116;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 268;
+    Thread_write_barrier_entry_point_offset = 260;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     40;
-static constexpr dart::compiler::target::word Thread_callback_code_offset = 692;
+static constexpr dart::compiler::target::word Thread_callback_code_offset = 684;
 static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8;
 static constexpr dart::compiler::target::word TwoByteString_data_offset = 12;
 static constexpr dart::compiler::target::word Type_arguments_offset = 16;
@@ -3834,156 +3820,154 @@
 static constexpr dart::compiler::target::word String_length_offset = 8;
 static constexpr dart::compiler::target::word SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    Thread_AllocateArray_entry_point_offset = 736;
+    Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word Thread_active_exception_offset =
-    1472;
+    1464;
 static constexpr dart::compiler::target::word Thread_active_stacktrace_offset =
-    1480;
+    1472;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_code_offset = 240;
+    Thread_array_write_barrier_code_offset = 232;
 static constexpr dart::compiler::target::word
-    Thread_array_write_barrier_entry_point_offset = 528;
+    Thread_array_write_barrier_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_with_fpu_regs_stub_offset = 360;
+    Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    Thread_allocate_mint_without_fpu_regs_stub_offset = 368;
+    Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_entry_point_offset = 560;
+    Thread_allocate_object_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_stub_offset = 376;
+    Thread_allocate_object_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_entry_point_offset = 568;
+    Thread_allocate_object_parameterized_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_parameterized_stub_offset = 384;
+    Thread_allocate_object_parameterized_stub_offset = 376;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_entry_point_offset = 576;
+    Thread_allocate_object_slow_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    Thread_allocate_object_slow_stub_offset = 392;
+    Thread_allocate_object_slow_stub_offset = 384;
 static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
-    1544;
-static constexpr dart::compiler::target::word Thread_async_stack_trace_offset =
-    192;
+    1536;
 static constexpr dart::compiler::target::word
-    Thread_auto_scope_native_wrapper_entry_point_offset = 664;
-static constexpr dart::compiler::target::word Thread_bool_false_offset = 224;
-static constexpr dart::compiler::target::word Thread_bool_true_offset = 216;
+    Thread_auto_scope_native_wrapper_entry_point_offset = 656;
+static constexpr dart::compiler::target::word Thread_bool_false_offset = 216;
+static constexpr dart::compiler::target::word Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    Thread_bootstrap_native_wrapper_entry_point_offset = 648;
+    Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_entry_point_offset = 536;
+    Thread_call_to_runtime_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    Thread_call_to_runtime_stub_offset = 272;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1560;
+    Thread_call_to_runtime_stub_offset = 264;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 1552;
 static constexpr dart::compiler::target::word
     Thread_dispatch_table_array_offset = 96;
 static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
-    616;
-static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 448;
+    608;
+static constexpr dart::compiler::target::word Thread_optimize_stub_offset = 440;
 static constexpr dart::compiler::target::word Thread_deoptimize_entry_offset =
-    624;
+    616;
 static constexpr dart::compiler::target::word Thread_deoptimize_stub_offset =
-    456;
+    448;
 static constexpr dart::compiler::target::word Thread_double_abs_address_offset =
-    696;
+    688;
 static constexpr dart::compiler::target::word
-    Thread_double_negate_address_offset = 688;
+    Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word Thread_end_offset = 112;
 static constexpr dart::compiler::target::word
-    Thread_enter_safepoint_stub_offset = 496;
+    Thread_enter_safepoint_stub_offset = 488;
 static constexpr dart::compiler::target::word Thread_execution_state_offset =
-    1512;
+    1504;
 static constexpr dart::compiler::target::word
-    Thread_exit_safepoint_stub_offset = 504;
+    Thread_exit_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_stub_offset = 512;
+    Thread_call_native_through_safepoint_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    Thread_call_native_through_safepoint_entry_point_offset = 632;
+    Thread_call_native_through_safepoint_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    Thread_fix_allocation_stub_code_offset = 256;
+    Thread_fix_allocation_stub_code_offset = 248;
 static constexpr dart::compiler::target::word
-    Thread_fix_callers_target_code_offset = 248;
+    Thread_fix_callers_target_code_offset = 240;
 static constexpr dart::compiler::target::word
-    Thread_float_absolute_address_offset = 720;
+    Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    Thread_float_negate_address_offset = 712;
+    Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word Thread_float_not_address_offset =
-    704;
+    696;
 static constexpr dart::compiler::target::word
-    Thread_float_zerow_address_offset = 728;
+    Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word Thread_global_object_pool_offset =
-    1488;
+    1480;
 static constexpr dart::compiler::target::word
-    Thread_invoke_dart_code_stub_offset = 264;
+    Thread_invoke_dart_code_stub_offset = 256;
 static constexpr dart::compiler::target::word Thread_exit_through_ffi_offset =
-    1536;
+    1528;
 static constexpr dart::compiler::target::word Thread_isolate_offset = 88;
 static constexpr dart::compiler::target::word Thread_field_table_values_offset =
     136;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_return_stub_offset = 464;
+    Thread_lazy_deopt_from_return_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    Thread_lazy_deopt_from_throw_stub_offset = 472;
+    Thread_lazy_deopt_from_throw_stub_offset = 464;
 static constexpr dart::compiler::target::word
-    Thread_lazy_specialize_type_test_stub_offset = 488;
+    Thread_lazy_specialize_type_test_stub_offset = 480;
 static constexpr dart::compiler::target::word
     Thread_marking_stack_block_offset = 168;
 static constexpr dart::compiler::target::word
-    Thread_megamorphic_call_checked_entry_offset = 600;
+    Thread_megamorphic_call_checked_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_entry_offset = 608;
+    Thread_switchable_call_miss_entry_offset = 600;
 static constexpr dart::compiler::target::word
-    Thread_switchable_call_miss_stub_offset = 416;
+    Thread_switchable_call_miss_stub_offset = 408;
 static constexpr dart::compiler::target::word
-    Thread_no_scope_native_wrapper_entry_point_offset = 656;
+    Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 288;
+    Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
-    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 280;
+    Thread_late_initialization_error_shared_without_fpu_regs_stub_offset = 272;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_with_fpu_regs_stub_offset = 304;
+    Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    Thread_null_error_shared_without_fpu_regs_stub_offset = 296;
+    Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 320;
+    Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 312;
+    Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 336;
+    Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 328;
+    Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_with_fpu_regs_stub_offset = 352;
+    Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    Thread_range_error_shared_without_fpu_regs_stub_offset = 344;
-static constexpr dart::compiler::target::word Thread_object_null_offset = 208;
+    Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
+static constexpr dart::compiler::target::word Thread_object_null_offset = 200;
 static constexpr dart::compiler::target::word
-    Thread_predefined_symbols_address_offset = 672;
-static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1496;
+    Thread_predefined_symbols_address_offset = 664;
+static constexpr dart::compiler::target::word Thread_resume_pc_offset = 1488;
 static constexpr dart::compiler::target::word
-    Thread_saved_shadow_call_stack_offset = 1504;
+    Thread_saved_shadow_call_stack_offset = 1496;
 static constexpr dart::compiler::target::word Thread_safepoint_state_offset =
-    1520;
+    1512;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_stub_offset = 480;
+    Thread_slow_type_test_stub_offset = 472;
 static constexpr dart::compiler::target::word
-    Thread_slow_type_test_entry_point_offset = 640;
+    Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word Thread_stack_limit_offset = 72;
 static constexpr dart::compiler::target::word Thread_saved_stack_limit_offset =
     120;
 static constexpr dart::compiler::target::word
     Thread_stack_overflow_flags_offset = 128;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 408;
+    Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 400;
+    Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
 static constexpr dart::compiler::target::word Thread_store_buffer_block_offset =
     160;
 static constexpr dart::compiler::target::word
@@ -3991,16 +3975,16 @@
 static constexpr dart::compiler::target::word Thread_top_offset = 104;
 static constexpr dart::compiler::target::word Thread_top_resource_offset = 48;
 static constexpr dart::compiler::target::word
-    Thread_unboxed_int64_runtime_arg_offset = 200;
+    Thread_unboxed_int64_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word Thread_vm_tag_offset = 184;
 static constexpr dart::compiler::target::word Thread_write_barrier_code_offset =
-    232;
+    224;
 static constexpr dart::compiler::target::word
-    Thread_write_barrier_entry_point_offset = 520;
+    Thread_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
     80;
 static constexpr dart::compiler::target::word Thread_callback_code_offset =
-    1528;
+    1520;
 static constexpr dart::compiler::target::word TimelineStream_enabled_offset =
     16;
 static constexpr dart::compiler::target::word TwoByteString_data_offset = 16;
@@ -4050,9 +4034,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     Thread_write_barrier_wrappers_thread_offset[] = {
-        1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392,
-        1400, 1408, 1416, 1424, -1,   -1,   -1,   -1,   1432, 1440, -1,
-        -1,   1448, 1456, 1464, -1,   -1,   -1,   -1,   -1,   -1};
+        1304, 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384,
+        1392, 1400, 1408, 1416, -1,   -1,   -1,   -1,   1424, 1432, -1,
+        -1,   1440, 1448, 1456, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word Array_InstanceSize = 24;
 static constexpr dart::compiler::target::word Array_header_size = 24;
@@ -4375,148 +4359,146 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 4;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 376;
+    AOT_Thread_AllocateArray_entry_point_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 696;
+    AOT_Thread_active_exception_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 700;
+    AOT_Thread_active_stacktrace_offset = 692;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 128;
+    AOT_Thread_array_write_barrier_code_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 272;
+    AOT_Thread_array_write_barrier_entry_point_offset = 264;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 280;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 188;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 180;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 284;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 276;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 192;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 288;
+    AOT_Thread_allocate_object_entry_point_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 196;
+    AOT_Thread_allocate_object_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 292;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 284;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 200;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 296;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 204;
+    AOT_Thread_allocate_object_slow_stub_offset = 196;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    732;
+    724;
 static constexpr dart::compiler::target::word
-    AOT_Thread_async_stack_trace_offset = 96;
-static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 340;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 332;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
-    120;
-static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 116;
+    112;
+static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 108;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 332;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 324;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 276;
+    AOT_Thread_call_to_runtime_entry_point_offset = 268;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 144;
+    AOT_Thread_call_to_runtime_stub_offset = 136;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    740;
+    732;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 48;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    316;
+    308;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    232;
+    224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 320;
+    AOT_Thread_deoptimize_entry_offset = 312;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 236;
+    AOT_Thread_deoptimize_stub_offset = 228;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 356;
+    AOT_Thread_double_abs_address_offset = 348;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 352;
+    AOT_Thread_double_negate_address_offset = 344;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 56;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 256;
+    AOT_Thread_enter_safepoint_stub_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 716;
+    AOT_Thread_execution_state_offset = 708;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 260;
+    AOT_Thread_exit_safepoint_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 264;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 324;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 316;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 136;
+    AOT_Thread_fix_allocation_stub_code_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 132;
+    AOT_Thread_fix_callers_target_code_offset = 124;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 368;
+    AOT_Thread_float_absolute_address_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 364;
+    AOT_Thread_float_negate_address_offset = 356;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 360;
+    AOT_Thread_float_not_address_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 372;
+    AOT_Thread_float_zerow_address_offset = 364;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 704;
+    AOT_Thread_global_object_pool_offset = 696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 140;
+    AOT_Thread_invoke_dart_code_stub_offset = 132;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 728;
+    AOT_Thread_exit_through_ffi_offset = 720;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 44;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 68;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 240;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 244;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 236;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 252;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 244;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 84;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 308;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 300;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 312;
+    AOT_Thread_switchable_call_miss_entry_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 216;
+    AOT_Thread_switchable_call_miss_stub_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 336;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 152;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 144;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        148;
+        140;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 160;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 152;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 156;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 168;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 164;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 156;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 176;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 168;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 172;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 164;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 184;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 180;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 172;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
-    112;
+    104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 344;
-static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 708;
+    AOT_Thread_predefined_symbols_address_offset = 336;
+static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 700;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 712;
+    AOT_Thread_saved_shadow_call_stack_offset = 704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 720;
+    AOT_Thread_safepoint_state_offset = 712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 248;
+    AOT_Thread_slow_type_test_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 328;
+    AOT_Thread_slow_type_test_entry_point_offset = 320;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     36;
 static constexpr dart::compiler::target::word
@@ -4524,13 +4506,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 64;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 304;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 212;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 300;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 208;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 80;
 static constexpr dart::compiler::target::word
@@ -4539,16 +4521,16 @@
 static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
     24;
 static constexpr dart::compiler::target::word
-    AOT_Thread_unboxed_int64_runtime_arg_offset = 104;
+    AOT_Thread_unboxed_int64_runtime_arg_offset = 96;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 92;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 124;
+    AOT_Thread_write_barrier_code_offset = 116;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 268;
+    AOT_Thread_write_barrier_entry_point_offset = 260;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 40;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    724;
+    716;
 static constexpr dart::compiler::target::word
     AOT_TimelineStream_enabled_offset = 8;
 static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
@@ -4613,7 +4595,7 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        664, 668, 672, 676, 680, -1, 684, -1, 688, 692, -1, -1, -1, -1, -1, -1};
+        656, 660, 664, 668, 672, -1, 676, -1, 680, 684, -1, -1, -1, -1, -1, -1};
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8;
 static constexpr dart::compiler::target::word AOT_Array_InstanceSize = 12;
 static constexpr dart::compiler::target::word AOT_Array_header_size = 12;
@@ -4949,149 +4931,147 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 736;
+    AOT_Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1400;
+    AOT_Thread_active_exception_offset = 1392;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1408;
+    AOT_Thread_active_stacktrace_offset = 1400;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 240;
+    AOT_Thread_array_write_barrier_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 528;
+    AOT_Thread_array_write_barrier_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 360;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 368;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 560;
+    AOT_Thread_allocate_object_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 376;
+    AOT_Thread_allocate_object_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 568;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 384;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 376;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 576;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 392;
+    AOT_Thread_allocate_object_slow_stub_offset = 384;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1472;
+    1464;
 static constexpr dart::compiler::target::word
-    AOT_Thread_async_stack_trace_offset = 192;
-static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 664;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
-    224;
-static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 216;
+    216;
+static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 648;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 536;
+    AOT_Thread_call_to_runtime_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 272;
+    AOT_Thread_call_to_runtime_stub_offset = 264;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1488;
+    1480;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 96;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    616;
+    608;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    448;
+    440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 624;
+    AOT_Thread_deoptimize_entry_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 456;
+    AOT_Thread_deoptimize_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 696;
+    AOT_Thread_double_abs_address_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 688;
+    AOT_Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 496;
+    AOT_Thread_enter_safepoint_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1440;
+    AOT_Thread_execution_state_offset = 1432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 504;
+    AOT_Thread_exit_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 512;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 632;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 256;
+    AOT_Thread_fix_allocation_stub_code_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 248;
+    AOT_Thread_fix_callers_target_code_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 720;
+    AOT_Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 712;
+    AOT_Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 704;
+    AOT_Thread_float_not_address_offset = 696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 728;
+    AOT_Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1416;
+    AOT_Thread_global_object_pool_offset = 1408;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 264;
+    AOT_Thread_invoke_dart_code_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1464;
+    AOT_Thread_exit_through_ffi_offset = 1456;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 136;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 464;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 472;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 488;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 168;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 600;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 608;
+    AOT_Thread_switchable_call_miss_entry_offset = 600;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 416;
+    AOT_Thread_switchable_call_miss_stub_offset = 408;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 656;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 288;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        280;
+        272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 304;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 296;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 320;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 312;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 336;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 328;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 352;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 344;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
-    208;
+    200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 672;
+    AOT_Thread_predefined_symbols_address_offset = 664;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1424;
+    1416;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1432;
+    AOT_Thread_saved_shadow_call_stack_offset = 1424;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1448;
+    AOT_Thread_safepoint_state_offset = 1440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 480;
+    AOT_Thread_slow_type_test_stub_offset = 472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 640;
+    AOT_Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     72;
 static constexpr dart::compiler::target::word
@@ -5099,13 +5079,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 408;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 400;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 160;
 static constexpr dart::compiler::target::word
@@ -5114,16 +5094,16 @@
 static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
     48;
 static constexpr dart::compiler::target::word
-    AOT_Thread_unboxed_int64_runtime_arg_offset = 200;
+    AOT_Thread_unboxed_int64_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 184;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 232;
+    AOT_Thread_write_barrier_code_offset = 224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 520;
+    AOT_Thread_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1456;
+    1448;
 static constexpr dart::compiler::target::word
     AOT_TimelineStream_enabled_offset = 16;
 static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
@@ -5188,8 +5168,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1312, 1320, 1328, 1336, -1,   -1,   1344, 1352,
-        1360, 1368, 1376, -1,   1384, 1392, -1,   -1};
+        1304, 1312, 1320, 1328, -1,   -1,   1336, 1344,
+        1352, 1360, 1368, -1,   1376, 1384, -1,   -1};
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word AOT_Array_InstanceSize = 24;
 static constexpr dart::compiler::target::word AOT_Array_header_size = 24;
@@ -5528,149 +5508,147 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 736;
+    AOT_Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1472;
+    AOT_Thread_active_exception_offset = 1464;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1480;
+    AOT_Thread_active_stacktrace_offset = 1472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 240;
+    AOT_Thread_array_write_barrier_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 528;
+    AOT_Thread_array_write_barrier_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 360;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 368;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 560;
+    AOT_Thread_allocate_object_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 376;
+    AOT_Thread_allocate_object_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 568;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 384;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 376;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 576;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 392;
+    AOT_Thread_allocate_object_slow_stub_offset = 384;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1544;
+    1536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_async_stack_trace_offset = 192;
-static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 664;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
-    224;
-static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 216;
+    216;
+static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 648;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 536;
+    AOT_Thread_call_to_runtime_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 272;
+    AOT_Thread_call_to_runtime_stub_offset = 264;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1560;
+    1552;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 96;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    616;
+    608;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    448;
+    440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 624;
+    AOT_Thread_deoptimize_entry_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 456;
+    AOT_Thread_deoptimize_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 696;
+    AOT_Thread_double_abs_address_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 688;
+    AOT_Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 496;
+    AOT_Thread_enter_safepoint_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1512;
+    AOT_Thread_execution_state_offset = 1504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 504;
+    AOT_Thread_exit_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 512;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 632;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 256;
+    AOT_Thread_fix_allocation_stub_code_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 248;
+    AOT_Thread_fix_callers_target_code_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 720;
+    AOT_Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 712;
+    AOT_Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 704;
+    AOT_Thread_float_not_address_offset = 696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 728;
+    AOT_Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1488;
+    AOT_Thread_global_object_pool_offset = 1480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 264;
+    AOT_Thread_invoke_dart_code_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1536;
+    AOT_Thread_exit_through_ffi_offset = 1528;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 136;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 464;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 472;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 488;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 168;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 600;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 608;
+    AOT_Thread_switchable_call_miss_entry_offset = 600;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 416;
+    AOT_Thread_switchable_call_miss_stub_offset = 408;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 656;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 288;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        280;
+        272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 304;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 296;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 320;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 312;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 336;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 328;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 352;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 344;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
-    208;
+    200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 672;
+    AOT_Thread_predefined_symbols_address_offset = 664;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1496;
+    1488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1504;
+    AOT_Thread_saved_shadow_call_stack_offset = 1496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1520;
+    AOT_Thread_safepoint_state_offset = 1512;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 480;
+    AOT_Thread_slow_type_test_stub_offset = 472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 640;
+    AOT_Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     72;
 static constexpr dart::compiler::target::word
@@ -5678,13 +5656,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 408;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 400;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 160;
 static constexpr dart::compiler::target::word
@@ -5693,16 +5671,16 @@
 static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
     48;
 static constexpr dart::compiler::target::word
-    AOT_Thread_unboxed_int64_runtime_arg_offset = 200;
+    AOT_Thread_unboxed_int64_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 184;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 232;
+    AOT_Thread_write_barrier_code_offset = 224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 520;
+    AOT_Thread_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1528;
+    1520;
 static constexpr dart::compiler::target::word
     AOT_TimelineStream_enabled_offset = 16;
 static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
@@ -5767,9 +5745,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392,
-        1400, 1408, 1416, 1424, -1,   -1,   -1,   -1,   1432, 1440, -1,
-        -1,   1448, 1456, 1464, -1,   -1,   -1,   -1,   -1,   -1};
+        1304, 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384,
+        1392, 1400, 1408, 1416, -1,   -1,   -1,   -1,   1424, 1432, -1,
+        -1,   1440, 1448, 1456, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word AOT_Array_InstanceSize = 24;
 static constexpr dart::compiler::target::word AOT_Array_header_size = 24;
@@ -6102,148 +6080,146 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 4;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 376;
+    AOT_Thread_AllocateArray_entry_point_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 696;
+    AOT_Thread_active_exception_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 700;
+    AOT_Thread_active_stacktrace_offset = 692;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 128;
+    AOT_Thread_array_write_barrier_code_offset = 120;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 272;
+    AOT_Thread_array_write_barrier_entry_point_offset = 264;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 280;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 188;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 180;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 284;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 276;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 192;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 184;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 288;
+    AOT_Thread_allocate_object_entry_point_offset = 280;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 196;
+    AOT_Thread_allocate_object_stub_offset = 188;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 292;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 284;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 200;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 192;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 296;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 204;
+    AOT_Thread_allocate_object_slow_stub_offset = 196;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    732;
+    724;
 static constexpr dart::compiler::target::word
-    AOT_Thread_async_stack_trace_offset = 96;
-static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 340;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 332;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
-    120;
-static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 116;
+    112;
+static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 108;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 332;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 324;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 276;
+    AOT_Thread_call_to_runtime_entry_point_offset = 268;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 144;
+    AOT_Thread_call_to_runtime_stub_offset = 136;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    740;
+    732;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 48;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    316;
+    308;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    232;
+    224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 320;
+    AOT_Thread_deoptimize_entry_offset = 312;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 236;
+    AOT_Thread_deoptimize_stub_offset = 228;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 356;
+    AOT_Thread_double_abs_address_offset = 348;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 352;
+    AOT_Thread_double_negate_address_offset = 344;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 56;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 256;
+    AOT_Thread_enter_safepoint_stub_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 716;
+    AOT_Thread_execution_state_offset = 708;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 260;
+    AOT_Thread_exit_safepoint_stub_offset = 252;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 264;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 324;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 316;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 136;
+    AOT_Thread_fix_allocation_stub_code_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 132;
+    AOT_Thread_fix_callers_target_code_offset = 124;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 368;
+    AOT_Thread_float_absolute_address_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 364;
+    AOT_Thread_float_negate_address_offset = 356;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 360;
+    AOT_Thread_float_not_address_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 372;
+    AOT_Thread_float_zerow_address_offset = 364;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 704;
+    AOT_Thread_global_object_pool_offset = 696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 140;
+    AOT_Thread_invoke_dart_code_stub_offset = 132;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 728;
+    AOT_Thread_exit_through_ffi_offset = 720;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 44;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 68;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 240;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 244;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 236;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 252;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 244;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 84;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 308;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 300;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 312;
+    AOT_Thread_switchable_call_miss_entry_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 216;
+    AOT_Thread_switchable_call_miss_stub_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 336;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 152;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 144;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        148;
+        140;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 160;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 152;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 156;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 148;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 168;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 160;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 164;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 156;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 176;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 168;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 172;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 164;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 184;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 176;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 180;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 172;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
-    112;
+    104;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 344;
-static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 708;
+    AOT_Thread_predefined_symbols_address_offset = 336;
+static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset = 700;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 712;
+    AOT_Thread_saved_shadow_call_stack_offset = 704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 720;
+    AOT_Thread_safepoint_state_offset = 712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 248;
+    AOT_Thread_slow_type_test_stub_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 328;
+    AOT_Thread_slow_type_test_entry_point_offset = 320;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     36;
 static constexpr dart::compiler::target::word
@@ -6251,13 +6227,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 64;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 304;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 212;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 204;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 300;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 292;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 208;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 200;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 80;
 static constexpr dart::compiler::target::word
@@ -6266,16 +6242,16 @@
 static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
     24;
 static constexpr dart::compiler::target::word
-    AOT_Thread_unboxed_int64_runtime_arg_offset = 104;
+    AOT_Thread_unboxed_int64_runtime_arg_offset = 96;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 92;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 124;
+    AOT_Thread_write_barrier_code_offset = 116;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 268;
+    AOT_Thread_write_barrier_entry_point_offset = 260;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 40;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    724;
+    716;
 static constexpr dart::compiler::target::word
     AOT_TimelineStream_enabled_offset = 8;
 static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
@@ -6337,7 +6313,7 @@
     4, 12, 8, 16};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        664, 668, 672, 676, 680, -1, 684, -1, 688, 692, -1, -1, -1, -1, -1, -1};
+        656, 660, 664, 668, 672, -1, 676, -1, 680, 684, -1, -1, -1, -1, -1, -1};
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8;
 static constexpr dart::compiler::target::word AOT_Array_InstanceSize = 12;
 static constexpr dart::compiler::target::word AOT_Array_header_size = 12;
@@ -6669,149 +6645,147 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 736;
+    AOT_Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1400;
+    AOT_Thread_active_exception_offset = 1392;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1408;
+    AOT_Thread_active_stacktrace_offset = 1400;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 240;
+    AOT_Thread_array_write_barrier_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 528;
+    AOT_Thread_array_write_barrier_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 360;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 368;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 560;
+    AOT_Thread_allocate_object_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 376;
+    AOT_Thread_allocate_object_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 568;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 384;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 376;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 576;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 392;
+    AOT_Thread_allocate_object_slow_stub_offset = 384;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1472;
+    1464;
 static constexpr dart::compiler::target::word
-    AOT_Thread_async_stack_trace_offset = 192;
-static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 664;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
-    224;
-static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 216;
+    216;
+static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 648;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 536;
+    AOT_Thread_call_to_runtime_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 272;
+    AOT_Thread_call_to_runtime_stub_offset = 264;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1488;
+    1480;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 96;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    616;
+    608;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    448;
+    440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 624;
+    AOT_Thread_deoptimize_entry_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 456;
+    AOT_Thread_deoptimize_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 696;
+    AOT_Thread_double_abs_address_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 688;
+    AOT_Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 496;
+    AOT_Thread_enter_safepoint_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1440;
+    AOT_Thread_execution_state_offset = 1432;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 504;
+    AOT_Thread_exit_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 512;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 632;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 256;
+    AOT_Thread_fix_allocation_stub_code_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 248;
+    AOT_Thread_fix_callers_target_code_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 720;
+    AOT_Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 712;
+    AOT_Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 704;
+    AOT_Thread_float_not_address_offset = 696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 728;
+    AOT_Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1416;
+    AOT_Thread_global_object_pool_offset = 1408;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 264;
+    AOT_Thread_invoke_dart_code_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1464;
+    AOT_Thread_exit_through_ffi_offset = 1456;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 136;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 464;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 472;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 488;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 168;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 600;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 608;
+    AOT_Thread_switchable_call_miss_entry_offset = 600;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 416;
+    AOT_Thread_switchable_call_miss_stub_offset = 408;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 656;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 288;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        280;
+        272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 304;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 296;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 320;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 312;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 336;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 328;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 352;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 344;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
-    208;
+    200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 672;
+    AOT_Thread_predefined_symbols_address_offset = 664;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1424;
+    1416;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1432;
+    AOT_Thread_saved_shadow_call_stack_offset = 1424;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1448;
+    AOT_Thread_safepoint_state_offset = 1440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 480;
+    AOT_Thread_slow_type_test_stub_offset = 472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 640;
+    AOT_Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     72;
 static constexpr dart::compiler::target::word
@@ -6819,13 +6793,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 408;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 400;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 160;
 static constexpr dart::compiler::target::word
@@ -6834,16 +6808,16 @@
 static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
     48;
 static constexpr dart::compiler::target::word
-    AOT_Thread_unboxed_int64_runtime_arg_offset = 200;
+    AOT_Thread_unboxed_int64_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 184;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 232;
+    AOT_Thread_write_barrier_code_offset = 224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 520;
+    AOT_Thread_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1456;
+    1448;
 static constexpr dart::compiler::target::word
     AOT_TimelineStream_enabled_offset = 16;
 static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
@@ -6905,8 +6879,8 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1312, 1320, 1328, 1336, -1,   -1,   1344, 1352,
-        1360, 1368, 1376, -1,   1384, 1392, -1,   -1};
+        1304, 1312, 1320, 1328, -1,   -1,   1336, 1344,
+        1352, 1360, 1368, -1,   1376, 1384, -1,   -1};
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word AOT_Array_InstanceSize = 24;
 static constexpr dart::compiler::target::word AOT_Array_header_size = 24;
@@ -7241,149 +7215,147 @@
 static constexpr dart::compiler::target::word
     AOT_SubtypeTestCache_cache_offset = 8;
 static constexpr dart::compiler::target::word
-    AOT_Thread_AllocateArray_entry_point_offset = 736;
+    AOT_Thread_AllocateArray_entry_point_offset = 728;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_exception_offset = 1472;
+    AOT_Thread_active_exception_offset = 1464;
 static constexpr dart::compiler::target::word
-    AOT_Thread_active_stacktrace_offset = 1480;
+    AOT_Thread_active_stacktrace_offset = 1472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_code_offset = 240;
+    AOT_Thread_array_write_barrier_code_offset = 232;
 static constexpr dart::compiler::target::word
-    AOT_Thread_array_write_barrier_entry_point_offset = 528;
+    AOT_Thread_array_write_barrier_entry_point_offset = 520;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 544;
+    AOT_Thread_allocate_mint_with_fpu_regs_entry_point_offset = 536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 360;
+    AOT_Thread_allocate_mint_with_fpu_regs_stub_offset = 352;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 552;
+    AOT_Thread_allocate_mint_without_fpu_regs_entry_point_offset = 544;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 368;
+    AOT_Thread_allocate_mint_without_fpu_regs_stub_offset = 360;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_entry_point_offset = 560;
+    AOT_Thread_allocate_object_entry_point_offset = 552;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_stub_offset = 376;
+    AOT_Thread_allocate_object_stub_offset = 368;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_entry_point_offset = 568;
+    AOT_Thread_allocate_object_parameterized_entry_point_offset = 560;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_parameterized_stub_offset = 384;
+    AOT_Thread_allocate_object_parameterized_stub_offset = 376;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_entry_point_offset = 576;
+    AOT_Thread_allocate_object_slow_entry_point_offset = 568;
 static constexpr dart::compiler::target::word
-    AOT_Thread_allocate_object_slow_stub_offset = 392;
+    AOT_Thread_allocate_object_slow_stub_offset = 384;
 static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
-    1544;
+    1536;
 static constexpr dart::compiler::target::word
-    AOT_Thread_async_stack_trace_offset = 192;
-static constexpr dart::compiler::target::word
-    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 664;
+    AOT_Thread_auto_scope_native_wrapper_entry_point_offset = 656;
 static constexpr dart::compiler::target::word AOT_Thread_bool_false_offset =
-    224;
-static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 216;
+    216;
+static constexpr dart::compiler::target::word AOT_Thread_bool_true_offset = 208;
 static constexpr dart::compiler::target::word
-    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 648;
+    AOT_Thread_bootstrap_native_wrapper_entry_point_offset = 640;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_entry_point_offset = 536;
+    AOT_Thread_call_to_runtime_entry_point_offset = 528;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_to_runtime_stub_offset = 272;
+    AOT_Thread_call_to_runtime_stub_offset = 264;
 static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
-    1560;
+    1552;
 static constexpr dart::compiler::target::word
     AOT_Thread_dispatch_table_array_offset = 96;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
-    616;
+    608;
 static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
-    448;
+    440;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_entry_offset = 624;
+    AOT_Thread_deoptimize_entry_offset = 616;
 static constexpr dart::compiler::target::word
-    AOT_Thread_deoptimize_stub_offset = 456;
+    AOT_Thread_deoptimize_stub_offset = 448;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_abs_address_offset = 696;
+    AOT_Thread_double_abs_address_offset = 688;
 static constexpr dart::compiler::target::word
-    AOT_Thread_double_negate_address_offset = 688;
+    AOT_Thread_double_negate_address_offset = 680;
 static constexpr dart::compiler::target::word AOT_Thread_end_offset = 112;
 static constexpr dart::compiler::target::word
-    AOT_Thread_enter_safepoint_stub_offset = 496;
+    AOT_Thread_enter_safepoint_stub_offset = 488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_execution_state_offset = 1512;
+    AOT_Thread_execution_state_offset = 1504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_safepoint_stub_offset = 504;
+    AOT_Thread_exit_safepoint_stub_offset = 496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_stub_offset = 512;
+    AOT_Thread_call_native_through_safepoint_stub_offset = 504;
 static constexpr dart::compiler::target::word
-    AOT_Thread_call_native_through_safepoint_entry_point_offset = 632;
+    AOT_Thread_call_native_through_safepoint_entry_point_offset = 624;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_allocation_stub_code_offset = 256;
+    AOT_Thread_fix_allocation_stub_code_offset = 248;
 static constexpr dart::compiler::target::word
-    AOT_Thread_fix_callers_target_code_offset = 248;
+    AOT_Thread_fix_callers_target_code_offset = 240;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_absolute_address_offset = 720;
+    AOT_Thread_float_absolute_address_offset = 712;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_negate_address_offset = 712;
+    AOT_Thread_float_negate_address_offset = 704;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_not_address_offset = 704;
+    AOT_Thread_float_not_address_offset = 696;
 static constexpr dart::compiler::target::word
-    AOT_Thread_float_zerow_address_offset = 728;
+    AOT_Thread_float_zerow_address_offset = 720;
 static constexpr dart::compiler::target::word
-    AOT_Thread_global_object_pool_offset = 1488;
+    AOT_Thread_global_object_pool_offset = 1480;
 static constexpr dart::compiler::target::word
-    AOT_Thread_invoke_dart_code_stub_offset = 264;
+    AOT_Thread_invoke_dart_code_stub_offset = 256;
 static constexpr dart::compiler::target::word
-    AOT_Thread_exit_through_ffi_offset = 1536;
+    AOT_Thread_exit_through_ffi_offset = 1528;
 static constexpr dart::compiler::target::word AOT_Thread_isolate_offset = 88;
 static constexpr dart::compiler::target::word
     AOT_Thread_field_table_values_offset = 136;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_return_stub_offset = 464;
+    AOT_Thread_lazy_deopt_from_return_stub_offset = 456;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_deopt_from_throw_stub_offset = 472;
+    AOT_Thread_lazy_deopt_from_throw_stub_offset = 464;
 static constexpr dart::compiler::target::word
-    AOT_Thread_lazy_specialize_type_test_stub_offset = 488;
+    AOT_Thread_lazy_specialize_type_test_stub_offset = 480;
 static constexpr dart::compiler::target::word
     AOT_Thread_marking_stack_block_offset = 168;
 static constexpr dart::compiler::target::word
-    AOT_Thread_megamorphic_call_checked_entry_offset = 600;
+    AOT_Thread_megamorphic_call_checked_entry_offset = 592;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_entry_offset = 608;
+    AOT_Thread_switchable_call_miss_entry_offset = 600;
 static constexpr dart::compiler::target::word
-    AOT_Thread_switchable_call_miss_stub_offset = 416;
+    AOT_Thread_switchable_call_miss_stub_offset = 408;
 static constexpr dart::compiler::target::word
-    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 656;
+    AOT_Thread_no_scope_native_wrapper_entry_point_offset = 648;
 static constexpr dart::compiler::target::word
-    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 288;
+    AOT_Thread_late_initialization_error_shared_with_fpu_regs_stub_offset = 280;
 static constexpr dart::compiler::target::word
     AOT_Thread_late_initialization_error_shared_without_fpu_regs_stub_offset =
-        280;
+        272;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 304;
+    AOT_Thread_null_error_shared_with_fpu_regs_stub_offset = 296;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 296;
+    AOT_Thread_null_error_shared_without_fpu_regs_stub_offset = 288;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 320;
+    AOT_Thread_null_arg_error_shared_with_fpu_regs_stub_offset = 312;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 312;
+    AOT_Thread_null_arg_error_shared_without_fpu_regs_stub_offset = 304;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 336;
+    AOT_Thread_null_cast_error_shared_with_fpu_regs_stub_offset = 328;
 static constexpr dart::compiler::target::word
-    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 328;
+    AOT_Thread_null_cast_error_shared_without_fpu_regs_stub_offset = 320;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 352;
+    AOT_Thread_range_error_shared_with_fpu_regs_stub_offset = 344;
 static constexpr dart::compiler::target::word
-    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 344;
+    AOT_Thread_range_error_shared_without_fpu_regs_stub_offset = 336;
 static constexpr dart::compiler::target::word AOT_Thread_object_null_offset =
-    208;
+    200;
 static constexpr dart::compiler::target::word
-    AOT_Thread_predefined_symbols_address_offset = 672;
+    AOT_Thread_predefined_symbols_address_offset = 664;
 static constexpr dart::compiler::target::word AOT_Thread_resume_pc_offset =
-    1496;
+    1488;
 static constexpr dart::compiler::target::word
-    AOT_Thread_saved_shadow_call_stack_offset = 1504;
+    AOT_Thread_saved_shadow_call_stack_offset = 1496;
 static constexpr dart::compiler::target::word
-    AOT_Thread_safepoint_state_offset = 1520;
+    AOT_Thread_safepoint_state_offset = 1512;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_stub_offset = 480;
+    AOT_Thread_slow_type_test_stub_offset = 472;
 static constexpr dart::compiler::target::word
-    AOT_Thread_slow_type_test_entry_point_offset = 640;
+    AOT_Thread_slow_type_test_entry_point_offset = 632;
 static constexpr dart::compiler::target::word AOT_Thread_stack_limit_offset =
     72;
 static constexpr dart::compiler::target::word
@@ -7391,13 +7363,13 @@
 static constexpr dart::compiler::target::word
     AOT_Thread_stack_overflow_flags_offset = 128;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 592;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_entry_point_offset = 584;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 408;
+    AOT_Thread_stack_overflow_shared_with_fpu_regs_stub_offset = 400;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 584;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_entry_point_offset = 576;
 static constexpr dart::compiler::target::word
-    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 400;
+    AOT_Thread_stack_overflow_shared_without_fpu_regs_stub_offset = 392;
 static constexpr dart::compiler::target::word
     AOT_Thread_store_buffer_block_offset = 160;
 static constexpr dart::compiler::target::word
@@ -7406,16 +7378,16 @@
 static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
     48;
 static constexpr dart::compiler::target::word
-    AOT_Thread_unboxed_int64_runtime_arg_offset = 200;
+    AOT_Thread_unboxed_int64_runtime_arg_offset = 192;
 static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 184;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_code_offset = 232;
+    AOT_Thread_write_barrier_code_offset = 224;
 static constexpr dart::compiler::target::word
-    AOT_Thread_write_barrier_entry_point_offset = 520;
+    AOT_Thread_write_barrier_entry_point_offset = 512;
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_mask_offset = 80;
 static constexpr dart::compiler::target::word AOT_Thread_callback_code_offset =
-    1528;
+    1520;
 static constexpr dart::compiler::target::word
     AOT_TimelineStream_enabled_offset = 16;
 static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
@@ -7477,9 +7449,9 @@
     8, 24, 16, 32};
 static constexpr dart::compiler::target::word
     AOT_Thread_write_barrier_wrappers_thread_offset[] = {
-        1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384, 1392,
-        1400, 1408, 1416, 1424, -1,   -1,   -1,   -1,   1432, 1440, -1,
-        -1,   1448, 1456, 1464, -1,   -1,   -1,   -1,   -1,   -1};
+        1304, 1312, 1320, 1328, 1336, 1344, 1352, 1360, 1368, 1376, 1384,
+        1392, 1400, 1408, 1416, -1,   -1,   -1,   -1,   1424, 1432, -1,
+        -1,   1440, 1448, 1456, -1,   -1,   -1,   -1,   -1,   -1};
 static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
 static constexpr dart::compiler::target::word AOT_Array_InstanceSize = 24;
 static constexpr dart::compiler::target::word AOT_Array_header_size = 24;
diff --git a/runtime/vm/compiler/runtime_offsets_list.h b/runtime/vm/compiler/runtime_offsets_list.h
index 8b5aa0a..fc6cfdc 100644
--- a/runtime/vm/compiler/runtime_offsets_list.h
+++ b/runtime/vm/compiler/runtime_offsets_list.h
@@ -181,7 +181,6 @@
   FIELD(Thread, allocate_object_slow_entry_point_offset)                       \
   FIELD(Thread, allocate_object_slow_stub_offset)                              \
   FIELD(Thread, api_top_scope_offset)                                          \
-  FIELD(Thread, async_stack_trace_offset)                                      \
   FIELD(Thread, auto_scope_native_wrapper_entry_point_offset)                  \
   FIELD(Thread, bool_false_offset)                                             \
   FIELD(Thread, bool_true_offset)                                              \
diff --git a/runtime/vm/dart.cc b/runtime/vm/dart.cc
index b42149e..9dd6654 100644
--- a/runtime/vm/dart.cc
+++ b/runtime/vm/dart.cc
@@ -215,6 +215,10 @@
     return Utils::StrDup(
         "To use --lazy-async-stacks, please disable --causal-async-stacks!");
   }
+  // TODO(cskau): Remove once flag deprecation has been completed.
+  if (FLAG_causal_async_stacks) {
+    return Utils::StrDup("--causal-async-stacks is deprecated!");
+  }
 
   FrameLayout::Init();
 
diff --git a/runtime/vm/dart_api_impl.cc b/runtime/vm/dart_api_impl.cc
index c64c7a1..1e46ce8 100644
--- a/runtime/vm/dart_api_impl.cc
+++ b/runtime/vm/dart_api_impl.cc
@@ -1579,6 +1579,14 @@
 
   *error = nullptr;
 
+  if (!FLAG_enable_isolate_groups) {
+    *error = Utils::StrDup(
+        "Lightweight isolates are only implemented in AOT "
+        "mode and need to be explicitly enabled by passing "
+        "--enable-isolate-groups.");
+    return nullptr;
+  }
+
   Isolate* isolate;
 #if defined(DART_PRECOMPILED_RUNTIME)
   isolate = CreateWithinExistingIsolateGroupAOT(member->group(), name, error);
@@ -5501,11 +5509,6 @@
     if (Symbols::DartIsVM().Equals(name)) {
       return Symbols::True().raw();
     }
-    if (FLAG_causal_async_stacks) {
-      if (Symbols::DartDeveloperCausalAsyncStacks().Equals(name)) {
-        return Symbols::True().raw();
-      }
-    }
   }
   return result.raw();
 }
diff --git a/runtime/vm/dart_api_impl_test.cc b/runtime/vm/dart_api_impl_test.cc
index e65800f..785a41d 100644
--- a/runtime/vm/dart_api_impl_test.cc
+++ b/runtime/vm/dart_api_impl_test.cc
@@ -7364,7 +7364,9 @@
       "foo1:///main.dart",
       /* multiroot_filepaths= */ "/bar,/baz",
       /* multiroot_scheme= */ "foo");
-  EXPECT_ERROR(lib, "Compilation failed FileSystemException(uri=foo1:");
+  EXPECT_ERROR(lib,
+               "Compilation failed Invalid argument(s): Exception when reading "
+               "'foo1:///.dart_tool");
 }
 
 void NewNativePort_send123(Dart_Port dest_port_id, Dart_CObject* message) {
diff --git a/runtime/vm/debugger.cc b/runtime/vm/debugger.cc
index ceb0e2e..5f3ca29 100644
--- a/runtime/vm/debugger.cc
+++ b/runtime/vm/debugger.cc
@@ -731,10 +731,6 @@
   return Object::null();
 }
 
-ObjectPtr ActivationFrame::GetCausalStack() {
-  return GetAsyncContextVariable(Symbols::AsyncStackTraceVar());
-}
-
 bool ActivationFrame::HandlesException(const Instance& exc_obj) {
   if ((kind_ == kAsyncSuspensionMarker) || (kind_ == kAsyncCausal)) {
     // These frames are historical.
@@ -1823,97 +1819,9 @@
     return CollectAsyncLazyStackTrace();
   }
   if (!FLAG_causal_async_stacks) {
-    return NULL;
+    return nullptr;
   }
-  Thread* thread = Thread::Current();
-  Zone* zone = thread->zone();
-  Isolate* isolate = thread->isolate();
-  DebuggerStackTrace* stack_trace = new DebuggerStackTrace(8);
-
-  Object& code_obj = Object::Handle(zone);
-  Code& code = Code::Handle(zone);
-  Smi& offset = Smi::Handle();
-  Code& inlined_code = Code::Handle(zone);
-  Array& deopt_frame = Array::Handle(zone);
-
-  Function& async_function = Function::Handle(zone);
-  class StackTrace& async_stack_trace = StackTrace::Handle(zone);
-  Array& async_code_array = Array::Handle(zone);
-  Array& async_pc_offset_array = Array::Handle(zone);
-
-  // Extract the eagerly recorded async stack from the current thread.
-  StackTraceUtils::ExtractAsyncStackTraceInfo(
-      thread, &async_function, &async_stack_trace, &async_code_array,
-      &async_pc_offset_array);
-
-  if (async_function.IsNull()) {
-    return NULL;
-  }
-
-  bool sync_async_end = false;
-  intptr_t synchronous_stack_trace_length =
-      StackTraceUtils::CountFrames(thread, 0, async_function, &sync_async_end);
-
-  // Append the top frames from the synchronous stack trace, up until the active
-  // asynchronous function. We truncate the remainder of the synchronous
-  // stack trace because it contains activations that are part of the
-  // asynchronous dispatch mechanisms.
-  StackFrameIterator iterator(ValidationPolicy::kDontValidateFrames,
-                              Thread::Current(),
-                              StackFrameIterator::kNoCrossThreadIteration);
-  StackFrame* frame = iterator.NextFrame();
-  while (synchronous_stack_trace_length > 0) {
-    ASSERT(frame != NULL);
-    if (frame->IsDartFrame()) {
-      code = frame->LookupDartCode();
-      AppendCodeFrames(thread, isolate, zone, stack_trace, frame, &code,
-                       &inlined_code, &deopt_frame);
-      synchronous_stack_trace_length--;
-    }
-    frame = iterator.NextFrame();
-  }
-
-  // Now we append the asynchronous causal stack trace. These are not active
-  // frames but a historical record of how this asynchronous function was
-  // activated.
-
-  intptr_t frame_skip =
-      sync_async_end ? StackTrace::kSyncAsyncCroppedFrames : 0;
-  while (!async_stack_trace.IsNull()) {
-    for (intptr_t i = frame_skip; i < async_stack_trace.Length(); i++) {
-      code_obj = async_stack_trace.CodeAtFrame(i);
-      if (code_obj.IsNull()) {
-        break;
-      }
-      if (code_obj.raw() == StubCode::AsynchronousGapMarker().raw()) {
-        stack_trace->AddMarker(ActivationFrame::kAsyncSuspensionMarker);
-        // The frame immediately below the asynchronous gap marker is the
-        // identical to the frame above the marker. Skip the frame to enhance
-        // the readability of the trace.
-        i++;
-      } else {
-        offset = Smi::RawCast(async_stack_trace.PcOffsetAtFrame(i));
-        code ^= code_obj.raw();
-        uword pc = code.PayloadStart() + offset.Value();
-        if (code.is_optimized()) {
-          for (InlinedFunctionsIterator it(code, pc); !it.Done();
-               it.Advance()) {
-            inlined_code = it.code();
-            stack_trace->AddAsyncCausalFrame(it.pc(), inlined_code);
-          }
-        } else {
-          stack_trace->AddAsyncCausalFrame(pc, code);
-        }
-      }
-    }
-    // Follow the link.
-    frame_skip = async_stack_trace.skip_sync_start_in_parent_stack()
-                     ? StackTrace::kSyncAsyncCroppedFrames
-                     : 0;
-    async_stack_trace = async_stack_trace.async_link();
-  }
-
-  return stack_trace;
+  UNREACHABLE();  //  FLAG_causal_async_stacks is deprecated.
 }
 
 DebuggerStackTrace* Debugger::CollectAsyncLazyStackTrace() {
@@ -2005,16 +1913,12 @@
                               Thread::Current(),
                               StackFrameIterator::kNoCrossThreadIteration);
 
-  Object& code_object = Object::Handle(zone);
   Code& code = Code::Handle(zone);
-  Smi& offset = Smi::Handle(zone);
   Function& function = Function::Handle(zone);
   Code& inlined_code = Code::Handle(zone);
   Closure& async_activation = Closure::Handle(zone);
   Object& next_async_activation = Object::Handle(zone);
   Array& deopt_frame = Array::Handle(zone);
-  // Note: 'class' since Debugger declares a method by the same name.
-  class StackTrace& async_stack_trace = StackTrace::Handle(zone);
   bool stack_has_async_function = false;
   Closure& closure = Closure::Handle();
 
@@ -2046,7 +1950,6 @@
         stack_has_async_function = true;
         // Grab the awaiter.
         async_activation ^= activation->GetAsyncAwaiter(&caller_closure_finder);
-        async_stack_trace ^= activation->GetCausalStack();
         // Bail if we've reach the end of sync execution stack.
         ObjectPtr* last_caller_obj =
             reinterpret_cast<ObjectPtr*>(frame->GetCallerSp());
@@ -2102,7 +2005,6 @@
         stack_has_async_function = true;
         // Grab the awaiter.
         async_activation ^= activation->GetAsyncAwaiter(&caller_closure_finder);
-        async_stack_trace ^= activation->GetCausalStack();
         found_async_awaiter = true;
       } else {
         stack_trace->AddActivation(CollectDartFrame(isolate, it.pc(), frame,
@@ -2129,8 +2031,6 @@
 
     if (!(activation->function().IsAsyncClosure() ||
           activation->function().IsAsyncGenClosure())) {
-      // No more awaiters. Extract the causal stack trace (if it exists).
-      async_stack_trace ^= activation->GetCausalStack();
       break;
     }
 
@@ -2145,59 +2045,12 @@
 
     next_async_activation = activation->GetAsyncAwaiter(&caller_closure_finder);
     if (next_async_activation.IsNull()) {
-      // No more awaiters. Extract the causal stack trace (if it exists).
-      async_stack_trace ^= activation->GetCausalStack();
       break;
     }
 
     async_activation = Closure::RawCast(next_async_activation.raw());
   }
 
-  // Now we append the asynchronous causal stack trace. These are not active
-  // frames but a historical record of how this asynchronous function was
-  // activated.
-  while (!async_stack_trace.IsNull()) {
-    for (intptr_t i = 0; i < async_stack_trace.Length(); i++) {
-      code_object = async_stack_trace.CodeAtFrame(i);
-
-      if (code_object.raw() == Code::null()) {
-        // Incomplete OutOfMemory/StackOverflow trace OR array padding.
-        break;
-      }
-
-      if (code_object.raw() == StubCode::AsynchronousGapMarker().raw()) {
-        stack_trace->AddMarker(ActivationFrame::kAsyncSuspensionMarker);
-        // The frame immediately below the asynchronous gap marker is the
-        // identical to the frame above the marker. Skip the frame to enhance
-        // the readability of the trace.
-        i++;
-        continue;
-      }
-
-      code_object = async_stack_trace.CodeAtFrame(i);
-      offset = Smi::RawCast(async_stack_trace.PcOffsetAtFrame(i));
-      code ^= code_object.raw();
-      if (FLAG_trace_debugger_stacktrace) {
-        OS::PrintErr(
-            "CollectAwaiterReturnStackTrace: visiting frame %" Pd
-            " in async causal stack trace:\n\t%s\n",
-            i, Function::Handle(code.function()).ToFullyQualifiedCString());
-      }
-      uword pc = code.PayloadStart() + offset.Value();
-      if (code.is_optimized()) {
-        for (InlinedFunctionsIterator it(code, pc); !it.Done(); it.Advance()) {
-          inlined_code = it.code();
-          stack_trace->AddAsyncCausalFrame(it.pc(), inlined_code);
-        }
-      } else {
-        stack_trace->AddAsyncCausalFrame(pc, code);
-      }
-    }
-
-    // Follow the link.
-    async_stack_trace = async_stack_trace.async_link();
-  }
-
   return stack_trace;
 #endif  // defined(DART_PRECOMPILED_RUNTIME)
 }
@@ -3744,9 +3597,7 @@
     }
   }
 
-  // Since lazy async stacks doesn't use the _asyncStackTraceHelper runtime
-  // entry, we need to manually set a synthetic breakpoint for async_op before
-  // we enter it.
+  // We need to manually set a synthetic breakpoint for async_op before entry.
   if (FLAG_lazy_async_stacks) {
     // async and async* functions always contain synthetic async_ops.
     if ((frame->function().IsAsyncFunction() ||
diff --git a/runtime/vm/debugger.h b/runtime/vm/debugger.h
index 18691a4..0312163 100644
--- a/runtime/vm/debugger.h
+++ b/runtime/vm/debugger.h
@@ -338,8 +338,6 @@
   // Get Closure that await'ed this async frame.
   ObjectPtr GetAsyncAwaiter(CallerClosureFinder* caller_closure_finder);
 
-  ObjectPtr GetCausalStack();
-
   bool HandlesException(const Instance& exc_obj);
 
  private:
diff --git a/runtime/vm/flag_list.h b/runtime/vm/flag_list.h
index dd6c196..36303f8 100644
--- a/runtime/vm/flag_list.h
+++ b/runtime/vm/flag_list.h
@@ -52,10 +52,11 @@
 //
 // The syntax used is the same as that for FLAG_LIST below, as these flags are
 // automatically included in FLAG_LIST.
+// TODO(cskau): Remove causal_async_stacks when deprecated.
 #define VM_GLOBAL_FLAG_LIST(P, R, C, D)                                        \
   P(dwarf_stack_traces_mode, bool, false,                                      \
     "Use --[no-]dwarf-stack-traces instead.")                                  \
-  P(causal_async_stacks, bool, false, "Improved async stacks")                 \
+  P(causal_async_stacks, bool, false, "DEPRECATED: Improved async stacks")     \
   P(lazy_async_stacks, bool, true, "Reconstruct async stacks from listeners")  \
   P(lazy_dispatchers, bool, true, "Generate dispatchers lazily")               \
   P(use_bare_instructions, bool, true, "Enable bare instructions mode.")       \
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 565e5b9..a709577 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -13897,7 +13897,6 @@
   all_libs.Add(&Library::ZoneHandle(Library::ConvertLibrary()));
   all_libs.Add(&Library::ZoneHandle(Library::InternalLibrary()));
   all_libs.Add(&Library::ZoneHandle(Library::FfiLibrary()));
-  ASYNC_LIB_INTRINSIC_LIST(CHECK_FINGERPRINTS_ASM_INTRINSIC);
   INTERNAL_LIB_INTRINSIC_LIST(CHECK_FINGERPRINTS_ASM_INTRINSIC);
   OTHER_RECOGNIZED_LIST(CHECK_FINGERPRINTS_OTHER);
   POLYMORPHIC_TARGET_LIST(CHECK_FINGERPRINTS);
diff --git a/runtime/vm/object_store.cc b/runtime/vm/object_store.cc
index 5031b69..143a7bb 100644
--- a/runtime/vm/object_store.cc
+++ b/runtime/vm/object_store.cc
@@ -218,19 +218,6 @@
 
   String& function_name = String::Handle(zone);
   Function& function = Function::Handle(zone);
-  function_name = async_lib.PrivateName(Symbols::SetAsyncThreadStackTrace());
-  ASSERT(!function_name.IsNull());
-  function = Resolver::ResolveStatic(async_lib, Object::null_string(),
-                                     function_name, 0, 1, Object::null_array());
-  ASSERT(!function.IsNull());
-  set_async_set_thread_stack_trace(function);
-
-  function_name = async_lib.PrivateName(Symbols::ClearAsyncThreadStackTrace());
-  ASSERT(!function_name.IsNull());
-  function = Resolver::ResolveStatic(async_lib, Object::null_string(),
-                                     function_name, 0, 0, Object::null_array());
-  ASSERT(!function.IsNull());
-  set_async_clear_thread_stack_trace(function);
 
   function_name = async_lib.PrivateName(Symbols::AsyncStarMoveNextHelper());
   ASSERT(!function_name.IsNull());
diff --git a/runtime/vm/object_store.h b/runtime/vm/object_store.h
index d4b3d4a..7ffcb71 100644
--- a/runtime/vm/object_store.h
+++ b/runtime/vm/object_store.h
@@ -164,8 +164,6 @@
   RW(Function, simple_instance_of_function)                                    \
   RW(Function, simple_instance_of_true_function)                               \
   RW(Function, simple_instance_of_false_function)                              \
-  RW(Function, async_clear_thread_stack_trace)                                 \
-  RW(Function, async_set_thread_stack_trace)                                   \
   RW(Function, async_star_move_next_helper)                                    \
   RW(Function, complete_on_async_return)                                       \
   RW(Function, complete_on_async_error)                                        \
diff --git a/runtime/vm/scopes.cc b/runtime/vm/scopes.cc
index bed2d5c..c84dc26 100644
--- a/runtime/vm/scopes.cc
+++ b/runtime/vm/scopes.cc
@@ -345,10 +345,6 @@
     // Keep :is_sync for asynchronous debugging.
     return false;
   }
-  if (str.raw() == Symbols::AsyncStackTraceVar().raw()) {
-    // Keep :async_stack_trace for asynchronous debugging.
-    return false;
-  }
   if (str.raw() == Symbols::FunctionTypeArgumentsVar().raw()) {
     // Keep :function_type_arguments for accessing type variables in debugging.
     return false;
@@ -697,7 +693,6 @@
     for (intptr_t i = 0; i < scope->num_variables(); i++) {
       LocalVariable* variable = scope->VariableAt(i);
       if (variable->is_forced_stack() ||
-          (variable->name().raw() == Symbols::StackTraceVar().raw()) ||
           (variable->name().raw() == Symbols::ExceptionVar().raw()) ||
           (variable->name().raw() == Symbols::SavedTryContextVar().raw()) ||
           (variable->name().raw() == Symbols::ArgDescVar().raw()) ||
diff --git a/runtime/vm/stack_trace.cc b/runtime/vm/stack_trace.cc
index 502a4f9..fb01137 100644
--- a/runtime/vm/stack_trace.cc
+++ b/runtime/vm/stack_trace.cc
@@ -497,37 +497,4 @@
   return collected_frames_count;
 }
 
-intptr_t StackTraceUtils::ExtractAsyncStackTraceInfo(
-    Thread* thread,
-    Function* async_function,
-    StackTrace* async_stack_trace_out,
-    Array* async_code_array,
-    Array* async_pc_offset_array) {
-  if (thread->async_stack_trace() == StackTrace::null()) {
-    return 0;
-  }
-  *async_stack_trace_out = thread->async_stack_trace();
-  ASSERT(!async_stack_trace_out->IsNull());
-  const StackTrace& async_stack_trace =
-      StackTrace::Handle(thread->async_stack_trace());
-  const intptr_t async_stack_trace_length = async_stack_trace.Length();
-  // At least two entries (0: gap marker, 1: async function).
-  RELEASE_ASSERT(async_stack_trace_length >= 2);
-  // Validate the structure of this stack trace.
-  *async_code_array = async_stack_trace.code_array();
-  ASSERT(!async_code_array->IsNull());
-  *async_pc_offset_array = async_stack_trace.pc_offset_array();
-  ASSERT(!async_pc_offset_array->IsNull());
-  // We start with the asynchronous gap marker.
-  ASSERT(async_code_array->At(0) != Code::null());
-  ASSERT(async_code_array->At(0) == StubCode::AsynchronousGapMarker().raw());
-  const Object& code_object = Object::Handle(async_code_array->At(1));
-  ASSERT(code_object.IsCode());
-  *async_function = Code::Cast(code_object).function();
-  ASSERT(!async_function->IsNull());
-  ASSERT(async_function->IsAsyncFunction() ||
-         async_function->IsAsyncGenerator());
-  return async_stack_trace_length;
-}
-
 }  // namespace dart
diff --git a/runtime/vm/stack_trace.h b/runtime/vm/stack_trace.h
index 460074b..215da83 100644
--- a/runtime/vm/stack_trace.h
+++ b/runtime/vm/stack_trace.h
@@ -113,17 +113,6 @@
                                 intptr_t array_offset,
                                 intptr_t count,
                                 int skip_frames);
-
-  /// If |thread| has no async_stack_trace, does nothing.
-  /// Populates |async_function| with the top function of the async stack
-  /// trace. Populates |async_stack_trace|, |async_code_array|, and
-  /// |async_pc_offset_array| with the thread's async_stack_trace.
-  /// Returns the length of the asynchronous stack trace.
-  static intptr_t ExtractAsyncStackTraceInfo(Thread* thread,
-                                             Function* async_function,
-                                             StackTrace* async_stack_trace,
-                                             Array* async_code_array,
-                                             Array* async_pc_offset_array);
 };
 
 }  // namespace dart
diff --git a/runtime/vm/symbols.h b/runtime/vm/symbols.h
index 6e408a0..4ea837a 100644
--- a/runtime/vm/symbols.h
+++ b/runtime/vm/symbols.h
@@ -30,7 +30,6 @@
   V(AssignIndexToken, "[]=")                                                   \
   V(AsyncFuture, ":async_future")                                              \
   V(AsyncOperation, ":async_op")                                               \
-  V(AsyncStackTraceVar, ":async_stack_trace")                                  \
   V(AsyncStarMoveNextHelper, "_asyncStarMoveNextHelper")                       \
   V(AwaitContextVar, ":await_ctx_var")                                         \
   V(AwaitJumpVar, ":await_jump_var")                                           \
@@ -46,7 +45,6 @@
   V(CheckLoaded, "_checkLoaded")                                               \
   V(Class, "Class")                                                            \
   V(ClassID, "ClassID")                                                        \
-  V(ClearAsyncThreadStackTrace, "_clearAsyncThreadStackTrace")                 \
   V(ClosureData, "ClosureData")                                                \
   V(ClosureParameter, ":closure")                                              \
   V(Code, "Code")                                                              \
@@ -71,7 +69,6 @@
   V(DartCollection, "dart:collection")                                         \
   V(DartCore, "dart:core")                                                     \
   V(DartDeveloper, "dart:developer")                                           \
-  V(DartDeveloperCausalAsyncStacks, "dart.developer.causal_async_stacks")      \
   V(DartDeveloperTimeline, "dart.developer.timeline")                          \
   V(DartExtensionScheme, "dart-ext:")                                          \
   V(DartFfi, "dart:ffi")                                                       \
@@ -247,7 +244,6 @@
   V(Script, "Script")                                                          \
   V(SecondArg, "y")                                                            \
   V(Set, "set")                                                                \
-  V(SetAsyncThreadStackTrace, "_setAsyncThreadStackTrace")                     \
   V(SetterPrefix, "set:")                                                      \
   V(SignatureData, "SignatureData")                                            \
   V(SingleTargetCache, "SingleTargetCache")                                    \
@@ -258,7 +254,6 @@
   V(SpaceWhereNewLine, " where\n")                                             \
   V(StackOverflowError, "StackOverflowError")                                  \
   V(StackTraceParameter, ":stack_trace")                                       \
-  V(StackTraceVar, ":stack_trace_var")                                         \
   V(Stream, "stream")                                                          \
   V(StreamController, "StreamController")                                      \
   V(StreamIterator, "StreamIterator")                                          \
diff --git a/runtime/vm/thread.cc b/runtime/vm/thread.cc
index 68448fc..4b9652c 100644
--- a/runtime/vm/thread.cc
+++ b/runtime/vm/thread.cc
@@ -71,7 +71,6 @@
       store_buffer_block_(NULL),
       marking_stack_block_(NULL),
       vm_tag_(0),
-      async_stack_trace_(StackTrace::null()),
       unboxed_int64_runtime_arg_(0),
       active_exception_(Object::null()),
       active_stacktrace_(Object::null()),
@@ -285,19 +284,6 @@
   }
 }
 
-StackTracePtr Thread::async_stack_trace() const {
-  return async_stack_trace_;
-}
-
-void Thread::set_async_stack_trace(const StackTrace& stack_trace) {
-  ASSERT(!stack_trace.IsNull());
-  async_stack_trace_ = stack_trace.raw();
-}
-
-void Thread::clear_async_stack_trace() {
-  async_stack_trace_ = StackTrace::null();
-}
-
 bool Thread::EnterIsolate(Isolate* isolate) {
   const bool kIsMutatorThread = true;
   Thread* thread = isolate->ScheduleThread(kIsMutatorThread);
@@ -667,7 +653,6 @@
   visitor->VisitPointer(reinterpret_cast<ObjectPtr*>(&active_exception_));
   visitor->VisitPointer(reinterpret_cast<ObjectPtr*>(&active_stacktrace_));
   visitor->VisitPointer(reinterpret_cast<ObjectPtr*>(&sticky_error_));
-  visitor->VisitPointer(reinterpret_cast<ObjectPtr*>(&async_stack_trace_));
   visitor->VisitPointer(reinterpret_cast<ObjectPtr*>(&ffi_callback_code_));
 
   // Visit the api local scope as it has all the api local handles.
diff --git a/runtime/vm/thread.h b/runtime/vm/thread.h
index 9cabac7..cc3c410 100644
--- a/runtime/vm/thread.h
+++ b/runtime/vm/thread.h
@@ -657,13 +657,6 @@
   void ClearStickyError();
   DART_WARN_UNUSED_RESULT ErrorPtr StealStickyError();
 
-  StackTracePtr async_stack_trace() const;
-  void set_async_stack_trace(const StackTrace& stack_trace);
-  void clear_async_stack_trace();
-  static intptr_t async_stack_trace_offset() {
-    return OFFSET_OF(Thread, async_stack_trace_);
-  }
-
 #if defined(DEBUG)
 #define REUSABLE_HANDLE_SCOPE_ACCESSORS(object)                                \
   void set_reusable_##object##_handle_scope_active(bool value) {               \
@@ -922,7 +915,6 @@
   MarkingStackBlock* marking_stack_block_;
   MarkingStackBlock* deferred_marking_stack_block_;
   uword volatile vm_tag_;
-  StackTracePtr async_stack_trace_;
   // Memory location dedicated for passing unboxed int64 values from
   // generated code to runtime.
   // TODO(dartbug.com/33549): Clean this up when unboxed values
diff --git a/sdk/lib/_internal/vm/lib/async_patch.dart b/sdk/lib/_internal/vm/lib/async_patch.dart
index 8659e79..8816675 100644
--- a/sdk/lib/_internal/vm/lib/async_patch.dart
+++ b/sdk/lib/_internal/vm/lib/async_patch.dart
@@ -265,27 +265,5 @@
   }
 }
 
-/// Returns a [StackTrace] object containing the synchronous prefix for this
-/// asynchronous method.
-//
-// This method is recognized. It performs a runtime call if
-// FLAG_causal_async_stacks is enabled or returns `null` otherwise.
-@pragma("vm:recognized", "other")
-@pragma("vm:prefer-inline")
-Object _asyncStackTraceHelper(Function async_op)
-    native "StackTrace_asyncStackTraceHelper";
-
-// This method is asm intrinsified.
-@pragma("vm:recognized", "asm-intrinsic")
-@pragma("vm:entry-point", "call")
-void _clearAsyncThreadStackTrace()
-    native "StackTrace_clearAsyncThreadStackTrace";
-
-// This method is asm intrinsified.
-@pragma("vm:recognized", "asm-intrinsic")
-@pragma("vm:entry-point", "call")
-void _setAsyncThreadStackTrace(StackTrace stackTrace)
-    native "StackTrace_setAsyncThreadStackTrace";
-
 void _moveNextDebuggerStepCheck(Function async_op)
     native "AsyncStarMoveNext_debuggerStepCheck";
diff --git a/tests/language/vm/causal_async_exception_stack2_test.dart b/tests/language/vm/causal_async_exception_stack2_test.dart
index 14c1efb..e3ddda0 100644
--- a/tests/language/vm/causal_async_exception_stack2_test.dart
+++ b/tests/language/vm/causal_async_exception_stack2_test.dart
@@ -1,9 +1,8 @@
 // Copyright (c) 2017, 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.
-
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks
+//
+// VMOptions=--lazy-async-stacks
 
 import 'package:async_helper/async_minitest.dart';
 
diff --git a/tests/language/vm/causal_async_exception_stack_test.dart b/tests/language/vm/causal_async_exception_stack_test.dart
index f4421c2..e9df0a7 100644
--- a/tests/language/vm/causal_async_exception_stack_test.dart
+++ b/tests/language/vm/causal_async_exception_stack_test.dart
@@ -1,6 +1,8 @@
 // Copyright (c) 2017, 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.
+//
+// VMOptions=--lazy-async-stacks
 
 import 'package:async_helper/async_minitest.dart';
 
@@ -34,8 +36,8 @@
     } catch (e, st) {
       expect(
           h.stringContainsInOrder(st.toString(), [
-            'thrower', '.dart:10', // no auto-format.
-            'generator', '.dart:19', // no auto-format.
+            'thrower', '.dart:12', // no auto-format.
+            'generator', '.dart:21', // no auto-format.
             '<asynchronous suspension>', // no auto-format.
             'foo', '.dart', // no auto-format.
             'main',
@@ -72,8 +74,8 @@
     } catch (e, st) {
       expect(
           h.stringContainsInOrder(st.toString(), [
-            'thrower', '.dart:10', // no auto-format.
-            'main.<anonymous closure>', '.dart:71', // no auto-format.
+            'thrower', '.dart:12', // no auto-format.
+            'main.<anonymous closure>', '.dart:73', // no auto-format.
           ]),
           isTrue);
     }
diff --git a/tests/language_2/vm/causal_async_exception_stack2_test.dart b/tests/language_2/vm/causal_async_exception_stack2_test.dart
index 14c1efb..e3ddda0 100644
--- a/tests/language_2/vm/causal_async_exception_stack2_test.dart
+++ b/tests/language_2/vm/causal_async_exception_stack2_test.dart
@@ -1,9 +1,8 @@
 // Copyright (c) 2017, 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.
-
-// VMOptions=--causal-async-stacks --no-lazy-async-stacks
-// VMOptions=--no-causal-async-stacks --lazy-async-stacks
+//
+// VMOptions=--lazy-async-stacks
 
 import 'package:async_helper/async_minitest.dart';
 
diff --git a/tests/language_2/vm/causal_async_exception_stack_test.dart b/tests/language_2/vm/causal_async_exception_stack_test.dart
index f4421c2..e9df0a7 100644
--- a/tests/language_2/vm/causal_async_exception_stack_test.dart
+++ b/tests/language_2/vm/causal_async_exception_stack_test.dart
@@ -1,6 +1,8 @@
 // Copyright (c) 2017, 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.
+//
+// VMOptions=--lazy-async-stacks
 
 import 'package:async_helper/async_minitest.dart';
 
@@ -34,8 +36,8 @@
     } catch (e, st) {
       expect(
           h.stringContainsInOrder(st.toString(), [
-            'thrower', '.dart:10', // no auto-format.
-            'generator', '.dart:19', // no auto-format.
+            'thrower', '.dart:12', // no auto-format.
+            'generator', '.dart:21', // no auto-format.
             '<asynchronous suspension>', // no auto-format.
             'foo', '.dart', // no auto-format.
             'main',
@@ -72,8 +74,8 @@
     } catch (e, st) {
       expect(
           h.stringContainsInOrder(st.toString(), [
-            'thrower', '.dart:10', // no auto-format.
-            'main.<anonymous closure>', '.dart:71', // no auto-format.
+            'thrower', '.dart:12', // no auto-format.
+            'main.<anonymous closure>', '.dart:73', // no auto-format.
           ]),
           isTrue);
     }
diff --git a/tests/standalone/causal_async_stack_test.dart b/tests/standalone/causal_async_stack_test.dart
index 5b44bec..652edb3 100644
--- a/tests/standalone/causal_async_stack_test.dart
+++ b/tests/standalone/causal_async_stack_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--causal_async_stacks --no-lazy-async-stacks
-// VMOptions=--no-causal_async_stacks --lazy-async-stacks
+//
+// VMOptions=--lazy-async-stacks
 
 import "package:expect/expect.dart";
 
diff --git a/tests/standalone/dart_developer_disabled_env_test.dart b/tests/standalone/dart_developer_disabled_env_test.dart
deleted file mode 100644
index 1d9653b..0000000
--- a/tests/standalone/dart_developer_disabled_env_test.dart
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (c) 2017, 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.
-// VMOptions=--no_causal_async_stacks
-
-import "package:expect/expect.dart";
-
-main() {
-  Expect.isFalse(
-      const bool.fromEnvironment('dart.developer.causal_async_stacks'));
-}
diff --git a/tests/standalone/dart_developer_env2_test.dart b/tests/standalone/dart_developer_env2_test.dart
deleted file mode 100644
index 881880a..0000000
--- a/tests/standalone/dart_developer_env2_test.dart
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (c) 2020, 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.
-// VMOptions=--lazy-async-stacks --no-causal-async-stacks
-
-import "package:expect/expect.dart";
-
-main() {
-  Expect.isFalse(
-      const bool.fromEnvironment('dart.developer.causal_async_stacks'));
-}
diff --git a/tests/standalone/dart_developer_env_test.dart b/tests/standalone/dart_developer_env_test.dart
deleted file mode 100644
index abb7bf6..0000000
--- a/tests/standalone/dart_developer_env_test.dart
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (c) 2017, 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.
-// VMOptions=--no-lazy-async-stacks --causal-async-stacks
-
-import "package:expect/expect.dart";
-
-main() {
-  Expect
-      .isTrue(const bool.fromEnvironment('dart.developer.causal_async_stacks'));
-}
diff --git a/tests/standalone_2/causal_async_stack_test.dart b/tests/standalone_2/causal_async_stack_test.dart
index 5b44bec..652edb3 100644
--- a/tests/standalone_2/causal_async_stack_test.dart
+++ b/tests/standalone_2/causal_async_stack_test.dart
@@ -1,8 +1,8 @@
 // Copyright (c) 2017, 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.
-// VMOptions=--causal_async_stacks --no-lazy-async-stacks
-// VMOptions=--no-causal_async_stacks --lazy-async-stacks
+//
+// VMOptions=--lazy-async-stacks
 
 import "package:expect/expect.dart";
 
diff --git a/tests/standalone_2/dart_developer_disabled_env_test.dart b/tests/standalone_2/dart_developer_disabled_env_test.dart
deleted file mode 100644
index 1d9653b..0000000
--- a/tests/standalone_2/dart_developer_disabled_env_test.dart
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (c) 2017, 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.
-// VMOptions=--no_causal_async_stacks
-
-import "package:expect/expect.dart";
-
-main() {
-  Expect.isFalse(
-      const bool.fromEnvironment('dart.developer.causal_async_stacks'));
-}
diff --git a/tests/standalone_2/dart_developer_env2_test.dart b/tests/standalone_2/dart_developer_env2_test.dart
deleted file mode 100644
index 881880a..0000000
--- a/tests/standalone_2/dart_developer_env2_test.dart
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (c) 2020, 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.
-// VMOptions=--lazy-async-stacks --no-causal-async-stacks
-
-import "package:expect/expect.dart";
-
-main() {
-  Expect.isFalse(
-      const bool.fromEnvironment('dart.developer.causal_async_stacks'));
-}
diff --git a/tests/standalone_2/dart_developer_env_test.dart b/tests/standalone_2/dart_developer_env_test.dart
deleted file mode 100644
index abb7bf6..0000000
--- a/tests/standalone_2/dart_developer_env_test.dart
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (c) 2017, 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.
-// VMOptions=--no-lazy-async-stacks --causal-async-stacks
-
-import "package:expect/expect.dart";
-
-main() {
-  Expect
-      .isTrue(const bool.fromEnvironment('dart.developer.causal_async_stacks'));
-}
diff --git a/tools/VERSION b/tools/VERSION
index 7b7bafe..b66ea8d 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 12
 PATCH 0
-PRERELEASE 101
+PRERELEASE 102
 PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/tools/bots/flutter/compile_flutter.sh b/tools/bots/flutter/compile_flutter.sh
index 1843abb..8f4f2d6 100755
--- a/tools/bots/flutter/compile_flutter.sh
+++ b/tools/bots/flutter/compile_flutter.sh
@@ -82,7 +82,6 @@
     $checkout/pkg/front_end/tool/_fasta/compile_platform.dart \
     dart:core \
     -Ddart.vm.product=false \
-    -Ddart.developer.causal_async_stacks=true \
     -Ddart.isVM=true \
     --enable-experiment=non-nullable \
     --nnbd-agnostic \