[cfe] Remove isOptOutTest work-around

Change-Id: I7dd125508bba256eb4c78b02fb24e433f45b129a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/205420
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
diff --git a/pkg/front_end/lib/src/api_prototype/language_version.dart b/pkg/front_end/lib/src/api_prototype/language_version.dart
index 3aa685b..566c816 100644
--- a/pkg/front_end/lib/src/api_prototype/language_version.dart
+++ b/pkg/front_end/lib/src/api_prototype/language_version.dart
@@ -17,8 +17,6 @@
 
 import '../fasta/compiler_context.dart' show CompilerContext;
 
-import '../fasta/source/source_library_builder.dart' show SourceLibraryBuilder;
-
 import '../fasta/uri_translator.dart' show UriTranslator;
 
 import 'compiler_options.dart' show CompilerOptions;
@@ -146,7 +144,6 @@
     Uri uri, CompilerOptions options) async {
   // This method is here in order to use the opt out hack here for test
   // sources.
-  if (SourceLibraryBuilder.isOptOutTest(uri)) return true;
   VersionAndPackageUri versionAndLibraryUri =
       await languageVersionForUri(uri, options);
   return !options.isExperimentEnabledInLibraryByVersion(
diff --git a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
index 324a721..4ed49c9 100644
--- a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
@@ -343,8 +343,7 @@
   /// a version that is too low for opting in to the experiment.
   bool get enableNonNullableInLibrary => _enableNonNullableInLibrary ??=
       loader.target.isExperimentEnabledInLibrary(
-              ExperimentalFlag.nonNullable, _packageUri ?? importUri) &&
-          !isOptOutTest(library.importUri);
+          ExperimentalFlag.nonNullable, _packageUri ?? importUri);
 
   Version get enableNonNullableVersionInLibrary =>
       _enableNonNullableVersionInLibrary ??= loader.target
@@ -481,30 +480,6 @@
       enableNonNullableInLibrary &&
       languageVersion.version >= enableNonNullableVersionInLibrary;
 
-  static bool isOptOutTest(Uri uri) {
-    String path = uri.path;
-    for (String testDir in ['/tests/', '/generated_tests/']) {
-      int start = path.indexOf(testDir);
-      if (start == -1) continue;
-      String rest = path.substring(start + testDir.length);
-      return optOutTestPaths.any(rest.startsWith);
-    }
-    return false;
-  }
-
-  static const List<String> optOutTestPaths = [
-    'co19_2/',
-    'corelib_2/',
-    'web_2/',
-    'ffi_2',
-    'language_2/',
-    'lib_2/',
-    'samples_2/',
-    'service_2/',
-    'standalone_2/',
-    'vm/dart_2/', // in runtime/tests
-  ];
-
   LanguageVersion get languageVersion {
     assert(
         _languageVersion.isFinal,
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 538d6cc..c132517 100644
--- a/pkg/front_end/lib/src/fasta/source/source_loader.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_loader.dart
@@ -271,10 +271,9 @@
                     library.importUri,
                     library.packageLanguageVersion.version),
             enableNonNullable: target.isExperimentEnabledInLibraryByVersion(
-                    ExperimentalFlag.nonNullable,
-                    library.importUri,
-                    library.packageLanguageVersion.version) &&
-                !SourceLibraryBuilder.isOptOutTest(library.importUri)),
+                ExperimentalFlag.nonNullable,
+                library.importUri,
+                library.packageLanguageVersion.version)),
         languageVersionChanged:
             (Scanner scanner, LanguageVersionToken version) {
       if (!suppressLexicalErrors) {
diff --git a/pkg/front_end/test/enable_non_nullable/data/allowed_package/lib/tests/language_2/implicitly_not_nnbd.dart b/pkg/front_end/test/enable_non_nullable/data/allowed_package/lib/tests/language_2/implicitly_not_nnbd.dart
deleted file mode 100644
index a316359..0000000
--- a/pkg/front_end/test/enable_non_nullable/data/allowed_package/lib/tests/language_2/implicitly_not_nnbd.dart
+++ /dev/null
@@ -1,18 +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.
-
-// Partial copy of tests/language_2/syntax/pre_nnbd_modifiers_test.dart.
-
-class late {
-  int get g => 1;
-}
-
-class required {
-  int get g => 2;
-}
-
-class C {
-  late l = late();
-  required r = required();
-}
diff --git a/pkg/front_end/test/enable_non_nullable/data/main.dart b/pkg/front_end/test/enable_non_nullable/data/main.dart
index 5744d19..cc333b0 100644
--- a/pkg/front_end/test/enable_non_nullable/data/main.dart
+++ b/pkg/front_end/test/enable_non_nullable/data/main.dart
@@ -7,13 +7,11 @@
 import 'package:allowed_package/versioned_2_9_lib.dart';
 import 'package:allowed_package/versioned_2_10_lib.dart';
 import 'package:allowed_package/versioned_2_11_lib.dart';
-import 'package:allowed_package/tests/language_2/implicitly_not_nnbd.dart';
 import 'package:not_allowed_package/unversioned_lib.dart';
 import 'package:not_allowed_package/versioned_2_8_lib.dart';
 import 'package:not_allowed_package/versioned_2_9_lib.dart';
 import 'package:not_allowed_package/versioned_2_10_lib.dart';
 import 'package:not_allowed_package/versioned_2_11_lib.dart';
-import 'package:not_allowed_package/tests/language_2/implicitly_not_nnbd.dart';
 import 'unversioned_lib.dart';
 import 'versioned_2_8_lib.dart';
 import 'versioned_2_9_lib.dart';
diff --git a/pkg/front_end/test/enable_non_nullable/data/not_allowed_package/lib/tests/language_2/implicitly_not_nnbd.dart b/pkg/front_end/test/enable_non_nullable/data/not_allowed_package/lib/tests/language_2/implicitly_not_nnbd.dart
deleted file mode 100644
index a316359..0000000
--- a/pkg/front_end/test/enable_non_nullable/data/not_allowed_package/lib/tests/language_2/implicitly_not_nnbd.dart
+++ /dev/null
@@ -1,18 +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.
-
-// Partial copy of tests/language_2/syntax/pre_nnbd_modifiers_test.dart.
-
-class late {
-  int get g => 1;
-}
-
-class required {
-  int get g => 2;
-}
-
-class C {
-  late l = late();
-  required r = required();
-}
diff --git a/pkg/front_end/test/enable_non_nullable/enable_non_nullable_test.dart b/pkg/front_end/test/enable_non_nullable/enable_non_nullable_test.dart
index d95cf75..1440d83 100644
--- a/pkg/front_end/test/enable_non_nullable/enable_non_nullable_test.dart
+++ b/pkg/front_end/test/enable_non_nullable/enable_non_nullable_test.dart
@@ -12,7 +12,6 @@
 import 'package:front_end/src/api_prototype/kernel_generator.dart';
 import 'package:front_end/src/api_prototype/language_version.dart';
 import 'package:front_end/src/compute_platform_binaries_location.dart';
-import 'package:front_end/src/fasta/source/source_library_builder.dart';
 import 'package:kernel/ast.dart';
 
 /// The version used in this test as the experiment release version.
@@ -142,8 +141,7 @@
           " (package) uri=${versionAndPackageUri.packageUri}");
       Expect.isTrue(
           library.languageVersion < versionImpliesOptIn ||
-              library.isNonNullableByDefault ||
-              SourceLibraryBuilder.isOptOutTest(library.fileUri),
+              library.isNonNullableByDefault,
           "Expected library ${library.importUri} with version "
           "${library.languageVersion} to be opted in.");
       Expect.isTrue(
@@ -151,8 +149,7 @@
               !versionAndPackageUri.packageUri.path
                   .startsWith('allowed_package') ||
               library.languageVersion < versionOptsInAllowed ||
-              library.isNonNullableByDefault ||
-              SourceLibraryBuilder.isOptOutTest(library.fileUri),
+              library.isNonNullableByDefault,
           "Expected allowed library ${library.importUri} with version "
           "${library.languageVersion} to be opted in.");
     }
diff --git a/runtime/tests/concurrency/stress_test_list.json b/runtime/tests/concurrency/stress_test_list.json
index 7981ebb..869c233 100644
--- a/runtime/tests/concurrency/stress_test_list.json
+++ b/runtime/tests/concurrency/stress_test_list.json
@@ -3528,7 +3528,6 @@
     "../vm/dart_2/unboxed_param_tear_off_test.dart",
     "../vm/dart_2/unboxed_param_test.dart",
     "../vm/dart_2/unboxed_retval_test.dart",
-    "../vm/dart_2/unsigned_shift_right_test.dart",
     "../vm/dart_2/wrap_around_in_range_analysis_test.dart",
     "../../../tests/corelib_2/apply2_test.dart",
     "../../../tests/corelib_2/apply3_test.dart",
diff --git a/runtime/tests/vm/dart_2/appjit_cha_deopt_test.dart b/runtime/tests/vm/dart_2/appjit_cha_deopt_test.dart
index 37071f9..e1c8124 100644
--- a/runtime/tests/vm/dart_2/appjit_cha_deopt_test.dart
+++ b/runtime/tests/vm/dart_2/appjit_cha_deopt_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // OtherResources=appjit_cha_deopt_test_body.dart
 // VMOptions=--optimization-counter-threshold=100 --deterministic
 
diff --git a/runtime/tests/vm/dart_2/appjit_cha_deopt_test_body.dart b/runtime/tests/vm/dart_2/appjit_cha_deopt_test_body.dart
index c59f720..917f652 100644
--- a/runtime/tests/vm/dart_2/appjit_cha_deopt_test_body.dart
+++ b/runtime/tests/vm/dart_2/appjit_cha_deopt_test_body.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Verify that app-jit snapshot contains dependencies between classes and CHA
 // optimized code.
 
diff --git a/runtime/tests/vm/dart_2/appjit_determinism_test.dart b/runtime/tests/vm/dart_2/appjit_determinism_test.dart
index f5116a8..b77b988 100644
--- a/runtime/tests/vm/dart_2/appjit_determinism_test.dart
+++ b/runtime/tests/vm/dart_2/appjit_determinism_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Verify creating an app-jit snapshot twice generates the same bits.
 
 import 'dart:async';
diff --git a/runtime/tests/vm/dart_2/appjit_load_static_licm_test.dart b/runtime/tests/vm/dart_2/appjit_load_static_licm_test.dart
index 804e30c..ff7b8a2 100644
--- a/runtime/tests/vm/dart_2/appjit_load_static_licm_test.dart
+++ b/runtime/tests/vm/dart_2/appjit_load_static_licm_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // OtherResources=appjit_load_static_licm_test_body.dart
 
 // Verify that app-jit snapshot contains dependencies between classes and CHA
diff --git a/runtime/tests/vm/dart_2/appjit_load_static_licm_test_body.dart b/runtime/tests/vm/dart_2/appjit_load_static_licm_test_body.dart
index 4006853..b391803 100644
--- a/runtime/tests/vm/dart_2/appjit_load_static_licm_test_body.dart
+++ b/runtime/tests/vm/dart_2/appjit_load_static_licm_test_body.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Verify that LoadStaticField IL instruction can't be hoisted above
 // InitStaticField instruction.
 
diff --git a/runtime/tests/vm/dart_2/async_igoto_threshold_flag_test.dart b/runtime/tests/vm/dart_2/async_igoto_threshold_flag_test.dart
index 20c864f..abd9846 100644
--- a/runtime/tests/vm/dart_2/async_igoto_threshold_flag_test.dart
+++ b/runtime/tests/vm/dart_2/async_igoto_threshold_flag_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // This test is ensuring that the flag for --async-igoto-threshold is handled.
 // - -1 means igoto-based async is disabled.
 // - All other values sets the threshold for after how many continuations we
diff --git a/runtime/tests/vm/dart_2/b162922506_test.dart b/runtime/tests/vm/dart_2/b162922506_test.dart
index bb7d8b7..89c4b1f 100644
--- a/runtime/tests/vm/dart_2/b162922506_test.dart
+++ b/runtime/tests/vm/dart_2/b162922506_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for b/162922506: verify that compiler does not use signed
 // 16-bit integers to store class ids for slots.
 
diff --git a/runtime/tests/vm/dart_2/bare_instructions_trampolines_test.dart b/runtime/tests/vm/dart_2/bare_instructions_trampolines_test.dart
index b7d734d..fee9478 100644
--- a/runtime/tests/vm/dart_2/bare_instructions_trampolines_test.dart
+++ b/runtime/tests/vm/dart_2/bare_instructions_trampolines_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--always-generate-trampolines-for-testing --use-bare-instructions
 
 // We use a reasonable sized test and run it with the above options.
diff --git a/runtime/tests/vm/dart_2/boxmint_test.dart b/runtime/tests/vm/dart_2/boxmint_test.dart
index bcc90b0..21d3065 100644
--- a/runtime/tests/vm/dart_2/boxmint_test.dart
+++ b/runtime/tests/vm/dart_2/boxmint_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Test case that tests boxing mint
 
 // VMOptions=--optimization_counter_threshold=10 --deterministic --use-slow-path --shared-slow-path-triggers-gc --stacktrace_filter=foobar
diff --git a/runtime/tests/vm/dart_2/byte_array_optimized_test.dart b/runtime/tests/vm/dart_2/byte_array_optimized_test.dart
index ca3b432..73e5e3d 100644
--- a/runtime/tests/vm/dart_2/byte_array_optimized_test.dart
+++ b/runtime/tests/vm/dart_2/byte_array_optimized_test.dart
@@ -3,6 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 // VMOptions=--optimization_counter_threshold=10 --no-background-compilation
 
+// @dart = 2.9
+
 // Library tag to be able to run in html test framework.
 library byte_array_test;
 
diff --git a/runtime/tests/vm/dart_2/byte_array_test.dart b/runtime/tests/vm/dart_2/byte_array_test.dart
index 441681f..d1f7eb9 100644
--- a/runtime/tests/vm/dart_2/byte_array_test.dart
+++ b/runtime/tests/vm/dart_2/byte_array_test.dart
@@ -3,6 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 // VMOptions=--optimization_counter_threshold=10 --no-background-compilation
 
+// @dart = 2.9
+
 // Library tag to be able to run in html test framework.
 library byte_array_test;
 
diff --git a/runtime/tests/vm/dart_2/callee_side_type_checks_test.dart b/runtime/tests/vm/dart_2/callee_side_type_checks_test.dart
index 5a8dfaf..ecac508 100644
--- a/runtime/tests/vm/dart_2/callee_side_type_checks_test.dart
+++ b/runtime/tests/vm/dart_2/callee_side_type_checks_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--reify-generic-functions
 
 import "package:expect/expect.dart";
diff --git a/runtime/tests/vm/dart_2/catch_entry_state_test.dart b/runtime/tests/vm/dart_2/catch_entry_state_test.dart
index 9f5fd6e..6e3fc2b 100644
--- a/runtime/tests/vm/dart_2/catch_entry_state_test.dart
+++ b/runtime/tests/vm/dart_2/catch_entry_state_test.dart
@@ -3,6 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 // VMOptions=--no-background-compilation --optimization-counter-threshold=100
 
+// @dart = 2.9
+
 // Verify that runtime correctly materializes unboxed variables on the catch
 // entry in optimized code.
 
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 5f18af8..228e1b5 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
@@ -4,6 +4,8 @@
 //
 // VMOptions=--dwarf-stack-traces --save-debugging-info=async_lazy_debug.so --lazy-async-stacks --no-use-bare-instructions
 
+// @dart = 2.9
+
 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 26805f1..ff202c8 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
@@ -4,6 +4,8 @@
 //
 // VMOptions=--lazy-async-stacks
 
+// @dart = 2.9
+
 import 'dart:async';
 
 import 'utils.dart';
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 c9dbb09..a84014e 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
@@ -4,6 +4,8 @@
 //
 // VMOptions=--dwarf-stack-traces --save-debugging-info=async_no_causal_debug.so --no-lazy-async-stacks
 
+// @dart = 2.9
+
 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 84848c9..3afda58 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
@@ -4,6 +4,8 @@
 //
 // VMOptions=--no-lazy-async-stacks
 
+// @dart = 2.9
+
 import 'dart:async';
 
 import 'utils.dart';
diff --git a/runtime/tests/vm/dart_2/causal_stacks/sync_async_start_pkg_test_test.dart b/runtime/tests/vm/dart_2/causal_stacks/sync_async_start_pkg_test_test.dart
index 7015fe0..8f29b8c 100644
--- a/runtime/tests/vm/dart_2/causal_stacks/sync_async_start_pkg_test_test.dart
+++ b/runtime/tests/vm/dart_2/causal_stacks/sync_async_start_pkg_test_test.dart
@@ -6,6 +6,8 @@
 // when lazy async stacks are enabled by dropping frames below a synchronous
 // start to an async function.
 
+// @dart = 2.9
+
 import "package:test/test.dart";
 import "package:stack_trace/src/stack_zone_specification.dart";
 
diff --git a/runtime/tests/vm/dart_2/causal_stacks/utils.dart b/runtime/tests/vm/dart_2/causal_stacks/utils.dart
index 4f02afc..cd46b03 100644
--- a/runtime/tests/vm/dart_2/causal_stacks/utils.dart
+++ b/runtime/tests/vm/dart_2/causal_stacks/utils.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:async';
 import 'dart:convert';
 import 'dart:io';
@@ -306,8 +308,8 @@
 Future<void> doTestsNoCausalNoLazy([String debugInfoFilename]) async {
   {
     final expected = const <String>[
-      r'^#0      throwSync \(.*/utils.dart:16(:3)?\)$',
-      r'^#1      allYield3 \(.*/utils.dart:39(:3)?\)$',
+      r'^#0      throwSync \(.*/utils.dart:18(:3)?\)$',
+      r'^#1      allYield3 \(.*/utils.dart:41(:3)?\)$',
       r'^#2      _RootZone.runUnary \(.+\)$',
       // The rest are internal frames which we don't really care about.
       IGNORE_REMAINING_STACK,
@@ -319,13 +321,13 @@
 
   {
     final expected = const <String>[
-      r'^#0      throwSync \(.*/utils.dart:16(:3)?\)$',
-      r'^#1      noYields3 \(.*/utils.dart:54(:3)?\)$',
-      r'^#2      noYields3 \(.*/utils.dart:53(:23)?\)$',
-      r'^#3      noYields2 \(.*/utils.dart:50(:9)?\)$',
-      r'^#4      noYields2 \(.*/utils.dart:49(:23)?\)$',
-      r'^#5      noYields \(.*/utils.dart:46(:9)?\)$',
-      r'^#6      noYields \(.*/utils.dart:45(:22)?\)$',
+      r'^#0      throwSync \(.*/utils.dart:18(:3)?\)$',
+      r'^#1      noYields3 \(.*/utils.dart:56(:3)?\)$',
+      r'^#2      noYields3 \(.*/utils.dart:55(:23)?\)$',
+      r'^#3      noYields2 \(.*/utils.dart:52(:9)?\)$',
+      r'^#4      noYields2 \(.*/utils.dart:51(:23)?\)$',
+      r'^#5      noYields \(.*/utils.dart:48(:9)?\)$',
+      r'^#6      noYields \(.*/utils.dart:47(:22)?\)$',
     ];
     final postfix = const <String>[
       r'^#9      doTestsNoCausalNoLazy ',
@@ -367,7 +369,7 @@
 
   {
     final expected = const <String>[
-      r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
+      r'^#0      throwAsync \(.*/utils.dart:23(:3)?\)$',
       r'^#1      _RootZone.runUnary \(.+\)$',
       // The rest are internal frames which we don't really care about.
       IGNORE_REMAINING_STACK,
@@ -379,7 +381,7 @@
 
   {
     final expected = const <String>[
-      r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
+      r'^#0      throwAsync \(.*/utils.dart:23(:3)?\)$',
       r'^#1      _RootZone.runUnary \(.+\)$',
       // The rest are internal frames which we don't really care about.
       IGNORE_REMAINING_STACK,
@@ -391,7 +393,7 @@
 
   {
     final expected = const <String>[
-      r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
+      r'^#0      throwAsync \(.*/utils.dart:23(:3)?\)$',
       r'^#1      _RootZone.runUnary \(.+\)$',
       // The rest are internal frames which we don't really care about.
       IGNORE_REMAINING_STACK,
@@ -403,8 +405,8 @@
 
   {
     final expected = const <String>[
-      r'^#0      throwSync \(.+/utils.dart:16(:3)?\)$',
-      r'^#1      asyncStarThrowSync \(.+/utils.dart:112(:11)?\)$',
+      r'^#0      throwSync \(.+/utils.dart:18(:3)?\)$',
+      r'^#1      asyncStarThrowSync \(.+/utils.dart:114(:11)?\)$',
       r'^#2      _RootZone.runUnary \(.+\)$',
       // The rest are internal frames which we don't really care about.
       IGNORE_REMAINING_STACK,
@@ -419,7 +421,7 @@
 
   {
     final expected = const <String>[
-      r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
+      r'^#0      throwAsync \(.*/utils.dart:23(:3)?\)$',
       r'^#1      _RootZone.runUnary \(.+\)$',
       // The rest are internal frames which we don't really care about.
       IGNORE_REMAINING_STACK,
@@ -434,7 +436,7 @@
 
   {
     final expected = const <String>[
-      r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
+      r'^#0      throwAsync \(.*/utils.dart:23(:3)?\)$',
       r'^#1      _RootZone.runUnary \(.+\)$',
       // The rest are internal frames which we don't really care about.
       IGNORE_REMAINING_STACK,
@@ -448,8 +450,8 @@
 
   {
     final expected = const <String>[
-      r'#0      throwSync \(.*/utils.dart:16(:3)?\)$',
-      r'#1      allYield3 \(.*/utils.dart:39(:3)?\)$',
+      r'#0      throwSync \(.*/utils.dart:18(:3)?\)$',
+      r'#1      allYield3 \(.*/utils.dart:41(:3)?\)$',
       r'#2      _rootRunUnary ',
       // The rest are internal frames which we don't really care about.
       IGNORE_REMAINING_STACK,
@@ -461,7 +463,7 @@
 
   {
     final expected = const <String>[
-      r'#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
+      r'#0      throwAsync \(.*/utils.dart:23(:3)?\)$',
       r'^#1      _RootZone.runUnary \(.+\)$',
       // The rest are internal frames which we don't really care about.
       IGNORE_REMAINING_STACK,
@@ -473,7 +475,7 @@
 
   {
     final expected = const <String>[
-      r'#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
+      r'#0      throwAsync \(.*/utils.dart:23(:3)?\)$',
       r'^#1      _RootZone.runUnary \(.+\)$',
       // The rest are internal frames which we don't really care about.
       IGNORE_REMAINING_STACK,
@@ -485,7 +487,7 @@
 
   {
     final expected = const <String>[
-      r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
+      r'^#0      throwAsync \(.*/utils.dart:23(:3)?\)$',
       r'^#1      _RootZone.runUnary \(.+\)$',
       // The rest are internal frames which we don't really care about.
       IGNORE_REMAINING_STACK,
@@ -498,8 +500,8 @@
 
   {
     final expected = const <String>[
-      r'^#0      throwSync \(.*/utils.dart:16(:3)?\)$',
-      r'^#1      futureThen.<anonymous closure> \(.*/utils.dart:187(:5)?\)$',
+      r'^#0      throwSync \(.*/utils.dart:18(:3)?\)$',
+      r'^#1      futureThen.<anonymous closure> \(.*/utils.dart:189(:5)?\)$',
       r'^#2      _RootZone.runUnary \(.+\)$',
       // The rest are internal frames which we don't really care about.
       IGNORE_REMAINING_STACK,
@@ -515,12 +517,12 @@
   // allYield
   {
     final allYieldExpected = const <String>[
-      r'^#0      throwSync \(.*/utils.dart:16(:3)?\)$',
-      r'^#1      allYield3 \(.*/utils.dart:39(:3)?\)$',
+      r'^#0      throwSync \(.*/utils.dart:18(:3)?\)$',
+      r'^#1      allYield3 \(.*/utils.dart:41(:3)?\)$',
       r'^<asynchronous suspension>$',
-      r'^#2      allYield2 \(.*/utils.dart:34(:3)?\)$',
+      r'^#2      allYield2 \(.*/utils.dart:36(:3)?\)$',
       r'^<asynchronous suspension>$',
-      r'^#3      allYield \(.*/utils.dart:29(:3)?\)$',
+      r'^#3      allYield \(.*/utils.dart:31(:3)?\)$',
       r'^<asynchronous suspension>$',
     ];
     await doTestAwait(
@@ -564,10 +566,10 @@
   // noYields
   {
     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)?\)$',
+      r'^#0      throwSync \(.*/utils.dart:18(:3)?\)$',
+      r'^#1      noYields3 \(.*/utils.dart:56(:3)?\)$',
+      r'^#2      noYields2 \(.*/utils.dart:52(:9)?\)$',
+      r'^#3      noYields \(.*/utils.dart:48(:9)?\)$',
     ];
     await doTestAwait(
         noYields,
@@ -607,11 +609,11 @@
   // mixedYields
   {
     final mixedYieldsExpected = const <String>[
-      r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
+      r'^#0      throwAsync \(.*/utils.dart:23(:3)?\)$',
       r'^<asynchronous suspension>$',
-      r'^#1      mixedYields2 \(.*/utils.dart:66(:3)?\)$',
+      r'^#1      mixedYields2 \(.*/utils.dart:68(:3)?\)$',
       r'^<asynchronous suspension>$',
-      r'^#2      mixedYields \(.*/utils.dart:61(:3)?\)$',
+      r'^#2      mixedYields \(.*/utils.dart:63(:3)?\)$',
       r'^<asynchronous suspension>$',
     ];
     await doTestAwait(
@@ -655,11 +657,11 @@
   // syncSuffix
   {
     final syncSuffixExpected = const <String>[
-      r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
+      r'^#0      throwAsync \(.*/utils.dart:23(:3)?\)$',
       r'^<asynchronous suspension>$',
-      r'^#1      syncSuffix2 \(.*/utils.dart:82(:3)?\)$',
+      r'^#1      syncSuffix2 \(.*/utils.dart:84(:3)?\)$',
       r'^<asynchronous suspension>$',
-      r'^#2      syncSuffix \(.*/utils.dart:77(:3)?\)$',
+      r'^#2      syncSuffix \(.*/utils.dart:79(:3)?\)$',
       r'^<asynchronous suspension>$',
     ];
     await doTestAwait(
@@ -703,11 +705,11 @@
   // nonAsyncNoStack
   {
     final nonAsyncNoStackExpected = const <String>[
-      r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
+      r'^#0      throwAsync \(.*/utils.dart:23(:3)?\)$',
       r'^<asynchronous suspension>$',
-      r'^#1      nonAsyncNoStack1 \(.*/utils.dart:95(:36)?\)$',
+      r'^#1      nonAsyncNoStack1 \(.*/utils.dart:97(:36)?\)$',
       r'^<asynchronous suspension>$',
-      r'^#2      nonAsyncNoStack \(.*/utils.dart:93(:35)?\)$',
+      r'^#2      nonAsyncNoStack \(.*/utils.dart:95(:35)?\)$',
       r'^<asynchronous suspension>$',
     ];
     await doTestAwait(
@@ -751,10 +753,10 @@
   // awaitEveryAsyncStarThrowSync
   {
     final asyncStarThrowSyncExpected = const <String>[
-      r'^#0      throwSync \(.+/utils.dart:16(:3)?\)$',
-      r'^#1      asyncStarThrowSync \(.+/utils.dart:112(:11)?\)$',
+      r'^#0      throwSync \(.+/utils.dart:18(:3)?\)$',
+      r'^#1      asyncStarThrowSync \(.+/utils.dart:114(:11)?\)$',
       r'^<asynchronous suspension>$',
-      r'^#2      awaitEveryAsyncStarThrowSync \(.+/utils.dart:104(:3)?\)$',
+      r'^#2      awaitEveryAsyncStarThrowSync \(.+/utils.dart:106(:3)?\)$',
       r'^<asynchronous suspension>$',
     ];
     await doTestAwait(
@@ -798,11 +800,11 @@
   // awaitEveryAsyncStarThrowAsync
   {
     final asyncStarThrowAsyncExpected = const <String>[
-      r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
+      r'^#0      throwAsync \(.*/utils.dart:23(:3)?\)$',
       r'^<asynchronous suspension>$',
-      r'^#1      asyncStarThrowAsync \(.*/utils.dart:126(:5)?\)$',
+      r'^#1      asyncStarThrowAsync \(.*/utils.dart:128(:5)?\)$',
       r'^<asynchronous suspension>$',
-      r'^#2      awaitEveryAsyncStarThrowAsync \(.+/utils.dart:117(:3)?\)$',
+      r'^#2      awaitEveryAsyncStarThrowAsync \(.+/utils.dart:119(:3)?\)$',
       r'^<asynchronous suspension>$',
     ];
     await doTestAwait(
@@ -846,9 +848,9 @@
   // listenAsyncStarThrowAsync
   {
     final listenAsyncStartExpected = const <String>[
-      r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
+      r'^#0      throwAsync \(.*/utils.dart:23(:3)?\)$',
       r'^<asynchronous suspension>$',
-      r'^#1      asyncStarThrowAsync \(.*/utils.dart:126(:5)?\)$',
+      r'^#1      asyncStarThrowAsync \(.*/utils.dart:128(:5)?\)$',
       r'^<asynchronous suspension>$',
       r'^#2      listenAsyncStarThrowAsync.<anonymous closure> \(.+/utils.dart(:0)?\)$',
       r'^<asynchronous suspension>$',
@@ -864,14 +866,14 @@
   // customErrorZone
   {
     final customErrorZoneExpected = const <String>[
-      r'#0      throwSync \(.*/utils.dart:16(:3)?\)$',
-      r'#1      allYield3 \(.*/utils.dart:39(:3)?\)$',
+      r'#0      throwSync \(.*/utils.dart:18(:3)?\)$',
+      r'#1      allYield3 \(.*/utils.dart:41(:3)?\)$',
       r'<asynchronous suspension>$',
-      r'#2      allYield2 \(.*/utils.dart:34(:3)?\)$',
+      r'#2      allYield2 \(.*/utils.dart:36(:3)?\)$',
       r'<asynchronous suspension>$',
-      r'#3      allYield \(.*/utils.dart:29(:3)?\)$',
+      r'#3      allYield \(.*/utils.dart:31(:3)?\)$',
       r'<asynchronous suspension>$',
-      r'#4      customErrorZone.<anonymous closure> \(.*/utils.dart:144(:5)?\)$',
+      r'#4      customErrorZone.<anonymous closure> \(.*/utils.dart:146(:5)?\)$',
       r'<asynchronous suspension>$',
     ];
     await doTestAwait(
@@ -885,7 +887,7 @@
   // awaitTimeout
   {
     final awaitTimeoutExpected = const <String>[
-      r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
+      r'^#0      throwAsync \(.*/utils.dart:23(:3)?\)$',
       r'^<asynchronous suspension>$',
       r'^#1      Future.timeout.<anonymous closure> \(dart:async/future_impl.dart',
       r'^<asynchronous suspension>$',
@@ -933,7 +935,7 @@
   // awaitWait
   {
     final awaitWaitExpected = const <String>[
-      r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
+      r'^#0      throwAsync \(.*/utils.dart:23(:3)?\)$',
       r'^<asynchronous suspension>$',
       r'^#1      Future.wait.<anonymous closure> \(dart:async/future.dart',
       r'^<asynchronous suspension>$',
@@ -981,7 +983,7 @@
   // futureSyncWhenComplete
   {
     final expected = const <String>[
-      r'^#0      throwAsync \(.*/utils.dart:21(:3)?\)$',
+      r'^#0      throwAsync \(.*/utils.dart:23(:3)?\)$',
       r'^<asynchronous suspension>$',
     ];
     await doTestAwait(
@@ -1025,7 +1027,7 @@
   // futureThen
   {
     final expected = const <String>[
-      r'^#0      throwSync \(.*/utils.dart:16(:3)?\)$',
+      r'^#0      throwSync \(.*/utils.dart:18(:3)?\)$',
       r'^#1      futureThen.<anonymous closure> ',
       r'^<asynchronous suspension>$',
     ];
diff --git a/runtime/tests/vm/dart_2/data_uri_import_test.dart b/runtime/tests/vm/dart_2/data_uri_import_test.dart
index ec23fb5..5f6634e 100644
--- a/runtime/tests/vm/dart_2/data_uri_import_test.dart
+++ b/runtime/tests/vm/dart_2/data_uri_import_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // foo() => 42;
 import 'data:application/dart;charset=utf-8,foo%28%29%20%3D%3E%2042%3B'; //# percentencoded: ok
 import 'data:text/plain;charset=utf-8,foo%28%29%20%3D%3E%2042%3B';  //# wrongmime: ok
diff --git a/runtime/tests/vm/dart_2/data_uri_spawn_test.dart b/runtime/tests/vm/dart_2/data_uri_spawn_test.dart
index 3e045a9..005a48a 100644
--- a/runtime/tests/vm/dart_2/data_uri_spawn_test.dart
+++ b/runtime/tests/vm/dart_2/data_uri_spawn_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "dart:isolate";
 
 import "package:async_helper/async_helper.dart";
diff --git a/runtime/tests/vm/dart_2/deferred_isolate_test.dart b/runtime/tests/vm/dart_2/deferred_isolate_test.dart
index 94be755..ccfcbba 100644
--- a/runtime/tests/vm/dart_2/deferred_isolate_test.dart
+++ b/runtime/tests/vm/dart_2/deferred_isolate_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Verify deferred library status is per-isolate, not per-isolate-group.
 
 // VMOptions=--enable-isolate-groups
diff --git a/runtime/tests/vm/dart_2/deferred_loading_and_weak_serialization_references_test.dart b/runtime/tests/vm/dart_2/deferred_loading_and_weak_serialization_references_test.dart
index 7447a06..d0c7722 100644
--- a/runtime/tests/vm/dart_2/deferred_loading_and_weak_serialization_references_test.dart
+++ b/runtime/tests/vm/dart_2/deferred_loading_and_weak_serialization_references_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // These flags can cause WeakSerializationReferences to replace the owner of
 // some Code, which must be accounted for in AssignLoadingUnitsCodeVisitor.
 
diff --git a/runtime/tests/vm/dart_2/deferred_loading_call_modes_test.dart b/runtime/tests/vm/dart_2/deferred_loading_call_modes_test.dart
index 8fa1e45..e513770 100644
--- a/runtime/tests/vm/dart_2/deferred_loading_call_modes_test.dart
+++ b/runtime/tests/vm/dart_2/deferred_loading_call_modes_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--use_bare_instructions=false
 // VMOptions=--use_bare_instructions=true --use_table_dispatch=false
 // VMOptions=--use_bare_instructions=true --use_table_dispatch=true
diff --git a/runtime/tests/vm/dart_2/deopt/allocate_array_test.dart b/runtime/tests/vm/dart_2/deopt/allocate_array_test.dart
index eb06336..4de688d 100644
--- a/runtime/tests/vm/dart_2/deopt/allocate_array_test.dart
+++ b/runtime/tests/vm/dart_2/deopt/allocate_array_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--disable-dart-dev --no-inline-alloc --use-slow-path --deoptimize-on-runtime-call-every=1 --deterministic --optimization-counter-threshold=1 --deoptimize-on-runtime-call-name-filter=AllocateArray
 
 main() {
diff --git a/runtime/tests/vm/dart_2/deopt/allocate_context_test.dart b/runtime/tests/vm/dart_2/deopt/allocate_context_test.dart
index c52abc0..3f72b24 100644
--- a/runtime/tests/vm/dart_2/deopt/allocate_context_test.dart
+++ b/runtime/tests/vm/dart_2/deopt/allocate_context_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--disable-dart-dev --no-inline-alloc --use-slow-path --deoptimize-on-runtime-call-every=1 --deterministic --optimization-counter-threshold=1 --deoptimize-on-runtime-call-name-filter=AllocateContext
 
 main() {
diff --git a/runtime/tests/vm/dart_2/deopt/allocate_object_test.dart b/runtime/tests/vm/dart_2/deopt/allocate_object_test.dart
index efcd883..1a9a9a8 100644
--- a/runtime/tests/vm/dart_2/deopt/allocate_object_test.dart
+++ b/runtime/tests/vm/dart_2/deopt/allocate_object_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--disable-dart-dev --no-inline-alloc --use-slow-path --deoptimize-on-runtime-call-every=1 --deterministic --optimization-counter-threshold=1 --deoptimize-on-runtime-call-name-filter=AllocateObject
 
 main() {
diff --git a/runtime/tests/vm/dart_2/deopt/allocate_typed_data_test.dart b/runtime/tests/vm/dart_2/deopt/allocate_typed_data_test.dart
index 6556661..f889137 100644
--- a/runtime/tests/vm/dart_2/deopt/allocate_typed_data_test.dart
+++ b/runtime/tests/vm/dart_2/deopt/allocate_typed_data_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--disable-dart-dev --no-inline-alloc --use-slow-path --deoptimize-on-runtime-call-every=1 --deterministic --optimization-counter-threshold=1 --deoptimize-on-runtime-call-name-filter=AllocateTypedData
 
 import 'dart:typed_data';
diff --git a/runtime/tests/vm/dart_2/deopt/assert_subtype_test.dart b/runtime/tests/vm/dart_2/deopt/assert_subtype_test.dart
index 964aa7d..8810f8c 100644
--- a/runtime/tests/vm/dart_2/deopt/assert_subtype_test.dart
+++ b/runtime/tests/vm/dart_2/deopt/assert_subtype_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--disable-dart-dev --deoptimize-on-runtime-call-every=1 --deterministic --optimization-counter-threshold=1 --deoptimize-on-runtime-call-name-filter=SubtypeCheck
 
 main() {
diff --git a/runtime/tests/vm/dart_2/deopt/clone_context_test.dart b/runtime/tests/vm/dart_2/deopt/clone_context_test.dart
index 5320404..1e62c6c 100644
--- a/runtime/tests/vm/dart_2/deopt/clone_context_test.dart
+++ b/runtime/tests/vm/dart_2/deopt/clone_context_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--disable-dart-dev --no-inline-alloc --use-slow-path --deoptimize-on-runtime-call-every=1 --deterministic --optimization-counter-threshold=1 --deoptimize-on-runtime-call-name-filter=CloneContext
 
 main() {
diff --git a/runtime/tests/vm/dart_2/deopt/indirect_goto_regress_46399_test.dart b/runtime/tests/vm/dart_2/deopt/indirect_goto_regress_46399_test.dart
index f28ef6b..b417332 100644
--- a/runtime/tests/vm/dart_2/deopt/indirect_goto_regress_46399_test.dart
+++ b/runtime/tests/vm/dart_2/deopt/indirect_goto_regress_46399_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--deterministic --deoptimize-on-runtime-call-every=1 --optimization-counter-threshold=1
 
 import 'package:expect/expect.dart';
diff --git a/runtime/tests/vm/dart_2/deopt/instantiate_type_arguments_test.dart b/runtime/tests/vm/dart_2/deopt/instantiate_type_arguments_test.dart
index 4426064..ff5f1df 100644
--- a/runtime/tests/vm/dart_2/deopt/instantiate_type_arguments_test.dart
+++ b/runtime/tests/vm/dart_2/deopt/instantiate_type_arguments_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--disable-dart-dev --deoptimize-on-runtime-call-every=1 --deterministic --optimization-counter-threshold=1 --deoptimize-on-runtime-call-name-filter=InstantiateTypeArguments
 
 main() {
diff --git a/runtime/tests/vm/dart_2/deopt/instantiate_type_test.dart b/runtime/tests/vm/dart_2/deopt/instantiate_type_test.dart
index 2ae579e..4c01b62 100644
--- a/runtime/tests/vm/dart_2/deopt/instantiate_type_test.dart
+++ b/runtime/tests/vm/dart_2/deopt/instantiate_type_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--disable-dart-dev --deoptimize-on-runtime-call-every=1 --deterministic --optimization-counter-threshold=1 --deoptimize-on-runtime-call-name-filter=InstantiateType
 
 main() {
diff --git a/runtime/tests/vm/dart_2/deopt/restart_call_on_deopt_regress_46070_test.dart b/runtime/tests/vm/dart_2/deopt/restart_call_on_deopt_regress_46070_test.dart
index 959c792..bcac86c 100644
--- a/runtime/tests/vm/dart_2/deopt/restart_call_on_deopt_regress_46070_test.dart
+++ b/runtime/tests/vm/dart_2/deopt/restart_call_on_deopt_regress_46070_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--deterministic --deoptimize-on-runtime-call-every=3 --optimization-counter-threshold=10
 
 main() {
diff --git a/runtime/tests/vm/dart_2/deopt/restart_call_on_deopt_regress_46446_test.dart b/runtime/tests/vm/dart_2/deopt/restart_call_on_deopt_regress_46446_test.dart
index 02db828..c897ab00 100644
--- a/runtime/tests/vm/dart_2/deopt/restart_call_on_deopt_regress_46446_test.dart
+++ b/runtime/tests/vm/dart_2/deopt/restart_call_on_deopt_regress_46446_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--disable-dart-dev --use-slow-path --deoptimize-on-runtime-call-every=3 --optimization-counter-threshold=10 --deterministic
 
 import 'dart:collection';
diff --git a/runtime/tests/vm/dart_2/disassemble_aot_test.dart b/runtime/tests/vm/dart_2/disassemble_aot_test.dart
index 80a32c3..fd4e55e 100644
--- a/runtime/tests/vm/dart_2/disassemble_aot_test.dart
+++ b/runtime/tests/vm/dart_2/disassemble_aot_test.dart
@@ -6,6 +6,8 @@
 //
 // Tests proper object recognition in disassembler.
 
+// @dart = 2.9
+
 import 'dart:async';
 import 'dart:io';
 
diff --git a/runtime/tests/vm/dart_2/disassemble_determinism_test.dart b/runtime/tests/vm/dart_2/disassemble_determinism_test.dart
index 682787c..b2d9521 100644
--- a/runtime/tests/vm/dart_2/disassemble_determinism_test.dart
+++ b/runtime/tests/vm/dart_2/disassemble_determinism_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Verify running with --disassemble --disassemble-relative produces
 // deterministic output. This is useful for removing noise when tracking down
 // the effects of compiler changes.
diff --git a/runtime/tests/vm/dart_2/double_field_assignment_test.dart b/runtime/tests/vm/dart_2/double_field_assignment_test.dart
index ba95348..ff47867 100644
--- a/runtime/tests/vm/dart_2/double_field_assignment_test.dart
+++ b/runtime/tests/vm/dart_2/double_field_assignment_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "package:expect/expect.dart";
 
 final bool alwaysTrue = int.parse('1') == 1;
diff --git a/runtime/tests/vm/dart_2/double_materialize_test.dart b/runtime/tests/vm/dart_2/double_materialize_test.dart
index e1fa1b3..4d654a1 100644
--- a/runtime/tests/vm/dart_2/double_materialize_test.dart
+++ b/runtime/tests/vm/dart_2/double_materialize_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--optimization_counter_threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
diff --git a/runtime/tests/vm/dart_2/double_to_smi_test.dart b/runtime/tests/vm/dart_2/double_to_smi_test.dart
index 06d6139..ae9d5da 100644
--- a/runtime/tests/vm/dart_2/double_to_smi_test.dart
+++ b/runtime/tests/vm/dart_2/double_to_smi_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--optimization_counter_threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
diff --git a/runtime/tests/vm/dart_2/dylib_utils.dart b/runtime/tests/vm/dart_2/dylib_utils.dart
index 083e941..af0b6d5 100644
--- a/runtime/tests/vm/dart_2/dylib_utils.dart
+++ b/runtime/tests/vm/dart_2/dylib_utils.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:ffi' as ffi;
 import 'dart:io' show Platform;
 
diff --git a/runtime/tests/vm/dart_2/emit_aot_size_info_flag_test.dart b/runtime/tests/vm/dart_2/emit_aot_size_info_flag_test.dart
index 229178f..0b28d08 100644
--- a/runtime/tests/vm/dart_2/emit_aot_size_info_flag_test.dart
+++ b/runtime/tests/vm/dart_2/emit_aot_size_info_flag_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "dart:async";
 import "dart:io";
 import "dart:convert";
diff --git a/runtime/tests/vm/dart_2/entrypoints/aot/static_this_test.dart b/runtime/tests/vm/dart_2/entrypoints/aot/static_this_test.dart
index f46906f..6b39bbd 100644
--- a/runtime/tests/vm/dart_2/entrypoints/aot/static_this_test.dart
+++ b/runtime/tests/vm/dart_2/entrypoints/aot/static_this_test.dart
@@ -4,6 +4,8 @@
 //
 // VMOptions=--enable-testing-pragmas -Denable_inlining=true
 
+// @dart = 2.9
+
 import '../static_this.dart';
 
 main(args) => test(args);
diff --git a/runtime/tests/vm/dart_2/entrypoints/aot/super_test.dart b/runtime/tests/vm/dart_2/entrypoints/aot/super_test.dart
index fae9243..a68f00f 100644
--- a/runtime/tests/vm/dart_2/entrypoints/aot/super_test.dart
+++ b/runtime/tests/vm/dart_2/entrypoints/aot/super_test.dart
@@ -4,6 +4,8 @@
 //
 // VMOptions=--enable-testing-pragmas -Denable_inlining=true
 
+// @dart = 2.9
+
 import "../super.dart";
 
 main(args) => test(args);
diff --git a/runtime/tests/vm/dart_2/entrypoints/common.dart b/runtime/tests/vm/dart_2/entrypoints/common.dart
index 19c01b4..9510608 100644
--- a/runtime/tests/vm/dart_2/entrypoints/common.dart
+++ b/runtime/tests/vm/dart_2/entrypoints/common.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "package:expect/expect.dart";
 
 // We want to run each test with and without inlining of the target functions.
diff --git a/runtime/tests/vm/dart_2/entrypoints/jit/polymorphic_optional_this_test.dart b/runtime/tests/vm/dart_2/entrypoints/jit/polymorphic_optional_this_test.dart
index 3599dba..eb7c8d6 100644
--- a/runtime/tests/vm/dart_2/entrypoints/jit/polymorphic_optional_this_test.dart
+++ b/runtime/tests/vm/dart_2/entrypoints/jit/polymorphic_optional_this_test.dart
@@ -6,6 +6,8 @@
 // VMOptions=--enable-testing-pragmas --no-background-compilation --optimization-counter-threshold=10 --compilation-counter-threshold=1
 // VMOptions=--enable-testing-pragmas --no-background-compilation --optimization-counter-threshold=-1 --compilation-counter-threshold=1
 
+// @dart = 2.9
+
 // Test that 'PolymorphicInstanceCall's against "this" go through the unchecked
 // entrypoint. The use of optional arguments here encourages prologue sharing
 // between the entrypoints.
diff --git a/runtime/tests/vm/dart_2/entrypoints/jit/polymorphic_this_test.dart b/runtime/tests/vm/dart_2/entrypoints/jit/polymorphic_this_test.dart
index 5793419..37f5a66 100644
--- a/runtime/tests/vm/dart_2/entrypoints/jit/polymorphic_this_test.dart
+++ b/runtime/tests/vm/dart_2/entrypoints/jit/polymorphic_this_test.dart
@@ -6,6 +6,8 @@
 // VMOptions=--enable-testing-pragmas --no-background-compilation --optimization-counter-threshold=10 --compilation-counter-threshold=1
 // VMOptions=--enable-testing-pragmas --no-background-compilation --optimization-counter-threshold=-1 --compilation-counter-threshold=1
 
+// @dart = 2.9
+
 // Test that 'PolymorphicInstanceCall's against "this" go through the unchecked
 // entrypoint.
 
diff --git a/runtime/tests/vm/dart_2/entrypoints/jit/static_this_test.dart b/runtime/tests/vm/dart_2/entrypoints/jit/static_this_test.dart
index 29094e4..bfdc0f8 100644
--- a/runtime/tests/vm/dart_2/entrypoints/jit/static_this_test.dart
+++ b/runtime/tests/vm/dart_2/entrypoints/jit/static_this_test.dart
@@ -6,6 +6,8 @@
 // VMOptions=--enable-testing-pragmas --no-background-compilation --optimization-counter-threshold=5 -Denable_inlining=true --compilation-counter-threshold=5
 // VMOptions=--enable-testing-pragmas --no-background-compilation --optimization-counter-threshold=-1 --compilation-counter-threshold=5
 
+// @dart = 2.9
+
 import '../static_this.dart';
 
 main(args) => test(args);
diff --git a/runtime/tests/vm/dart_2/entrypoints/jit/super_test.dart b/runtime/tests/vm/dart_2/entrypoints/jit/super_test.dart
index be8d2d9..bccaa31 100644
--- a/runtime/tests/vm/dart_2/entrypoints/jit/super_test.dart
+++ b/runtime/tests/vm/dart_2/entrypoints/jit/super_test.dart
@@ -6,6 +6,8 @@
 // VMOptions=--enable-testing-pragmas --no-background-compilation --optimization-counter-threshold=5 --compilation-counter-threshold=5
 // VMOptions=--enable-testing-pragmas --no-background-compilation --optimization-counter-threshold=-1 --compilation-counter-threshold=5
 
+// @dart = 2.9
+
 import "../super.dart";
 
 main(args) => test(args);
diff --git a/runtime/tests/vm/dart_2/entrypoints/static_this.dart b/runtime/tests/vm/dart_2/entrypoints/static_this.dart
index 38a8307..f203395 100644
--- a/runtime/tests/vm/dart_2/entrypoints/static_this.dart
+++ b/runtime/tests/vm/dart_2/entrypoints/static_this.dart
@@ -4,6 +4,8 @@
 //
 // Test that 'StaticCall's against "this" go through the unchecked entry-point.
 
+// @dart = 2.9
+
 import "common.dart";
 import "package:expect/expect.dart";
 
diff --git a/runtime/tests/vm/dart_2/entrypoints/super.dart b/runtime/tests/vm/dart_2/entrypoints/super.dart
index 2ba7af0..0fb1c23e 100644
--- a/runtime/tests/vm/dart_2/entrypoints/super.dart
+++ b/runtime/tests/vm/dart_2/entrypoints/super.dart
@@ -4,6 +4,8 @@
 //
 // Test that 'StaticCall's against "super" go through the unchecked entrypoint.
 
+// @dart = 2.9
+
 import "common.dart";
 import "package:expect/expect.dart";
 
diff --git a/runtime/tests/vm/dart_2/error_messages_in_null_checks_test.dart b/runtime/tests/vm/dart_2/error_messages_in_null_checks_test.dart
index bd114cb..ed66c1b 100644
--- a/runtime/tests/vm/dart_2/error_messages_in_null_checks_test.dart
+++ b/runtime/tests/vm/dart_2/error_messages_in_null_checks_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // This test verifies that NoSuchMethodError thrown from null checks
 // corresponding to devirtualized calls in AOT mode have detailed messages
 // (dartbug.com/32863).
diff --git a/runtime/tests/vm/dart_2/error_stacktrace_test.dart b/runtime/tests/vm/dart_2/error_stacktrace_test.dart
index 533aed5..a2c90c3 100644
--- a/runtime/tests/vm/dart_2/error_stacktrace_test.dart
+++ b/runtime/tests/vm/dart_2/error_stacktrace_test.dart
@@ -3,6 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 // Test that the full stacktrace in an error object matches the stacktrace
 // handed to the catch clause.
+
+// @dart = 2.9
 library test.error_stacktrace;
 
 import "package:expect/expect.dart";
diff --git a/runtime/tests/vm/dart_2/extension_names_test.dart b/runtime/tests/vm/dart_2/extension_names_test.dart
index 77414da..6f16cee 100644
--- a/runtime/tests/vm/dart_2/extension_names_test.dart
+++ b/runtime/tests/vm/dart_2/extension_names_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Test that ensures stack traces have user friendly names from extension
 // functions.
 
diff --git a/runtime/tests/vm/dart_2/extension_unnamed_names_test.dart b/runtime/tests/vm/dart_2/extension_unnamed_names_test.dart
index a38966d..ca8893a 100644
--- a/runtime/tests/vm/dart_2/extension_unnamed_names_test.dart
+++ b/runtime/tests/vm/dart_2/extension_unnamed_names_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Test that ensures stack traces have user friendly names from extension
 // functions.
 
diff --git a/runtime/tests/vm/dart_2/flutter_regress_82278_2_test.dart b/runtime/tests/vm/dart_2/flutter_regress_82278_2_test.dart
index 09fe2eb..8e6307f 100644
--- a/runtime/tests/vm/dart_2/flutter_regress_82278_2_test.dart
+++ b/runtime/tests/vm/dart_2/flutter_regress_82278_2_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 dynamic global;
diff --git a/runtime/tests/vm/dart_2/flutter_regress_82278_test.dart b/runtime/tests/vm/dart_2/flutter_regress_82278_test.dart
index 3170ab4..13f18e6 100644
--- a/runtime/tests/vm/dart_2/flutter_regress_82278_test.dart
+++ b/runtime/tests/vm/dart_2/flutter_regress_82278_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 class Foo {
diff --git a/runtime/tests/vm/dart_2/flutter_regression67803_test.dart b/runtime/tests/vm/dart_2/flutter_regression67803_test.dart
index 71abd70..06e3836 100644
--- a/runtime/tests/vm/dart_2/flutter_regression67803_test.dart
+++ b/runtime/tests/vm/dart_2/flutter_regression67803_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 final bool kTrue = int.parse('1') == 1;
diff --git a/runtime/tests/vm/dart_2/fuzz3608420507_regression_test.dart b/runtime/tests/vm/dart_2/fuzz3608420507_regression_test.dart
index 198ba7c..e70618d 100644
--- a/runtime/tests/vm/dart_2/fuzz3608420507_regression_test.dart
+++ b/runtime/tests/vm/dart_2/fuzz3608420507_regression_test.dart
@@ -2,6 +2,8 @@
 // Program generated as:
 //   dart dartfuzz.dart --seed 3608420507
 
+// @dart = 2.9
+
 bool var0 = false;
 bool var1 = false;
 int var2 = -49;
diff --git a/runtime/tests/vm/dart_2/gen_snapshot_include_resolved_urls_script.dart b/runtime/tests/vm/dart_2/gen_snapshot_include_resolved_urls_script.dart
index d36bd7f..731a177 100644
--- a/runtime/tests/vm/dart_2/gen_snapshot_include_resolved_urls_script.dart
+++ b/runtime/tests/vm/dart_2/gen_snapshot_include_resolved_urls_script.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:developer';
 import 'dart:isolate' as I;
 
diff --git a/runtime/tests/vm/dart_2/gen_snapshot_include_resolved_urls_test.dart b/runtime/tests/vm/dart_2/gen_snapshot_include_resolved_urls_test.dart
index bea28ff..5310fcd 100644
--- a/runtime/tests/vm/dart_2/gen_snapshot_include_resolved_urls_test.dart
+++ b/runtime/tests/vm/dart_2/gen_snapshot_include_resolved_urls_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "dart:async";
 import "dart:io";
 import "dart:convert";
diff --git a/runtime/tests/vm/dart_2/generic_check_bound_slow_path_test.dart b/runtime/tests/vm/dart_2/generic_check_bound_slow_path_test.dart
index 7290b2f..f7fca3c 100644
--- a/runtime/tests/vm/dart_2/generic_check_bound_slow_path_test.dart
+++ b/runtime/tests/vm/dart_2/generic_check_bound_slow_path_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--shared_slow_path_triggers_gc
 
 import 'dart:typed_data';
diff --git a/runtime/tests/vm/dart_2/generic_field_invocation_test.dart b/runtime/tests/vm/dart_2/generic_field_invocation_test.dart
index 6149695..b82944e 100644
--- a/runtime/tests/vm/dart_2/generic_field_invocation_test.dart
+++ b/runtime/tests/vm/dart_2/generic_field_invocation_test.dart
@@ -7,6 +7,8 @@
 //
 // VMOptions=--no-lazy-dispatchers
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 class C {
diff --git a/runtime/tests/vm/dart_2/hello_fuchsia_test.dart b/runtime/tests/vm/dart_2/hello_fuchsia_test.dart
index 818ee25..028a293 100644
--- a/runtime/tests/vm/dart_2/hello_fuchsia_test.dart
+++ b/runtime/tests/vm/dart_2/hello_fuchsia_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "dart:async";
 import "dart:convert";
 import "dart:io";
diff --git a/runtime/tests/vm/dart_2/hello_world_test.dart b/runtime/tests/vm/dart_2/hello_world_test.dart
index 8c9c377..f01c3e7 100644
--- a/runtime/tests/vm/dart_2/hello_world_test.dart
+++ b/runtime/tests/vm/dart_2/hello_world_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Classic "Hello, world!". Used in the VM build (runtime/bin/BUILD.gn) as
 // a tiny script for precompilation.
 
diff --git a/runtime/tests/vm/dart_2/in_memory_elf_test.dart b/runtime/tests/vm/dart_2/in_memory_elf_test.dart
index 958dd73..2df831c 100644
--- a/runtime/tests/vm/dart_2/in_memory_elf_test.dart
+++ b/runtime/tests/vm/dart_2/in_memory_elf_test.dart
@@ -7,6 +7,8 @@
 // Tests the in-memory ELF loader, which loads an ELF image without an
 // underlying file.
 
+// @dart = 2.9
+
 main() {
   print("Test successful.");
 }
diff --git a/runtime/tests/vm/dart_2/incompatible_loading_unit_1.dart b/runtime/tests/vm/dart_2/incompatible_loading_unit_1.dart
index 35b3947..a99a4e0 100644
--- a/runtime/tests/vm/dart_2/incompatible_loading_unit_1.dart
+++ b/runtime/tests/vm/dart_2/incompatible_loading_unit_1.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "incompatible_loading_unit_1_deferred.dart" deferred as lib;
 
 main() async {
diff --git a/runtime/tests/vm/dart_2/incompatible_loading_unit_1_deferred.dart b/runtime/tests/vm/dart_2/incompatible_loading_unit_1_deferred.dart
index c0b9a03..bf93bdf 100644
--- a/runtime/tests/vm/dart_2/incompatible_loading_unit_1_deferred.dart
+++ b/runtime/tests/vm/dart_2/incompatible_loading_unit_1_deferred.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 void foo() {
   print("One!");
 }
diff --git a/runtime/tests/vm/dart_2/incompatible_loading_unit_2.dart b/runtime/tests/vm/dart_2/incompatible_loading_unit_2.dart
index 7a352f6c..132ccc4 100644
--- a/runtime/tests/vm/dart_2/incompatible_loading_unit_2.dart
+++ b/runtime/tests/vm/dart_2/incompatible_loading_unit_2.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "incompatible_loading_unit_2_deferred.dart" deferred as lib;
 
 main() async {
diff --git a/runtime/tests/vm/dart_2/incompatible_loading_unit_2_deferred.dart b/runtime/tests/vm/dart_2/incompatible_loading_unit_2_deferred.dart
index 2dc3b7a..bd830aa 100644
--- a/runtime/tests/vm/dart_2/incompatible_loading_unit_2_deferred.dart
+++ b/runtime/tests/vm/dart_2/incompatible_loading_unit_2_deferred.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 void foo() {
   print("Two!");
 }
diff --git a/runtime/tests/vm/dart_2/incompatible_loading_unit_test.dart b/runtime/tests/vm/dart_2/incompatible_loading_unit_test.dart
index 73a7a6d..7ea0a2d 100644
--- a/runtime/tests/vm/dart_2/incompatible_loading_unit_test.dart
+++ b/runtime/tests/vm/dart_2/incompatible_loading_unit_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "dart:convert";
 import "dart:io";
 
diff --git a/runtime/tests/vm/dart_2/inline_stack_frame_test.dart b/runtime/tests/vm/dart_2/inline_stack_frame_test.dart
index 68c8584..9bb24e9 100644
--- a/runtime/tests/vm/dart_2/inline_stack_frame_test.dart
+++ b/runtime/tests/vm/dart_2/inline_stack_frame_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--optimization_counter_threshold=10 --no-background-compilation
 
 // This test tries to verify that we produce the correct stack trace when
diff --git a/runtime/tests/vm/dart_2/internal_platform_library_import_test.dart b/runtime/tests/vm/dart_2/internal_platform_library_import_test.dart
index 7f99459..89539c8 100644
--- a/runtime/tests/vm/dart_2/internal_platform_library_import_test.dart
+++ b/runtime/tests/vm/dart_2/internal_platform_library_import_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:_internal';
 
 void main(List<String> args) {
diff --git a/runtime/tests/vm/dart_2/isolate_send_function_types_test.dart b/runtime/tests/vm/dart_2/isolate_send_function_types_test.dart
index 8075c8b..556327c 100644
--- a/runtime/tests/vm/dart_2/isolate_send_function_types_test.dart
+++ b/runtime/tests/vm/dart_2/isolate_send_function_types_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 //
+
+// @dart = 2.9
 import 'dart:async';
 import 'dart:isolate';
 
diff --git a/runtime/tests/vm/dart_2/isolate_send_regex_test.dart b/runtime/tests/vm/dart_2/isolate_send_regex_test.dart
index cac6d09..065ca17 100644
--- a/runtime/tests/vm/dart_2/isolate_send_regex_test.dart
+++ b/runtime/tests/vm/dart_2/isolate_send_regex_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 //
+
+// @dart = 2.9
 import 'dart:isolate';
 
 import 'package:expect/expect.dart';
diff --git a/runtime/tests/vm/dart_2/isolates/concurrency_stress_sanity_test.dart b/runtime/tests/vm/dart_2/isolates/concurrency_stress_sanity_test.dart
index 3af1a18..b8ab05e 100644
--- a/runtime/tests/vm/dart_2/isolates/concurrency_stress_sanity_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/concurrency_stress_sanity_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:convert';
 import 'dart:io';
 
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 8b92de1..c14ce31 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
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // SharedObjects=ffi_test_functions
 // VMOptions=
 // VMOptions=--enable-isolate-groups --disable-heap-verification
diff --git a/runtime/tests/vm/dart_2/isolates/enum_isolate_regress41824_test.dart b/runtime/tests/vm/dart_2/isolates/enum_isolate_regress41824_test.dart
index 902d5ef..cdcc9d5 100644
--- a/runtime/tests/vm/dart_2/isolates/enum_isolate_regress41824_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/enum_isolate_regress41824_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:async';
 import 'dart:isolate';
 
diff --git a/runtime/tests/vm/dart_2/isolates/fast_object_copy2_test.dart b/runtime/tests/vm/dart_2/isolates/fast_object_copy2_test.dart
index dc684dc..8863949 100644
--- a/runtime/tests/vm/dart_2/isolates/fast_object_copy2_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/fast_object_copy2_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--enable-isolate-groups --no-enable-fast-object-copy
 // VMOptions=--enable-isolate-groups --enable-fast-object-copy
 // VMOptions=--enable-isolate-groups --no-enable-fast-object-copy --gc-on-foc-slow-path --force-evacuation
diff --git a/runtime/tests/vm/dart_2/isolates/fast_object_copy_test.dart b/runtime/tests/vm/dart_2/isolates/fast_object_copy_test.dart
index 87bbc26..933283f 100644
--- a/runtime/tests/vm/dart_2/isolates/fast_object_copy_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/fast_object_copy_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=
 // VMOptions=--enable-isolate-groups --no-enable-fast-object-copy
 // VMOptions=--enable-isolate-groups --enable-fast-object-copy
diff --git a/runtime/tests/vm/dart_2/isolates/fibonacci_call_ig_test.dart b/runtime/tests/vm/dart_2/isolates/fibonacci_call_ig_test.dart
index 946cbf9..5fcd026 100644
--- a/runtime/tests/vm/dart_2/isolates/fibonacci_call_ig_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/fibonacci_call_ig_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--enable-isolate-groups --disable-heap-verification
 
 import 'dart:isolate';
diff --git a/runtime/tests/vm/dart_2/isolates/fibonacci_call_test.dart b/runtime/tests/vm/dart_2/isolates/fibonacci_call_test.dart
index daf66e0..7a097a2 100644
--- a/runtime/tests/vm/dart_2/isolates/fibonacci_call_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/fibonacci_call_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--enable-isolate-groups --disable-heap-verification
 
 import 'dart:isolate';
diff --git a/runtime/tests/vm/dart_2/isolates/internal.dart b/runtime/tests/vm/dart_2/isolates/internal.dart
index 961f23f..9e9a3e4 100644
--- a/runtime/tests/vm/dart_2/isolates/internal.dart
+++ b/runtime/tests/vm/dart_2/isolates/internal.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:io';
 import 'dart:isolate';
 import 'dart:async';
diff --git a/runtime/tests/vm/dart_2/isolates/limited_active_mutator_test.dart b/runtime/tests/vm/dart_2/isolates/limited_active_mutator_test.dart
index f56e9ee..a99e4ee 100644
--- a/runtime/tests/vm/dart_2/isolates/limited_active_mutator_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/limited_active_mutator_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--enable-isolate-groups --disable-heap-verification --disable-thread-pool-limit
 
 import 'dart:async';
diff --git a/runtime/tests/vm/dart_2/isolates/regress_46539_test.dart b/runtime/tests/vm/dart_2/isolates/regress_46539_test.dart
index 0814f0d..0f16901 100644
--- a/runtime/tests/vm/dart_2/isolates/regress_46539_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/regress_46539_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--optimization-filter=foo --enable-isolate-groups --no-use-osr --optimization-counter-threshold=1 --deterministic
 
 // Important: This is a regression test for a concurrency issue, if this test
diff --git a/runtime/tests/vm/dart_2/isolates/reload_active_stack_test.dart b/runtime/tests/vm/dart_2/isolates/reload_active_stack_test.dart
index 615941f..9e546f8 100644
--- a/runtime/tests/vm/dart_2/isolates/reload_active_stack_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/reload_active_stack_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 import 'reload_utils.dart';
diff --git a/runtime/tests/vm/dart_2/isolates/reload_many_isolates_live_and_die_test.dart b/runtime/tests/vm/dart_2/isolates/reload_many_isolates_live_and_die_test.dart
index 7cfcbf6..7a0f2e6 100644
--- a/runtime/tests/vm/dart_2/isolates/reload_many_isolates_live_and_die_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/reload_many_isolates_live_and_die_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:async';
 
 import 'package:expect/expect.dart';
diff --git a/runtime/tests/vm/dart_2/isolates/reload_many_isolates_test.dart b/runtime/tests/vm/dart_2/isolates/reload_many_isolates_test.dart
index 70ff30c..2e85608 100644
--- a/runtime/tests/vm/dart_2/isolates/reload_many_isolates_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/reload_many_isolates_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 import 'reload_utils.dart';
diff --git a/runtime/tests/vm/dart_2/isolates/reload_no_active_stack_test.dart b/runtime/tests/vm/dart_2/isolates/reload_no_active_stack_test.dart
index a681d0a..28e4fce 100644
--- a/runtime/tests/vm/dart_2/isolates/reload_no_active_stack_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/reload_no_active_stack_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 import 'reload_utils.dart';
diff --git a/runtime/tests/vm/dart_2/isolates/reload_utils.dart b/runtime/tests/vm/dart_2/isolates/reload_utils.dart
index 4a664b7..f9ba12f 100644
--- a/runtime/tests/vm/dart_2/isolates/reload_utils.dart
+++ b/runtime/tests/vm/dart_2/isolates/reload_utils.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:async';
 import 'dart:io';
 import 'dart:convert';
diff --git a/runtime/tests/vm/dart_2/isolates/ring_gc_sendAndExit_test.dart b/runtime/tests/vm/dart_2/isolates/ring_gc_sendAndExit_test.dart
index 74b6820..56b636c 100644
--- a/runtime/tests/vm/dart_2/isolates/ring_gc_sendAndExit_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/ring_gc_sendAndExit_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--enable-isolate-groups --disable-heap-verification
 
 import 'dart:math' as math;
diff --git a/runtime/tests/vm/dart_2/isolates/ring_gc_test.dart b/runtime/tests/vm/dart_2/isolates/ring_gc_test.dart
index c27cd6c..908d1a3 100644
--- a/runtime/tests/vm/dart_2/isolates/ring_gc_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/ring_gc_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--enable-isolate-groups --disable-heap-verification
 
 import 'dart:async';
diff --git a/runtime/tests/vm/dart_2/isolates/spawn_function_test.dart b/runtime/tests/vm/dart_2/isolates/spawn_function_test.dart
index f2a85ea..4474a3f 100644
--- a/runtime/tests/vm/dart_2/isolates/spawn_function_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/spawn_function_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--enable-isolate-groups
 // VMOptions=--no-enable-isolate-groups
 
diff --git a/runtime/tests/vm/dart_2/isolates/sum_recursive_call_ig_test.dart b/runtime/tests/vm/dart_2/isolates/sum_recursive_call_ig_test.dart
index 915c102..177709f 100644
--- a/runtime/tests/vm/dart_2/isolates/sum_recursive_call_ig_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/sum_recursive_call_ig_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--enable-isolate-groups --disable-heap-verification
 
 import 'dart:isolate';
diff --git a/runtime/tests/vm/dart_2/isolates/sum_recursive_call_test.dart b/runtime/tests/vm/dart_2/isolates/sum_recursive_call_test.dart
index 89bcc58..0aba961 100644
--- a/runtime/tests/vm/dart_2/isolates/sum_recursive_call_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/sum_recursive_call_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--enable-isolate-groups --disable-heap-verification
 
 import 'dart:isolate';
diff --git a/runtime/tests/vm/dart_2/isolates/sum_recursive_tail_call_ig_test.dart b/runtime/tests/vm/dart_2/isolates/sum_recursive_tail_call_ig_test.dart
index a3fb967..be48915 100644
--- a/runtime/tests/vm/dart_2/isolates/sum_recursive_tail_call_ig_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/sum_recursive_tail_call_ig_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--enable-isolate-groups --disable-heap-verification
 
 import 'dart:isolate';
diff --git a/runtime/tests/vm/dart_2/isolates/sum_recursive_tail_call_test.dart b/runtime/tests/vm/dart_2/isolates/sum_recursive_tail_call_test.dart
index 866b8f3..85b6f0e 100644
--- a/runtime/tests/vm/dart_2/isolates/sum_recursive_tail_call_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/sum_recursive_tail_call_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--enable-isolate-groups --disable-heap-verification
 
 import 'dart:isolate';
diff --git a/runtime/tests/vm/dart_2/isolates/test_utils.dart b/runtime/tests/vm/dart_2/isolates/test_utils.dart
index fdf47d7..c8aa4ef 100644
--- a/runtime/tests/vm/dart_2/isolates/test_utils.dart
+++ b/runtime/tests/vm/dart_2/isolates/test_utils.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:async';
 import 'dart:io';
 import 'dart:isolate';
diff --git a/runtime/tests/vm/dart_2/isolates/thread_pool_test.dart b/runtime/tests/vm/dart_2/isolates/thread_pool_test.dart
index 695fda2..f54a9ce 100644
--- a/runtime/tests/vm/dart_2/isolates/thread_pool_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/thread_pool_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // SharedObjects=ffi_test_functions
 // VMOptions=--enable-isolate-groups --disable-heap-verification
 
diff --git a/runtime/tests/vm/dart_2/issue32950_test.dart b/runtime/tests/vm/dart_2/issue32950_test.dart
index 7e14a7f..b3f38fc 100644
--- a/runtime/tests/vm/dart_2/issue32950_test.dart
+++ b/runtime/tests/vm/dart_2/issue32950_test.dart
@@ -1,3 +1,5 @@
+
+// @dart = 2.9
 import 'dart:isolate';
 import 'dart:io';
 
diff --git a/runtime/tests/vm/dart_2/issue_31959_31960_test.dart b/runtime/tests/vm/dart_2/issue_31959_31960_test.dart
index d63a16f..9f79c7c 100644
--- a/runtime/tests/vm/dart_2/issue_31959_31960_test.dart
+++ b/runtime/tests/vm/dart_2/issue_31959_31960_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--enable-isolate-groups
 // VMOptions=--no-enable-isolate-groups
 
diff --git a/runtime/tests/vm/dart_2/kernel_determinism_test.dart b/runtime/tests/vm/dart_2/kernel_determinism_test.dart
index ed3ab3d..061e37d 100644
--- a/runtime/tests/vm/dart_2/kernel_determinism_test.dart
+++ b/runtime/tests/vm/dart_2/kernel_determinism_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Verify creating an incremental kernel file twice generates the same bits.
 
 import 'dart:async';
diff --git a/runtime/tests/vm/dart_2/licm_and_assert_strengthening_test.dart b/runtime/tests/vm/dart_2/licm_and_assert_strengthening_test.dart
index a1c962e..a3c26bf 100644
--- a/runtime/tests/vm/dart_2/licm_and_assert_strengthening_test.dart
+++ b/runtime/tests/vm/dart_2/licm_and_assert_strengthening_test.dart
@@ -3,6 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 // VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
+// @dart = 2.9
+
 // This test checks for obscure interaction between LICM and AssertAssignable
 // strengthening performed by Type Propagator. The later would use deopt_id
 // from an environment attached to AssertAssignable, and this deopt id under
diff --git a/runtime/tests/vm/dart_2/minimal_kernel_script.dart b/runtime/tests/vm/dart_2/minimal_kernel_script.dart
index ea3070c..aadd0cf 100644
--- a/runtime/tests/vm/dart_2/minimal_kernel_script.dart
+++ b/runtime/tests/vm/dart_2/minimal_kernel_script.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "dart:convert";
 
 main(List<String> args) {
diff --git a/runtime/tests/vm/dart_2/minimal_kernel_test.dart b/runtime/tests/vm/dart_2/minimal_kernel_test.dart
index 0c7722c..aad41a9 100644
--- a/runtime/tests/vm/dart_2/minimal_kernel_test.dart
+++ b/runtime/tests/vm/dart_2/minimal_kernel_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // OtherResources=minimal_kernel_script.dart
 
 // Tests that dill file produced with --minimal-kernel option
diff --git a/runtime/tests/vm/dart_2/named_params_shaking_test.dart b/runtime/tests/vm/dart_2/named_params_shaking_test.dart
index b941651..8a7debf 100644
--- a/runtime/tests/vm/dart_2/named_params_shaking_test.dart
+++ b/runtime/tests/vm/dart_2/named_params_shaking_test.dart
@@ -4,6 +4,8 @@
 //
 // Test that optimization of named parameters doesn't change evaluation order.
 
+// @dart = 2.9
+
 import 'dart:math';
 import 'package:expect/expect.dart';
 
diff --git a/runtime/tests/vm/dart_2/non_smi_receiver_assert_assignable_test.dart b/runtime/tests/vm/dart_2/non_smi_receiver_assert_assignable_test.dart
index b6b5814..2f810d3 100644
--- a/runtime/tests/vm/dart_2/non_smi_receiver_assert_assignable_test.dart
+++ b/runtime/tests/vm/dart_2/non_smi_receiver_assert_assignable_test.dart
@@ -1,3 +1,5 @@
+
+// @dart = 2.9
 class A {}
 
 class B extends A {}
diff --git a/runtime/tests/vm/dart_2/null_checks_with_dwarf_stack_traces_test.dart b/runtime/tests/vm/dart_2/null_checks_with_dwarf_stack_traces_test.dart
index e8dfe76..0b20fb4 100644
--- a/runtime/tests/vm/dart_2/null_checks_with_dwarf_stack_traces_test.dart
+++ b/runtime/tests/vm/dart_2/null_checks_with_dwarf_stack_traces_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--dwarf-stack-traces
 
 // This test verifies that null checks are handled correctly
diff --git a/runtime/tests/vm/dart_2/null_float32x4_simd_ops_test.dart b/runtime/tests/vm/dart_2/null_float32x4_simd_ops_test.dart
index d3fcc68..b01ca52 100644
--- a/runtime/tests/vm/dart_2/null_float32x4_simd_ops_test.dart
+++ b/runtime/tests/vm/dart_2/null_float32x4_simd_ops_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "dart:math";
 import "dart:typed_data";
 
diff --git a/runtime/tests/vm/dart_2/null_float64x2_simd_ops_test.dart b/runtime/tests/vm/dart_2/null_float64x2_simd_ops_test.dart
index 35e06bbd..76814d3 100644
--- a/runtime/tests/vm/dart_2/null_float64x2_simd_ops_test.dart
+++ b/runtime/tests/vm/dart_2/null_float64x2_simd_ops_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "dart:math";
 import "dart:typed_data";
 
diff --git a/runtime/tests/vm/dart_2/null_safety_autodetection_in_kernel_compiler_test.dart b/runtime/tests/vm/dart_2/null_safety_autodetection_in_kernel_compiler_test.dart
index 1c13f65..c22e750 100644
--- a/runtime/tests/vm/dart_2/null_safety_autodetection_in_kernel_compiler_test.dart
+++ b/runtime/tests/vm/dart_2/null_safety_autodetection_in_kernel_compiler_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Tests auto-detection of null safety mode in gen_kernel tool.
 
 import 'dart:io' show File, Platform;
diff --git a/runtime/tests/vm/dart_2/optimized_stacktrace_line_and_column_test.dart b/runtime/tests/vm/dart_2/optimized_stacktrace_line_and_column_test.dart
index 83dd0f7..2653a63 100644
--- a/runtime/tests/vm/dart_2/optimized_stacktrace_line_and_column_test.dart
+++ b/runtime/tests/vm/dart_2/optimized_stacktrace_line_and_column_test.dart
@@ -1,14 +1,18 @@
 // Copyright (c) 2013, 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.
+
+// @dart = 2.9
+
 // Test correct source positions in stack trace with optimized functions.
+
 import "package:expect/expect.dart";
 
 // (1) Test normal exception.
 foo(x) => bar(x);
 
 bar(x) {
-  if (x == null) throw 42; // throw at position 11:18
+  if (x == null) throw 42; // throw at position 15:18
   return x + 1;
 }
 
@@ -22,7 +26,7 @@
     print(s);
     Expect.isFalse(s.contains("-1:-1"), "A");
     RegExp regex = new RegExp(
-        "optimized_stacktrace_line_and_column_test(_none|_01)*\.dart:11(:18)*");
+        "optimized_stacktrace_line_and_column_test(_none|_01)*\.dart:15(:18)*");
     Expect.isTrue(regex.hasMatch(s), s);
   }
 
@@ -36,7 +40,7 @@
     print(s);
     Expect.isFalse(s.contains("-1:-1"), "C");
     RegExp regex = new RegExp(
-        "optimized_stacktrace_line_and_column_test(_none|_01)*\.dart:11(:18)*");
+        "optimized_stacktrace_line_and_column_test(_none|_01)*\.dart:15(:18)*");
     Expect.isTrue(regex.hasMatch(s), "D");
   }
 }
diff --git a/runtime/tests/vm/dart_2/optimized_stacktrace_line_test.dart b/runtime/tests/vm/dart_2/optimized_stacktrace_line_test.dart
index 43e5fde..1b41645 100644
--- a/runtime/tests/vm/dart_2/optimized_stacktrace_line_test.dart
+++ b/runtime/tests/vm/dart_2/optimized_stacktrace_line_test.dart
@@ -1,14 +1,18 @@
 // Copyright (c) 2013, 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.
+
+// @dart = 2.9
+
 // Test correct source positions in stack trace with optimized functions.
+
 import "package:expect/expect.dart";
 
 // (1) Test normal exception.
 foo(x) => bar(x);
 
 bar(x) {
-  if (x == null) throw 42; // throw at position 11:18
+  if (x == null) throw 42; // throw at position 15:18
   return x + 1;
 }
 
@@ -22,7 +26,7 @@
     print(s);
     Expect.isFalse(s.contains("-1:-1"), "A");
     RegExp regex =
-        new RegExp("optimized_stacktrace_line_test(_none|_01)*\.dart:11");
+        new RegExp("optimized_stacktrace_line_test(_none|_01)*\.dart:15");
     Expect.isTrue(regex.hasMatch(s), "B");
   }
 
@@ -36,7 +40,7 @@
     print(s);
     Expect.isFalse(s.contains("-1:-1"), "C");
     RegExp regex =
-        new RegExp("optimized_stacktrace_line_test(_none|_01)*\.dart:11");
+        new RegExp("optimized_stacktrace_line_test(_none|_01)*\.dart:15");
     Expect.isTrue(regex.hasMatch(s), "D");
   }
 }
diff --git a/runtime/tests/vm/dart_2/print_flow_graph_determinism_test.dart b/runtime/tests/vm/dart_2/print_flow_graph_determinism_test.dart
index 7b2eae5..3960636 100644
--- a/runtime/tests/vm/dart_2/print_flow_graph_determinism_test.dart
+++ b/runtime/tests/vm/dart_2/print_flow_graph_determinism_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Verify running with --print-flow-graph produces deterministic output. This is
 // useful for removing noise when tracking down the effects of compiler changes.
 
diff --git a/runtime/tests/vm/dart_2/product_aot_kernel_test.dart b/runtime/tests/vm/dart_2/product_aot_kernel_test.dart
index 5372d3d..7632067 100644
--- a/runtime/tests/vm/dart_2/product_aot_kernel_test.dart
+++ b/runtime/tests/vm/dart_2/product_aot_kernel_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // This test ensures that certain core libraries are "empty" in product mode (thereby
 // ensuring the right conditional pragma annotations were used).
 
diff --git a/runtime/tests/vm/dart_2/random_walk_fuzzer.dart b/runtime/tests/vm/dart_2/random_walk_fuzzer.dart
index 60a5765..e077692 100644
--- a/runtime/tests/vm/dart_2/random_walk_fuzzer.dart
+++ b/runtime/tests/vm/dart_2/random_walk_fuzzer.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Random-walk fuzzer for the Dart VM.
 //
 // Start with all the classes and libraries and various interesting values.
diff --git a/runtime/tests/vm/dart_2/redirection_type_shuffling_test.dart b/runtime/tests/vm/dart_2/redirection_type_shuffling_test.dart
index 0567a24..409bc98 100644
--- a/runtime/tests/vm/dart_2/redirection_type_shuffling_test.dart
+++ b/runtime/tests/vm/dart_2/redirection_type_shuffling_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "dart:mirrors";
 import "package:expect/expect.dart";
 
diff --git a/runtime/tests/vm/dart_2/regress29620_test.dart b/runtime/tests/vm/dart_2/regress29620_test.dart
index b41f3b7..164734d 100644
--- a/runtime/tests/vm/dart_2/regress29620_test.dart
+++ b/runtime/tests/vm/dart_2/regress29620_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for dartbug.com/29620: check that decision to deoptimize
 // and decisions which parts of the instruction to emit use the same
 // range information for instruction inputs.
diff --git a/runtime/tests/vm/dart_2/regress29846_test.dart b/runtime/tests/vm/dart_2/regress29846_test.dart
index 9657e9a..f11427b 100644
--- a/runtime/tests/vm/dart_2/regress29846_test.dart
+++ b/runtime/tests/vm/dart_2/regress29846_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for dartbug.com/29846: check that range-based
 // CheckClassId is generated correctly.
 
diff --git a/runtime/tests/vm/dart_2/regress30853_test.dart b/runtime/tests/vm/dart_2/regress30853_test.dart
index a514edf..62da3c3 100644
--- a/runtime/tests/vm/dart_2/regress30853_test.dart
+++ b/runtime/tests/vm/dart_2/regress30853_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for dartbug.com/30853: check that we assign correct range
 // to Uint32 operations when creating them from Int64 operations.
 
diff --git a/runtime/tests/vm/dart_2/regress32508_test.dart b/runtime/tests/vm/dart_2/regress32508_test.dart
index 37319c2..bda7613 100644
--- a/runtime/tests/vm/dart_2/regress32508_test.dart
+++ b/runtime/tests/vm/dart_2/regress32508_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for dartbug.com/32508: check that type test which takes
 // a value of a guarded _Closure field is performed correctly.
 
diff --git a/runtime/tests/vm/dart_2/regress32597_2_test.dart b/runtime/tests/vm/dart_2/regress32597_2_test.dart
index 9081470..d8e3f27 100644
--- a/runtime/tests/vm/dart_2/regress32597_2_test.dart
+++ b/runtime/tests/vm/dart_2/regress32597_2_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for dartbug.com/32597: incorrect type was assigned to phi
 // in strong mode.
 
diff --git a/runtime/tests/vm/dart_2/regress32597_test.dart b/runtime/tests/vm/dart_2/regress32597_test.dart
index 969af09..eabf7f6 100644
--- a/runtime/tests/vm/dart_2/regress32597_test.dart
+++ b/runtime/tests/vm/dart_2/regress32597_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for dartbug.com/32597: incorrect type was assigned to phi
 // in strong mode.
 
diff --git a/runtime/tests/vm/dart_2/regress32619_test.dart b/runtime/tests/vm/dart_2/regress32619_test.dart
index 3659926..fe1897a 100644
--- a/runtime/tests/vm/dart_2/regress32619_test.dart
+++ b/runtime/tests/vm/dart_2/regress32619_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for dartbug.com/32619: incorrect widening of smis to int32.
 
 // VMOptions=--optimization-counter-threshold=5 --no-background-compilation
diff --git a/runtime/tests/vm/dart_2/regress36953_test.dart b/runtime/tests/vm/dart_2/regress36953_test.dart
index 617049b..91a8bd7 100644
--- a/runtime/tests/vm/dart_2/regress36953_test.dart
+++ b/runtime/tests/vm/dart_2/regress36953_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for dartbug.com/36953: check that phi is inserted correctly
 // when try block has no normal exit.
 
diff --git a/runtime/tests/vm/dart_2/regress38467_test.dart b/runtime/tests/vm/dart_2/regress38467_test.dart
index 5bf5086..4b31f7a 100644
--- a/runtime/tests/vm/dart_2/regress38467_test.dart
+++ b/runtime/tests/vm/dart_2/regress38467_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for dartbug.com/38467: check that we don't consider
 // list[const] to be an access via constant index when list is (potentially)
 // a view.
diff --git a/runtime/tests/vm/dart_2/regress38654_test.dart b/runtime/tests/vm/dart_2/regress38654_test.dart
index 4aed202..ad5b1da 100644
--- a/runtime/tests/vm/dart_2/regress38654_test.dart
+++ b/runtime/tests/vm/dart_2/regress38654_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // See https://github.com/dart-lang/sdk/issues/38654 for context.
 
 // The Dart Project Fuzz Tester (1.53).
diff --git a/runtime/tests/vm/dart_2/regress38965_test.dart b/runtime/tests/vm/dart_2/regress38965_test.dart
index ef9f4fd..53ccdc1 100644
--- a/runtime/tests/vm/dart_2/regress38965_test.dart
+++ b/runtime/tests/vm/dart_2/regress38965_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for dartbug.com/38965.
 
 int a = -1;
diff --git a/runtime/tests/vm/dart_2/regress38979_test.dart b/runtime/tests/vm/dart_2/regress38979_test.dart
index b128249..f962598 100644
--- a/runtime/tests/vm/dart_2/regress38979_test.dart
+++ b/runtime/tests/vm/dart_2/regress38979_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Verifies that compiler doesn't crash on a particular piece of code.
 
 import "package:expect/expect.dart";
diff --git a/runtime/tests/vm/dart_2/regress40189_test.dart b/runtime/tests/vm/dart_2/regress40189_test.dart
index f857e5b..cbc9f45 100644
--- a/runtime/tests/vm/dart_2/regress40189_test.dart
+++ b/runtime/tests/vm/dart_2/regress40189_test.dart
@@ -4,6 +4,8 @@
 //
 // VMOptions=--lazy-async-stacks
 
+// @dart = 2.9
+
 import "package:expect/expect.dart";
 
 import 'dart:collection';
diff --git a/runtime/tests/vm/dart_2/regress43666_test.dart b/runtime/tests/vm/dart_2/regress43666_test.dart
index 49bb218..8c3fa95 100644
--- a/runtime/tests/vm/dart_2/regress43666_test.dart
+++ b/runtime/tests/vm/dart_2/regress43666_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 class Foo {
diff --git a/runtime/tests/vm/dart_2/regress45047_test.dart b/runtime/tests/vm/dart_2/regress45047_test.dart
index 4d2f083..18baa81 100644
--- a/runtime/tests/vm/dart_2/regress45047_test.dart
+++ b/runtime/tests/vm/dart_2/regress45047_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Verify that socket connection gracefully closes if cancelled.
 
 import 'dart:async';
diff --git a/runtime/tests/vm/dart_2/regress_33999_test.dart b/runtime/tests/vm/dart_2/regress_33999_test.dart
index e7e9e89..22f272d 100644
--- a/runtime/tests/vm/dart_2/regress_33999_test.dart
+++ b/runtime/tests/vm/dart_2/regress_33999_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Test checking that canonicalization rules for AssertAssignable IL
 // instructions take into account that these instructions can be
 // on unreachable code paths.
diff --git a/runtime/tests/vm/dart_2/regress_34755_test.dart b/runtime/tests/vm/dart_2/regress_34755_test.dart
index c13cfcf..f7367c5 100644
--- a/runtime/tests/vm/dart_2/regress_34755_test.dart
+++ b/runtime/tests/vm/dart_2/regress_34755_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Test checking that null is handled correctly at the call-sites that
 // are tracking static type exactness.
 
diff --git a/runtime/tests/vm/dart_2/regress_35481_test.dart b/runtime/tests/vm/dart_2/regress_35481_test.dart
index 21fd2ed..580b43d 100644
--- a/runtime/tests/vm/dart_2/regress_35481_test.dart
+++ b/runtime/tests/vm/dart_2/regress_35481_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Test checking that inlines replacing binding instructions with non-binding
 // instructions do not cause the compiler to crash due to not appropriately
 // replacing uses of the original binding instruction.
diff --git a/runtime/tests/vm/dart_2/regress_35887_test.dart b/runtime/tests/vm/dart_2/regress_35887_test.dart
index b0018fb..35f84d8 100644
--- a/runtime/tests/vm/dart_2/regress_35887_test.dart
+++ b/runtime/tests/vm/dart_2/regress_35887_test.dart
@@ -10,6 +10,8 @@
 //
 // VMOptions=--optimization_counter_threshold=10 --no-background-compilation
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 class Value {
diff --git a/runtime/tests/vm/dart_2/regress_36374_test.dart b/runtime/tests/vm/dart_2/regress_36374_test.dart
index 45df0f1..4076a2e 100644
--- a/runtime/tests/vm/dart_2/regress_36374_test.dart
+++ b/runtime/tests/vm/dart_2/regress_36374_test.dart
@@ -10,6 +10,8 @@
 //
 // VMOptions=--optimization_counter_threshold=10 --deterministic
 
+// @dart = 2.9
+
 class Foo {
   Foo(int x);
 }
diff --git a/runtime/tests/vm/dart_2/regress_36590_test.dart b/runtime/tests/vm/dart_2/regress_36590_test.dart
index 645c45b..f3f85b4 100644
--- a/runtime/tests/vm/dart_2/regress_36590_test.dart
+++ b/runtime/tests/vm/dart_2/regress_36590_test.dart
@@ -11,6 +11,8 @@
 //
 // VMOptions=--deterministic
 
+// @dart = 2.9
+
 var var6 = [1, 2, 3];
 
 void bar() {}
diff --git a/runtime/tests/vm/dart_2/regress_36636_test.dart b/runtime/tests/vm/dart_2/regress_36636_test.dart
index 1daf616..1c41d17 100644
--- a/runtime/tests/vm/dart_2/regress_36636_test.dart
+++ b/runtime/tests/vm/dart_2/regress_36636_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--intrinsify=false --no-use-vfp
 
 main() {}
diff --git a/runtime/tests/vm/dart_2/regress_37382_test.dart b/runtime/tests/vm/dart_2/regress_37382_test.dart
index 0a25345..7b90a0d 100644
--- a/runtime/tests/vm/dart_2/regress_37382_test.dart
+++ b/runtime/tests/vm/dart_2/regress_37382_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 void expectType(Type type, Pattern text) {
diff --git a/runtime/tests/vm/dart_2/regress_38182_test.dart b/runtime/tests/vm/dart_2/regress_38182_test.dart
index 952bee4..d8ab807 100644
--- a/runtime/tests/vm/dart_2/regress_38182_test.dart
+++ b/runtime/tests/vm/dart_2/regress_38182_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--stacktrace_every=1 --deterministic
 
 void foo1(par) {
diff --git a/runtime/tests/vm/dart_2/regress_38700_test.dart b/runtime/tests/vm/dart_2/regress_38700_test.dart
index cc6c0ee..7e8ea59 100644
--- a/runtime/tests/vm/dart_2/regress_38700_test.dart
+++ b/runtime/tests/vm/dart_2/regress_38700_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 Map<String, num> map = {'a': 1};
diff --git a/runtime/tests/vm/dart_2/regress_38743_test.dart b/runtime/tests/vm/dart_2/regress_38743_test.dart
index f10dd93..9ea4f76 100644
--- a/runtime/tests/vm/dart_2/regress_38743_test.dart
+++ b/runtime/tests/vm/dart_2/regress_38743_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--stacktrace_every=1 --deterministic --optimization-counter-threshold=6 --optimization-filter=baz
 
 // Regression test for https://github.com/dart-lang/sdk/issues/38743.
diff --git a/runtime/tests/vm/dart_2/regress_39152_test.dart b/runtime/tests/vm/dart_2/regress_39152_test.dart
index 343df24..7e32ff7 100644
--- a/runtime/tests/vm/dart_2/regress_39152_test.dart
+++ b/runtime/tests/vm/dart_2/regress_39152_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for https://github.com/dart-lang/sdk/issues/39152.
 // Verifies that unused object allocation doesn't cause crashes
 // during SSA construction in AOT.
diff --git a/runtime/tests/vm/dart_2/regress_39168_part1.dart b/runtime/tests/vm/dart_2/regress_39168_part1.dart
index 9f40bf1..2cff841 100644
--- a/runtime/tests/vm/dart_2/regress_39168_part1.dart
+++ b/runtime/tests/vm/dart_2/regress_39168_part1.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 part of regress_39168;
 
 // This class is not used and tree-shaken.
diff --git a/runtime/tests/vm/dart_2/regress_39168_part2.dart b/runtime/tests/vm/dart_2/regress_39168_part2.dart
index 787f700..cff99ff 100644
--- a/runtime/tests/vm/dart_2/regress_39168_part2.dart
+++ b/runtime/tests/vm/dart_2/regress_39168_part2.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 part of regress_39168;
 
 class B {}
diff --git a/runtime/tests/vm/dart_2/regress_39168_test.dart b/runtime/tests/vm/dart_2/regress_39168_test.dart
index cf24d83..da45d6a 100644
--- a/runtime/tests/vm/dart_2/regress_39168_test.dart
+++ b/runtime/tests/vm/dart_2/regress_39168_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for https://github.com/dart-lang/sdk/issues/39168.
 // Verifies that AOT compiler can handle synthetic code without line numbers
 // (mixin application in regress_39168_part1.dart).
diff --git a/runtime/tests/vm/dart_2/regress_39520_test.dart b/runtime/tests/vm/dart_2/regress_39520_test.dart
index caf65ee..eb3b5d9 100644
--- a/runtime/tests/vm/dart_2/regress_39520_test.dart
+++ b/runtime/tests/vm/dart_2/regress_39520_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--optimization_counter_threshold=1 --deterministic
 
 // Regression test for https://github.com/dart-lang/sdk/issues/39520.
diff --git a/runtime/tests/vm/dart_2/regress_39811_test.dart b/runtime/tests/vm/dart_2/regress_39811_test.dart
index 7fdc005..e7fbe84 100644
--- a/runtime/tests/vm/dart_2/regress_39811_test.dart
+++ b/runtime/tests/vm/dart_2/regress_39811_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--use-slow-path
 
 import 'dart:math';
diff --git a/runtime/tests/vm/dart_2/regress_39905_test.dart b/runtime/tests/vm/dart_2/regress_39905_test.dart
index 42a4531..1bbb7a8 100644
--- a/runtime/tests/vm/dart_2/regress_39905_test.dart
+++ b/runtime/tests/vm/dart_2/regress_39905_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--optimization_counter_threshold=10 --deterministic
 
 // Regression test for https://github.com/dart-lang/sdk/issues/39905.
diff --git a/runtime/tests/vm/dart_2/regress_40462_test.dart b/runtime/tests/vm/dart_2/regress_40462_test.dart
index d4e9122..e3b7916 100644
--- a/runtime/tests/vm/dart_2/regress_40462_test.dart
+++ b/runtime/tests/vm/dart_2/regress_40462_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for https://github.com/dart-lang/sdk/issues/40462
 // VMOptions=--deoptimize_every=140 --optimization_level=3 --use-slow-path --old_gen_heap_size=128
 
diff --git a/runtime/tests/vm/dart_2/regress_40635_test.dart b/runtime/tests/vm/dart_2/regress_40635_test.dart
index eeb643f..64864fe 100644
--- a/runtime/tests/vm/dart_2/regress_40635_test.dart
+++ b/runtime/tests/vm/dart_2/regress_40635_test.dart
@@ -9,6 +9,8 @@
 //
 // VMOptions=--dedup-instructions
 
+// @dart = 2.9
+
 import 'hello_world_test.dart' as other;
 
 main() => other.main();
diff --git a/runtime/tests/vm/dart_2/regress_40710_test.dart b/runtime/tests/vm/dart_2/regress_40710_test.dart
index 162cbae..69ea072 100644
--- a/runtime/tests/vm/dart_2/regress_40710_test.dart
+++ b/runtime/tests/vm/dart_2/regress_40710_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--optimization_counter_threshold=10 --deterministic
 
 // Regression test for https://dartbug.com/40710.
diff --git a/runtime/tests/vm/dart_2/regress_40753_test.dart b/runtime/tests/vm/dart_2/regress_40753_test.dart
index f257d3e..cce55d8 100644
--- a/runtime/tests/vm/dart_2/regress_40753_test.dart
+++ b/runtime/tests/vm/dart_2/regress_40753_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--optimization-filter=var50 --deoptimize-every=1
 
 final var50 = Expando<int>('expando');
diff --git a/runtime/tests/vm/dart_2/regress_40754_test.dart b/runtime/tests/vm/dart_2/regress_40754_test.dart
index a532eb2..281eb98 100644
--- a/runtime/tests/vm/dart_2/regress_40754_test.dart
+++ b/runtime/tests/vm/dart_2/regress_40754_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--deterministic --optimization_counter_threshold=1
 
 // A phi can have Smi type but non-Smi bounds if it is dominated by a smi check
diff --git a/runtime/tests/vm/dart_2/regress_40809_test.dart b/runtime/tests/vm/dart_2/regress_40809_test.dart
index 49bb8cf..c92dee8 100644
--- a/runtime/tests/vm/dart_2/regress_40809_test.dart
+++ b/runtime/tests/vm/dart_2/regress_40809_test.dart
@@ -5,6 +5,8 @@
 // Test that ensure that we correctly handle this reference from within the
 // try/catch even if it is captured.
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 var f;
diff --git a/runtime/tests/vm/dart_2/regress_40964_test.dart b/runtime/tests/vm/dart_2/regress_40964_test.dart
index df3a4d7..4620d16 100644
--- a/runtime/tests/vm/dart_2/regress_40964_test.dart
+++ b/runtime/tests/vm/dart_2/regress_40964_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "package:expect/expect.dart";
 
 class A<T> {
diff --git a/runtime/tests/vm/dart_2/regress_41971_test.dart b/runtime/tests/vm/dart_2/regress_41971_test.dart
index 59212ad..39b7082 100644
--- a/runtime/tests/vm/dart_2/regress_41971_test.dart
+++ b/runtime/tests/vm/dart_2/regress_41971_test.dart
@@ -6,6 +6,8 @@
 // representation requirements for uses of a definition that is being
 // folded away.
 
+// @dart = 2.9
+
 import 'dart:ffi';
 
 import 'package:expect/expect.dart';
diff --git a/runtime/tests/vm/dart_2/regress_42065_test.dart b/runtime/tests/vm/dart_2/regress_42065_test.dart
index 28079af..c43a5b5 100644
--- a/runtime/tests/vm/dart_2/regress_42065_test.dart
+++ b/runtime/tests/vm/dart_2/regress_42065_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Verifies that compiler doesn't crash while inlining recognized method
 // when receiver is a dead code.
 // Regression test for https://github.com/dart-lang/sdk/issues/42065.
diff --git a/runtime/tests/vm/dart_2/regress_42067_test.dart b/runtime/tests/vm/dart_2/regress_42067_test.dart
index 21f87c8..68efaef 100644
--- a/runtime/tests/vm/dart_2/regress_42067_test.dart
+++ b/runtime/tests/vm/dart_2/regress_42067_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--deterministic --optimization_counter_threshold=100
 
 // Verifies correct code is generated for Float64x2.fromFloat32x4 in case of
diff --git a/runtime/tests/vm/dart_2/regress_42202_test.dart b/runtime/tests/vm/dart_2/regress_42202_test.dart
index 0c75e00..e42a244 100644
--- a/runtime/tests/vm/dart_2/regress_42202_test.dart
+++ b/runtime/tests/vm/dart_2/regress_42202_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Verifies that AOT compiler doesn't crash when handling a polymorphic call to
 // operator== when receiver is a dead code (result of inlined call of a method
 // which doesn't return).
diff --git a/runtime/tests/vm/dart_2/regress_42418_1_test.dart b/runtime/tests/vm/dart_2/regress_42418_1_test.dart
index 65d7485..12a441c 100644
--- a/runtime/tests/vm/dart_2/regress_42418_1_test.dart
+++ b/runtime/tests/vm/dart_2/regress_42418_1_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:math';
 
 import 'package:expect/expect.dart';
diff --git a/runtime/tests/vm/dart_2/regress_42418_2_test.dart b/runtime/tests/vm/dart_2/regress_42418_2_test.dart
index 824ac78..69cb99a 100644
--- a/runtime/tests/vm/dart_2/regress_42418_2_test.dart
+++ b/runtime/tests/vm/dart_2/regress_42418_2_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:math';
 
 import 'package:expect/expect.dart';
diff --git a/runtime/tests/vm/dart_2/regress_42799_test.dart b/runtime/tests/vm/dart_2/regress_42799_test.dart
index c091da7..d3c973ee 100644
--- a/runtime/tests/vm/dart_2/regress_42799_test.dart
+++ b/runtime/tests/vm/dart_2/regress_42799_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Verifies that AOT compiler doesn't crash when constant folding 'is'
 // test for a value which is a result of unreachable code
 // (result of inlined call of a method which doesn't return).
diff --git a/runtime/tests/vm/dart_2/regress_43464_test.dart b/runtime/tests/vm/dart_2/regress_43464_test.dart
index 43a3c113..295391e 100644
--- a/runtime/tests/vm/dart_2/regress_43464_test.dart
+++ b/runtime/tests/vm/dart_2/regress_43464_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 class A {}
diff --git a/runtime/tests/vm/dart_2/regress_43679_test.dart b/runtime/tests/vm/dart_2/regress_43679_test.dart
index 9738391..02fe280 100644
--- a/runtime/tests/vm/dart_2/regress_43679_test.dart
+++ b/runtime/tests/vm/dart_2/regress_43679_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--deterministic --optimization_counter_threshold=80
 
 // Verifies that JIT compiler doesn't crash when typed data allocation is
diff --git a/runtime/tests/vm/dart_2/regress_43682_test.dart b/runtime/tests/vm/dart_2/regress_43682_test.dart
index 15924b1..a0c3c1a 100644
--- a/runtime/tests/vm/dart_2/regress_43682_test.dart
+++ b/runtime/tests/vm/dart_2/regress_43682_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--deterministic --optimization_counter_threshold=20
 
 // Verifies that SSA construction doesn't crash when handling a Phi
diff --git a/runtime/tests/vm/dart_2/regress_44342_test.dart b/runtime/tests/vm/dart_2/regress_44342_test.dart
index 98514fc..7aad000 100644
--- a/runtime/tests/vm/dart_2/regress_44342_test.dart
+++ b/runtime/tests/vm/dart_2/regress_44342_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--deterministic --optimization_counter_threshold=100
 
 // Verifies that class of a constant participates in CHA decisions.
diff --git a/runtime/tests/vm/dart_2/regress_44563_test.dart b/runtime/tests/vm/dart_2/regress_44563_test.dart
index 6b1baa6..357bed6 100644
--- a/runtime/tests/vm/dart_2/regress_44563_test.dart
+++ b/runtime/tests/vm/dart_2/regress_44563_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Verifies that unboxing info is attached to a member with unreachable body,
 // which is still used as an interface target.
 // Regression test for https://github.com/dart-lang/sdk/issues/44563.
diff --git a/runtime/tests/vm/dart_2/regress_45014_test.dart b/runtime/tests/vm/dart_2/regress_45014_test.dart
index 31ccddc..ee1bc96 100644
--- a/runtime/tests/vm/dart_2/regress_45014_test.dart
+++ b/runtime/tests/vm/dart_2/regress_45014_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 main() {
   neverForInExpressionType();        //# 01: runtime error
 }
diff --git a/runtime/tests/vm/dart_2/regress_45207_test.dart b/runtime/tests/vm/dart_2/regress_45207_test.dart
index 9f01648..a61b433 100644
--- a/runtime/tests/vm/dart_2/regress_45207_test.dart
+++ b/runtime/tests/vm/dart_2/regress_45207_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--deterministic  --optimization-counter-threshold=100 --deoptimize-on-runtime-call-name-filter=TypeCheck --deoptimize-on-runtime-call-every=1 --max-subtype-cache-entries=0
 
 main() {
diff --git a/runtime/tests/vm/dart_2/regress_45306_test.dart b/runtime/tests/vm/dart_2/regress_45306_test.dart
index 36af440..140d2de 100644
--- a/runtime/tests/vm/dart_2/regress_45306_test.dart
+++ b/runtime/tests/vm/dart_2/regress_45306_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for https://github.com/dart-lang/sdk/issues/45306.
 // Verifies that ScopeBuilder doesn't crash on an async closure inside
 // instance field initializer.
diff --git a/runtime/tests/vm/dart_2/regress_45631_test.dart b/runtime/tests/vm/dart_2/regress_45631_test.dart
index b6166cd..73862b3 100644
--- a/runtime/tests/vm/dart_2/regress_45631_test.dart
+++ b/runtime/tests/vm/dart_2/regress_45631_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for https://github.com/dart-lang/sdk/issues/45631.
 // Verifies that compiler doesn't reuse the same Slot for captured local
 // variables with the same name and offset.
diff --git a/runtime/tests/vm/dart_2/regress_45898_test.dart b/runtime/tests/vm/dart_2/regress_45898_test.dart
index fef076b..7de2387 100644
--- a/runtime/tests/vm/dart_2/regress_45898_test.dart
+++ b/runtime/tests/vm/dart_2/regress_45898_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:async';
 import 'dart:io';
 
diff --git a/runtime/tests/vm/dart_2/regress_45966_test.dart b/runtime/tests/vm/dart_2/regress_45966_test.dart
index 402d07c..40a5d08 100644
--- a/runtime/tests/vm/dart_2/regress_45966_test.dart
+++ b/runtime/tests/vm/dart_2/regress_45966_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for https://github.com/dart-lang/sdk/issues/45966.
 // Verifies that compiler doesn't crash if Typedef is only used from
 // function type of a call.
diff --git a/runtime/tests/vm/dart_2/regress_45968_test.dart b/runtime/tests/vm/dart_2/regress_45968_test.dart
index 80cff1f..a469e2e 100644
--- a/runtime/tests/vm/dart_2/regress_45968_test.dart
+++ b/runtime/tests/vm/dart_2/regress_45968_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for https://github.com/dart-lang/sdk/issues/45968.
 // Verifies that compiler doesn't crash if annotation references field
 // which is replaced with a getter.
diff --git a/runtime/tests/vm/dart_2/regress_big_regexp_test.dart b/runtime/tests/vm/dart_2/regress_big_regexp_test.dart
index 13e2689..1ef005d 100644
--- a/runtime/tests/vm/dart_2/regress_big_regexp_test.dart
+++ b/runtime/tests/vm/dart_2/regress_big_regexp_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Verifies that RegExp compilation doesn't crash on a huge source string.
 
 import 'package:expect/expect.dart';
diff --git a/runtime/tests/vm/dart_2/regress_flutter16182_test.dart b/runtime/tests/vm/dart_2/regress_flutter16182_test.dart
index 81c386e..27ae15d 100644
--- a/runtime/tests/vm/dart_2/regress_flutter16182_test.dart
+++ b/runtime/tests/vm/dart_2/regress_flutter16182_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for https://github.com/flutter/flutter/issues/16182
 // Verifies that TFA correctly handles calls via fields/getters.
 
diff --git a/runtime/tests/vm/dart_2/regress_flutter20122_test.dart b/runtime/tests/vm/dart_2/regress_flutter20122_test.dart
index 8693c63..98c0640 100644
--- a/runtime/tests/vm/dart_2/regress_flutter20122_test.dart
+++ b/runtime/tests/vm/dart_2/regress_flutter20122_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for https://github.com/flutter/flutter/issues/20122
 // Verifies that identityHashCode for strings does not interfere
 // with normal hashCode.
diff --git a/runtime/tests/vm/dart_2/regress_flutter35121_test.dart b/runtime/tests/vm/dart_2/regress_flutter35121_test.dart
index a4d21b6..7ea32e4 100644
--- a/runtime/tests/vm/dart_2/regress_flutter35121_test.dart
+++ b/runtime/tests/vm/dart_2/regress_flutter35121_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // This is a regression test for
 // https://github.com/flutter/flutter/issues/35121
 
diff --git a/runtime/tests/vm/dart_2/regress_flutter51298_test.dart b/runtime/tests/vm/dart_2/regress_flutter51298_test.dart
index 9e7bb8c..6056dea 100644
--- a/runtime/tests/vm/dart_2/regress_flutter51298_test.dart
+++ b/runtime/tests/vm/dart_2/regress_flutter51298_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--async_igoto_threshold=0 --optimization_counter_threshold=10 --deterministic
 
 // Regression test for https://github.com/flutter/flutter/issues/51298.
diff --git a/runtime/tests/vm/dart_2/regress_flutter76919_test.dart b/runtime/tests/vm/dart_2/regress_flutter76919_test.dart
index 669641a..3ee205b 100644
--- a/runtime/tests/vm/dart_2/regress_flutter76919_test.dart
+++ b/runtime/tests/vm/dart_2/regress_flutter76919_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for https://github.com/flutter/flutter/issues/76919
 // Verifies that we don't try to strengthen an environmentless assertion
 // with a class check in AOT mode which crashes AOT compiler.
diff --git a/runtime/tests/vm/dart_2/regress_flutter83094_test.dart b/runtime/tests/vm/dart_2/regress_flutter83094_test.dart
index 2572019..803550a 100644
--- a/runtime/tests/vm/dart_2/regress_flutter83094_test.dart
+++ b/runtime/tests/vm/dart_2/regress_flutter83094_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Verifies that compiler doesn't crash due to incompatible types
 // when unboxing input of a Phi.
 // Regression test for https://github.com/flutter/flutter/issues/83094.
diff --git a/runtime/tests/vm/dart_2/regress_flutter_57398_test.dart b/runtime/tests/vm/dart_2/regress_flutter_57398_test.dart
index 79c5614..eb7a828 100644
--- a/runtime/tests/vm/dart_2/regress_flutter_57398_test.dart
+++ b/runtime/tests/vm/dart_2/regress_flutter_57398_test.dart
@@ -4,6 +4,8 @@
 //
 // Check that we correctly handle FutureOr<T> when computing if a location
 // of the given static type can contain Smi or not.
+
+// @dart = 2.9
 import 'dart:async';
 
 import 'package:expect/expect.dart';
diff --git a/runtime/tests/vm/dart_2/regress_flutter_63560_test.dart b/runtime/tests/vm/dart_2/regress_flutter_63560_test.dart
index 717e814..ab8acaf 100644
--- a/runtime/tests/vm/dart_2/regress_flutter_63560_test.dart
+++ b/runtime/tests/vm/dart_2/regress_flutter_63560_test.dart
@@ -6,6 +6,8 @@
 // has deeply nested calls.
 // Regression test for https://github.com/flutter/flutter/issues/63560.
 // Generated using the following:
+
+// @dart = 2.9
 /*
 void main() {
   final N = 1000;
diff --git a/runtime/tests/vm/dart_2/regress_flutter_64526_test.dart b/runtime/tests/vm/dart_2/regress_flutter_64526_test.dart
index efdc0ad..e97da59 100644
--- a/runtime/tests/vm/dart_2/regress_flutter_64526_test.dart
+++ b/runtime/tests/vm/dart_2/regress_flutter_64526_test.dart
@@ -5,6 +5,8 @@
 // Tests that functions with large number of optional positional parameters
 // are compiled correctly and don't overflow instruction encoding.
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 class CCC {
diff --git a/runtime/tests/vm/dart_2/regress_lsl_with_constant_test.dart b/runtime/tests/vm/dart_2/regress_lsl_with_constant_test.dart
index 368a98b..31d65f9 100644
--- a/runtime/tests/vm/dart_2/regress_lsl_with_constant_test.dart
+++ b/runtime/tests/vm/dart_2/regress_lsl_with_constant_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test which checks that shift left with constant operand compiles
 // correctly even if narrowed to Int32 shift.
 
diff --git a/runtime/tests/vm/dart_2/regress_range_analysis_shift_test.dart b/runtime/tests/vm/dart_2/regress_range_analysis_shift_test.dart
index f30a370..d5ac728 100644
--- a/runtime/tests/vm/dart_2/regress_range_analysis_shift_test.dart
+++ b/runtime/tests/vm/dart_2/regress_range_analysis_shift_test.dart
@@ -7,6 +7,8 @@
 // Test that SpeculativeInt64ShiftOp's range is correctly inferred when the RHS
 // is a nullable smi.
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 int getShift(List<String> args) {
diff --git a/runtime/tests/vm/dart_2/rematerialize_unboxed_double_field_test.dart b/runtime/tests/vm/dart_2/rematerialize_unboxed_double_field_test.dart
index 8442c38..d8e037f 100644
--- a/runtime/tests/vm/dart_2/rematerialize_unboxed_double_field_test.dart
+++ b/runtime/tests/vm/dart_2/rematerialize_unboxed_double_field_test.dart
@@ -4,6 +4,8 @@
 //
 // VMOptions=--deterministic --optimization-counter-threshold=10 --unbox-numeric-fields
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 const magicDouble = 42.0;
diff --git a/runtime/tests/vm/dart_2/run_appended_aot_snapshot_test.dart b/runtime/tests/vm/dart_2/run_appended_aot_snapshot_test.dart
index a931e48..608ae3d 100644
--- a/runtime/tests/vm/dart_2/run_appended_aot_snapshot_test.dart
+++ b/runtime/tests/vm/dart_2/run_appended_aot_snapshot_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:async';
 import 'dart:io';
 import 'dart:typed_data';
diff --git a/runtime/tests/vm/dart_2/scavenger_abort_2_test.dart b/runtime/tests/vm/dart_2/scavenger_abort_2_test.dart
index e3183da..08c1666 100644
--- a/runtime/tests/vm/dart_2/scavenger_abort_2_test.dart
+++ b/runtime/tests/vm/dart_2/scavenger_abort_2_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "dart:io";
 import "package:expect/expect.dart";
 
diff --git a/runtime/tests/vm/dart_2/scavenger_abort_test.dart b/runtime/tests/vm/dart_2/scavenger_abort_test.dart
index ee3b38d..9f3ce1e0 100644
--- a/runtime/tests/vm/dart_2/scavenger_abort_test.dart
+++ b/runtime/tests/vm/dart_2/scavenger_abort_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "dart:io";
 import "package:expect/expect.dart";
 
diff --git a/runtime/tests/vm/dart_2/sdk_hash_test.dart b/runtime/tests/vm/dart_2/sdk_hash_test.dart
index 5030445..19fe165 100644
--- a/runtime/tests/vm/dart_2/sdk_hash_test.dart
+++ b/runtime/tests/vm/dart_2/sdk_hash_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:async';
 import 'dart:convert';
 import 'dart:io';
diff --git a/runtime/tests/vm/dart_2/send_instantiated_fun_test.dart b/runtime/tests/vm/dart_2/send_instantiated_fun_test.dart
index 751e8f8..72b47f8 100644
--- a/runtime/tests/vm/dart_2/send_instantiated_fun_test.dart
+++ b/runtime/tests/vm/dart_2/send_instantiated_fun_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Verify that partially instantiated generic function remains instantiated
 // after received via ReceivePort.
 
diff --git a/runtime/tests/vm/dart_2/sendandexit_test.dart b/runtime/tests/vm/dart_2/sendandexit_test.dart
index 58e02c6..f64b1ee 100644
--- a/runtime/tests/vm/dart_2/sendandexit_test.dart
+++ b/runtime/tests/vm/dart_2/sendandexit_test.dart
@@ -6,6 +6,8 @@
 //
 // Validates functionality of sendAndExit.
 
+// @dart = 2.9
+
 import 'dart:_internal' show sendAndExit;
 import 'dart:async';
 import 'dart:isolate';
diff --git a/runtime/tests/vm/dart_2/single_target_and_method_extractors2_test.dart b/runtime/tests/vm/dart_2/single_target_and_method_extractors2_test.dart
index 09d44a0..31219d3 100644
--- a/runtime/tests/vm/dart_2/single_target_and_method_extractors2_test.dart
+++ b/runtime/tests/vm/dart_2/single_target_and_method_extractors2_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // This test verifies that AOT compiler is correctly handling method extractors
 // when resolving targets of method invocations.
 
diff --git a/runtime/tests/vm/dart_2/single_target_and_method_extractors_test.dart b/runtime/tests/vm/dart_2/single_target_and_method_extractors_test.dart
index eb82966..062d7e0 100644
--- a/runtime/tests/vm/dart_2/single_target_and_method_extractors_test.dart
+++ b/runtime/tests/vm/dart_2/single_target_and_method_extractors_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "package:expect/expect.dart";
 
 // Note: below we are using tear-offs instead of calling methods directly
diff --git a/runtime/tests/vm/dart_2/slow_path_shared_stub_test.dart b/runtime/tests/vm/dart_2/slow_path_shared_stub_test.dart
index 7c50e88..be7b675 100644
--- a/runtime/tests/vm/dart_2/slow_path_shared_stub_test.dart
+++ b/runtime/tests/vm/dart_2/slow_path_shared_stub_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--optimization_counter_threshold=10 --no-background-compilation --shared-slow-path-triggers-gc
 // VMOptions=--optimization_counter_threshold=10 --no-background-compilation --shared-slow-path-triggers-gc --no-use-vfp
 
diff --git a/runtime/tests/vm/dart_2/snapshot_depfile_test.dart b/runtime/tests/vm/dart_2/snapshot_depfile_test.dart
index 1465b17..115c260 100644
--- a/runtime/tests/vm/dart_2/snapshot_depfile_test.dart
+++ b/runtime/tests/vm/dart_2/snapshot_depfile_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:async';
 import 'dart:io';
 
diff --git a/runtime/tests/vm/dart_2/snapshot_test_helper.dart b/runtime/tests/vm/dart_2/snapshot_test_helper.dart
index ddbd803..b57d04d 100644
--- a/runtime/tests/vm/dart_2/snapshot_test_helper.dart
+++ b/runtime/tests/vm/dart_2/snapshot_test_helper.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:async';
 import 'dart:io';
 import 'dart:math';
diff --git a/runtime/tests/vm/dart_2/snapshot_version_test.dart b/runtime/tests/vm/dart_2/snapshot_version_test.dart
index 2dcde10..2e271a2 100644
--- a/runtime/tests/vm/dart_2/snapshot_version_test.dart
+++ b/runtime/tests/vm/dart_2/snapshot_version_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "dart:io";
 import "package:expect/expect.dart";
 
diff --git a/runtime/tests/vm/dart_2/spawn_infinite_loop_test.dart b/runtime/tests/vm/dart_2/spawn_infinite_loop_test.dart
index 3a89e80..c87cf77 100644
--- a/runtime/tests/vm/dart_2/spawn_infinite_loop_test.dart
+++ b/runtime/tests/vm/dart_2/spawn_infinite_loop_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--enable-isolate-groups
 // VMOptions=--no-enable-isolate-groups
 
diff --git a/runtime/tests/vm/dart_2/spawn_shutdown_test.dart b/runtime/tests/vm/dart_2/spawn_shutdown_test.dart
index 6e42f3e..361d1fa 100644
--- a/runtime/tests/vm/dart_2/spawn_shutdown_test.dart
+++ b/runtime/tests/vm/dart_2/spawn_shutdown_test.dart
@@ -3,6 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 // VMOptions=--enable-asserts
 
+// @dart = 2.9
+
 import 'dart:async';
 import 'dart:io';
 import 'dart:isolate';
diff --git a/runtime/tests/vm/dart_2/spawnuri_snapshot_test.dart b/runtime/tests/vm/dart_2/spawnuri_snapshot_test.dart
index f0ed02f..fd9a709 100644
--- a/runtime/tests/vm/dart_2/spawnuri_snapshot_test.dart
+++ b/runtime/tests/vm/dart_2/spawnuri_snapshot_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Check spawnUri accepts any program format that `dart` accepts. Currently this
 // is source, kernel, AppJIT (blob container) and AppAOT (ELF).
 
diff --git a/runtime/tests/vm/dart_2/split_aot_kernel_generation2_test.dart b/runtime/tests/vm/dart_2/split_aot_kernel_generation2_test.dart
index 5d49f2c..5a8aeb8 100644
--- a/runtime/tests/vm/dart_2/split_aot_kernel_generation2_test.dart
+++ b/runtime/tests/vm/dart_2/split_aot_kernel_generation2_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // OtherResources=../../../../tests/language_2/mixin/regress_flutter_55345_test.dart
 
 // Runs regress_flutter_55345_test.dart using AOT kernel generation split into
diff --git a/runtime/tests/vm/dart_2/split_aot_kernel_generation_test.dart b/runtime/tests/vm/dart_2/split_aot_kernel_generation_test.dart
index 1f8d33b..7646544 100644
--- a/runtime/tests/vm/dart_2/split_aot_kernel_generation_test.dart
+++ b/runtime/tests/vm/dart_2/split_aot_kernel_generation_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // OtherResources=splay_test.dart
 
 // Tests AOT kernel generation split into 2 steps using '--from-dill' option.
diff --git a/runtime/tests/vm/dart_2/split_literals.dart b/runtime/tests/vm/dart_2/split_literals.dart
index b71e9bd..3321a93 100644
--- a/runtime/tests/vm/dart_2/split_literals.dart
+++ b/runtime/tests/vm/dart_2/split_literals.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "split_literals_deferred.dart" deferred as lib;
 
 class Box {
diff --git a/runtime/tests/vm/dart_2/split_literals_deferred.dart b/runtime/tests/vm/dart_2/split_literals_deferred.dart
index 015ae1d..b2f94b2 100644
--- a/runtime/tests/vm/dart_2/split_literals_deferred.dart
+++ b/runtime/tests/vm/dart_2/split_literals_deferred.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "split_literals.dart";
 
 void foo() {
diff --git a/runtime/tests/vm/dart_2/split_literals_test.dart b/runtime/tests/vm/dart_2/split_literals_test.dart
index 076e27a..05fcff2 100644
--- a/runtime/tests/vm/dart_2/split_literals_test.dart
+++ b/runtime/tests/vm/dart_2/split_literals_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import "dart:convert";
 import "dart:io";
 
diff --git a/runtime/tests/vm/dart_2/stack_overflow_shared_test.dart b/runtime/tests/vm/dart_2/stack_overflow_shared_test.dart
index 56fa08c..5e18e63 100644
--- a/runtime/tests/vm/dart_2/stack_overflow_shared_test.dart
+++ b/runtime/tests/vm/dart_2/stack_overflow_shared_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--optimization_counter_threshold=10 --no-background-compilation --shared-slow-path-triggers-gc --stacktrace_filter=filter_me
 
 // This tests the stackmaps and environments for safepoints corresponding to
diff --git a/runtime/tests/vm/dart_2/stacktrace_mixin_application_test.dart b/runtime/tests/vm/dart_2/stacktrace_mixin_application_test.dart
index 04371a3..a80f071 100644
--- a/runtime/tests/vm/dart_2/stacktrace_mixin_application_test.dart
+++ b/runtime/tests/vm/dart_2/stacktrace_mixin_application_test.dart
@@ -1,6 +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.
+
+// @dart = 2.9
 import "package:expect/expect.dart";
 
 mixin Bar {
diff --git a/runtime/tests/vm/dart_2/switchable_call_monomorphic_regression_42517_test.dart b/runtime/tests/vm/dart_2/switchable_call_monomorphic_regression_42517_test.dart
index a3c8ffa..af48843 100644
--- a/runtime/tests/vm/dart_2/switchable_call_monomorphic_regression_42517_test.dart
+++ b/runtime/tests/vm/dart_2/switchable_call_monomorphic_regression_42517_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 final dynamic l = <dynamic>[A(), B()];
diff --git a/runtime/tests/vm/dart_2/switchable_call_single_target_regression_42517_test.dart b/runtime/tests/vm/dart_2/switchable_call_single_target_regression_42517_test.dart
index 868ab75..4c782db 100644
--- a/runtime/tests/vm/dart_2/switchable_call_single_target_regression_42517_test.dart
+++ b/runtime/tests/vm/dart_2/switchable_call_single_target_regression_42517_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 final dynamic l = <dynamic>[A(), A1(), B()];
diff --git a/runtime/tests/vm/dart_2/thread_priority_linux_test.dart b/runtime/tests/vm/dart_2/thread_priority_linux_test.dart
index 63a9168..93cf05a 100644
--- a/runtime/tests/vm/dart_2/thread_priority_linux_test.dart
+++ b/runtime/tests/vm/dart_2/thread_priority_linux_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--worker-thread-priority=12
 
 import 'dart:ffi';
diff --git a/runtime/tests/vm/dart_2/thread_priority_macos_test.dart b/runtime/tests/vm/dart_2/thread_priority_macos_test.dart
index f1574cf..df60323 100644
--- a/runtime/tests/vm/dart_2/thread_priority_macos_test.dart
+++ b/runtime/tests/vm/dart_2/thread_priority_macos_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--worker-thread-priority=15
 
 import 'dart:ffi';
diff --git a/runtime/tests/vm/dart_2/thread_priority_windows_test.dart b/runtime/tests/vm/dart_2/thread_priority_windows_test.dart
index a1c31f7..1ec1eef 100644
--- a/runtime/tests/vm/dart_2/thread_priority_windows_test.dart
+++ b/runtime/tests/vm/dart_2/thread_priority_windows_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--worker-thread-priority=-2
 // A priority of -2 means THREAD_PRIORITY_LOWEST on windows
 
diff --git a/runtime/tests/vm/dart_2/transferable_allocations_test.dart b/runtime/tests/vm/dart_2/transferable_allocations_test.dart
index ec61786..824350f 100644
--- a/runtime/tests/vm/dart_2/transferable_allocations_test.dart
+++ b/runtime/tests/vm/dart_2/transferable_allocations_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Verifies that Transferable (external old space) objects are promptly gc'ed.
 // The test will run out of ia32 3GB heap allocation if objects are not gc'ed.
 
diff --git a/runtime/tests/vm/dart_2/transferable_test.dart b/runtime/tests/vm/dart_2/transferable_test.dart
index 8daf5a0..e08040e 100644
--- a/runtime/tests/vm/dart_2/transferable_test.dart
+++ b/runtime/tests/vm/dart_2/transferable_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--enable-isolate-groups
 // VMOptions=--no-enable-isolate-groups
 
diff --git a/runtime/tests/vm/dart_2/transferable_throws_oom_test.dart b/runtime/tests/vm/dart_2/transferable_throws_oom_test.dart
index 8e95792..f84b48b 100644
--- a/runtime/tests/vm/dart_2/transferable_throws_oom_test.dart
+++ b/runtime/tests/vm/dart_2/transferable_throws_oom_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Customize ASAN options for this test with 'allocator_may_return_null=1' as
 // it tries to allocate a large memory buffer.
 // Environment=ASAN_OPTIONS=handle_segv=0:detect_stack_use_after_return=1:allocator_may_return_null=1
diff --git a/runtime/tests/vm/dart_2/transferable_throws_test.dart b/runtime/tests/vm/dart_2/transferable_throws_test.dart
index fcb5bf7..320ec01 100644
--- a/runtime/tests/vm/dart_2/transferable_throws_test.dart
+++ b/runtime/tests/vm/dart_2/transferable_throws_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--enable-isolate-groups
 // VMOptions=--no-enable-isolate-groups
 
diff --git a/runtime/tests/vm/dart_2/trigger_gc_in_native_test.dart b/runtime/tests/vm/dart_2/trigger_gc_in_native_test.dart
index 4205fa6..f18fe04 100644
--- a/runtime/tests/vm/dart_2/trigger_gc_in_native_test.dart
+++ b/runtime/tests/vm/dart_2/trigger_gc_in_native_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--no_concurrent_mark --no_concurrent_sweep
 // VMOptions=--no_concurrent_mark --concurrent_sweep
 // VMOptions=--no_concurrent_mark --use_compactor
diff --git a/runtime/tests/vm/dart_2/truncating_ints_test.dart b/runtime/tests/vm/dart_2/truncating_ints_test.dart
index a988482..f062b38 100644
--- a/runtime/tests/vm/dart_2/truncating_ints_test.dart
+++ b/runtime/tests/vm/dart_2/truncating_ints_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // VMOptions=--optimization_counter_threshold=10 --no-use-osr --no-background-compilation
 
 // Test for truncating (wrap-around) integer arithmetic.
diff --git a/runtime/tests/vm/dart_2/tts_regression39716_test.dart b/runtime/tests/vm/dart_2/tts_regression39716_test.dart
index 782f3fa..a762f55 100644
--- a/runtime/tests/vm/dart_2/tts_regression39716_test.dart
+++ b/runtime/tests/vm/dart_2/tts_regression39716_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 main() {
diff --git a/runtime/tests/vm/dart_2/type_argument_factory_constructor_test.dart b/runtime/tests/vm/dart_2/type_argument_factory_constructor_test.dart
index 58bac74..c788378 100644
--- a/runtime/tests/vm/dart_2/type_argument_factory_constructor_test.dart
+++ b/runtime/tests/vm/dart_2/type_argument_factory_constructor_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Regression test for Issue https://github.com/dart-lang/sdk/issues/37264.
 typedef SomeCb = T Function<T>(T val);
 
diff --git a/runtime/tests/vm/dart_2/typed_data_vfp_regress_42745_test.dart b/runtime/tests/vm/dart_2/typed_data_vfp_regress_42745_test.dart
index 294f0ea..77ad067 100644
--- a/runtime/tests/vm/dart_2/typed_data_vfp_regress_42745_test.dart
+++ b/runtime/tests/vm/dart_2/typed_data_vfp_regress_42745_test.dart
@@ -3,6 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 // VMOptions=--no-use-vfp
 
+// @dart = 2.9
+
 import 'dart:typed_data';
 
 import 'package:expect/expect.dart';
diff --git a/runtime/tests/vm/dart_2/unboxed_fields_type_args_test.dart b/runtime/tests/vm/dart_2/unboxed_fields_type_args_test.dart
index d19c5e9..5eca439 100644
--- a/runtime/tests/vm/dart_2/unboxed_fields_type_args_test.dart
+++ b/runtime/tests/vm/dart_2/unboxed_fields_type_args_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:typed_data';
 import 'dart:async';
 import 'dart:isolate';
diff --git a/runtime/tests/vm/dart_2/unboxed_implicit_accessors_test.dart b/runtime/tests/vm/dart_2/unboxed_implicit_accessors_test.dart
index 08eea3a..5220bb7 100644
--- a/runtime/tests/vm/dart_2/unboxed_implicit_accessors_test.dart
+++ b/runtime/tests/vm/dart_2/unboxed_implicit_accessors_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 final l = <I>[A(), B(42, 4.2)];
 final l2 = <I2>[A2(), B2(42, 4.2)];
 
diff --git a/runtime/tests/vm/dart_2/unboxed_many_fields_test.dart b/runtime/tests/vm/dart_2/unboxed_many_fields_test.dart
index 79fd30f..9a03275 100644
--- a/runtime/tests/vm/dart_2/unboxed_many_fields_test.dart
+++ b/runtime/tests/vm/dart_2/unboxed_many_fields_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:_internal' show VMInternalsForTesting;
 
 import 'package:expect/expect.dart';
diff --git a/runtime/tests/vm/dart_2/unboxed_param_args_descriptor_test.dart b/runtime/tests/vm/dart_2/unboxed_param_args_descriptor_test.dart
index 6606fc4..499301b 100644
--- a/runtime/tests/vm/dart_2/unboxed_param_args_descriptor_test.dart
+++ b/runtime/tests/vm/dart_2/unboxed_param_args_descriptor_test.dart
@@ -4,6 +4,8 @@
 //
 // SharedObjects=ffi_test_functions
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 import 'dylib_utils.dart';
diff --git a/runtime/tests/vm/dart_2/unboxed_param_tear_off_test.dart b/runtime/tests/vm/dart_2/unboxed_param_tear_off_test.dart
index 4ef1f7f..310f784 100644
--- a/runtime/tests/vm/dart_2/unboxed_param_tear_off_test.dart
+++ b/runtime/tests/vm/dart_2/unboxed_param_tear_off_test.dart
@@ -4,6 +4,8 @@
 //
 // SharedObjects=ffi_test_functions
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 import 'dylib_utils.dart';
diff --git a/runtime/tests/vm/dart_2/unboxed_param_test.dart b/runtime/tests/vm/dart_2/unboxed_param_test.dart
index 0ce12da..9c0ec59 100644
--- a/runtime/tests/vm/dart_2/unboxed_param_test.dart
+++ b/runtime/tests/vm/dart_2/unboxed_param_test.dart
@@ -4,6 +4,8 @@
 //
 // SharedObjects=ffi_test_functions
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 import 'dylib_utils.dart';
diff --git a/runtime/tests/vm/dart_2/unboxed_parameter_helper.dart b/runtime/tests/vm/dart_2/unboxed_parameter_helper.dart
index 91ad154..b7db8dc 100644
--- a/runtime/tests/vm/dart_2/unboxed_parameter_helper.dart
+++ b/runtime/tests/vm/dart_2/unboxed_parameter_helper.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:typed_data';
 
 @pragma('vm:never-inline')
diff --git a/runtime/tests/vm/dart_2/unboxed_retval_test.dart b/runtime/tests/vm/dart_2/unboxed_retval_test.dart
index 6132480..edfc043 100644
--- a/runtime/tests/vm/dart_2/unboxed_retval_test.dart
+++ b/runtime/tests/vm/dart_2/unboxed_retval_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'package:expect/expect.dart';
 
 import 'unboxed_parameter_helper.dart';
diff --git a/runtime/tests/vm/dart_2/unsigned_shift_right_test.dart b/runtime/tests/vm/dart_2/unsigned_shift_right_test.dart
deleted file mode 100644
index 24195d6..0000000
--- a/runtime/tests/vm/dart_2/unsigned_shift_right_test.dart
+++ /dev/null
@@ -1,153 +0,0 @@
-// Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// VMOptions=--deterministic --optimization_counter_threshold=50
-// VMOptions=--no-intrinsify
-
-// Test int.operator>>> in case of Smi range overflow and deoptimization.
-
-import "package:expect/expect.dart";
-
-@pragma('vm:never-inline')
-void test1(int a, int b, int expected) {
-  Expect.equals(expected, a >>> b);
-}
-
-@pragma('vm:never-inline')
-void test2(int a, int b, int expected) {
-  Expect.equals(expected, a >>> b);
-}
-
-@pragma('vm:never-inline')
-void test3(int a, int b, int expected) {
-  Expect.equals(expected, a >>> b);
-}
-
-@pragma('vm:never-inline')
-void test4(int a, int b, int expected) {
-  Expect.equals(expected, a >>> b);
-}
-
-@pragma('vm:never-inline')
-void test5(int a, int b, int expected) {
-  Expect.equals(expected, a >>> b);
-}
-
-@pragma('vm:never-inline')
-void test6(int a, int b, int expected) {
-  Expect.equals(expected, a >>> b);
-}
-
-@pragma('vm:never-inline')
-void test7(int a, int b, int expected) {
-  Expect.equals(expected, a >>> b);
-}
-
-@pragma('vm:never-inline')
-void test8(int a, int b, int expected) {
-  Expect.equals(expected, a >>> b);
-}
-
-@pragma('vm:never-inline')
-void test9(int a, int b, int expected) {
-  Expect.equals(expected, a >>> b);
-}
-
-@pragma('vm:never-inline')
-void test10(int a, int b, int expected) {
-  Expect.equals(expected, a >>> b);
-}
-
-@pragma('vm:never-inline')
-void test11(int a, int b, int expected) {
-  Expect.equals(expected, a >>> b);
-}
-
-@pragma('vm:never-inline')
-void test12(int a, int b, int expected) {
-  Expect.equals(expected, a >>> b);
-}
-
-@pragma('vm:never-inline')
-void test13(int a, int b, int expected) {
-  Expect.equals(expected, a >>> b);
-}
-
-@pragma('vm:never-inline')
-void test14(int a, int b, int expected) {
-  Expect.equals(expected, a >>> b);
-}
-
-void testCornerCases() {
-  // Make sure test methods are optimized.
-  for (int i = 0; i < 100; ++i) {
-    test1(1, 1, 0);
-    test2(1, 1, 0);
-    test3(1, 1, 0);
-    test4(1, 1, 0);
-    test5(1, 1, 0);
-    test6(1, 1, 0);
-    test7(1, 1, 0);
-    test8(1, 1, 0);
-    test9(1, 1, 0);
-    test10(1, 1, 0);
-    test11(1, 1, 0);
-    test12(1, 1, 0);
-    test13(1, 1, 0);
-    test14(1, 1, 0);
-  }
-  // Run tests, may trigger deoptimization.
-  for (int i = 0; i < 100; ++i) {
-    test1(0xffffffffffffffff, 1, 0x7fffffffffffffff);
-    test2(0xffffffffffffabcd, 1, 0x7fffffffffffd5e6);
-    test3(0xffffffffffffffff, 31, 0x1ffffffff);
-    test4(0xffffffffffffffff, 32, 0xffffffff);
-    test5(0xfedcba9876543210, 32, 0xfedcba98);
-    test6(0xffffffffffffffff, 34, 0x3fffffff);
-    test7(0xffffffffffffffff, 56, 0xff);
-    test8(0xfeffffffffffabcd, 56, 0xfe);
-    test9(0xffffffffffffffff, 63, 0x1);
-    test10(0xffffffffffffffff, 64, 0);
-    test11(0xffffffffffffffff, 70, 0);
-    test12(0x8000000000000000, 1, 0x4000000000000000);
-    test13(0x7fedcba987654321, 1, 0x3ff6e5d4c3b2a190);
-    test14(0x7fedcba987654321, 40, 0x7fedcb);
-  }
-}
-
-void testSingleOneBit() {
-  for (int i = 0; i <= 63; ++i) {
-    final int x = 1 << i;
-    for (int j = 0; j <= 127; ++j) {
-      Expect.equals((j > i) ? 0 : 1 << (i - j), x >>> j);
-    }
-  }
-}
-
-void testSingleZeroBit() {
-  for (int i = 0; i <= 63; ++i) {
-    final int x = ~(1 << i);
-    for (int j = 0; j <= 127; ++j) {
-      if (j >= 64) {
-        Expect.equals(0, x >>> j);
-      } else {
-        final int mask = (1 << (64 - j)) - 1;
-        if (j > i) {
-          Expect.equals(mask, x >>> j);
-        } else {
-          Expect.equals(mask & ~(1 << (i - j)), x >>> j);
-        }
-      }
-    }
-  }
-}
-
-main() {
-  testCornerCases();
-
-  for (int i = 0; i < 100; ++i) {
-    testSingleOneBit();
-    testSingleZeroBit();
-  }
-}
diff --git a/runtime/tests/vm/dart_2/use_bare_instructions_flag_test.dart b/runtime/tests/vm/dart_2/use_bare_instructions_flag_test.dart
index eead3b6..52b958f 100644
--- a/runtime/tests/vm/dart_2/use_bare_instructions_flag_test.dart
+++ b/runtime/tests/vm/dart_2/use_bare_instructions_flag_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // This test is ensuring that the flag for --use-bare-instructions given at
 // AOT compile-time will be used at runtime (irrespective if other values were
 // passed to the runtime).
diff --git a/runtime/tests/vm/dart_2/use_code_comments_flag_test.dart b/runtime/tests/vm/dart_2/use_code_comments_flag_test.dart
index cc3968c..bf22c08 100644
--- a/runtime/tests/vm/dart_2/use_code_comments_flag_test.dart
+++ b/runtime/tests/vm/dart_2/use_code_comments_flag_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // This test is ensuring that the flag for --code-comments given at
 // AOT compile-time will be used at runtime (irrespective if other values were
 // passed to the runtime).
diff --git a/runtime/tests/vm/dart_2/use_dwarf_stack_traces_flag_program.dart b/runtime/tests/vm/dart_2/use_dwarf_stack_traces_flag_program.dart
index c422f18..a4e399e 100644
--- a/runtime/tests/vm/dart_2/use_dwarf_stack_traces_flag_program.dart
+++ b/runtime/tests/vm/dart_2/use_dwarf_stack_traces_flag_program.dart
@@ -4,6 +4,8 @@
 // Test that the full stacktrace in an error object matches the stacktrace
 // handed to the catch clause.
 
+// @dart = 2.9
+
 import "package:expect/expect.dart";
 
 class C {
diff --git a/runtime/tests/vm/dart_2/use_dwarf_stack_traces_flag_test.dart b/runtime/tests/vm/dart_2/use_dwarf_stack_traces_flag_test.dart
index b73ef75..5850250 100644
--- a/runtime/tests/vm/dart_2/use_dwarf_stack_traces_flag_test.dart
+++ b/runtime/tests/vm/dart_2/use_dwarf_stack_traces_flag_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // This test ensures that the flag for --dwarf-stack-traces given at AOT
 // compile-time will be used at runtime (irrespective if other values were
 // passed to the runtime).
diff --git a/runtime/tests/vm/dart_2/use_flag_test_helper.dart b/runtime/tests/vm/dart_2/use_flag_test_helper.dart
index 650a9bf..b408f42 100644
--- a/runtime/tests/vm/dart_2/use_flag_test_helper.dart
+++ b/runtime/tests/vm/dart_2/use_flag_test_helper.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:convert';
 import 'dart:io';
 
diff --git a/runtime/tests/vm/dart_2/use_resolve_dwarf_paths_flag_test.dart b/runtime/tests/vm/dart_2/use_resolve_dwarf_paths_flag_test.dart
index 8b00996..cd0ed39 100644
--- a/runtime/tests/vm/dart_2/use_resolve_dwarf_paths_flag_test.dart
+++ b/runtime/tests/vm/dart_2/use_resolve_dwarf_paths_flag_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // This test checks that --resolve-dwarf-paths outputs absolute and relative
 // paths in DWARF information.
 
diff --git a/runtime/tests/vm/dart_2/use_save_debugging_info_flag_test.dart b/runtime/tests/vm/dart_2/use_save_debugging_info_flag_test.dart
index 1a21971..cc8f9b4 100644
--- a/runtime/tests/vm/dart_2/use_save_debugging_info_flag_test.dart
+++ b/runtime/tests/vm/dart_2/use_save_debugging_info_flag_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // This test ensures that the AOT compiler can generate debugging information
 // for stripped ELF output, and that using the debugging information to look
 // up stripped stack trace information matches the non-stripped version.
diff --git a/runtime/tests/vm/dart_2/use_strip_flag_test.dart b/runtime/tests/vm/dart_2/use_strip_flag_test.dart
index 385fb36..a552ea0 100644
--- a/runtime/tests/vm/dart_2/use_strip_flag_test.dart
+++ b/runtime/tests/vm/dart_2/use_strip_flag_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // This test ensures that the AOT compiler can generate stripped versions of
 // ELF and assembly output. This test is currently very weak, in that it just
 // checks that the stripped version is strictly smaller than the unstripped one.
diff --git a/runtime/tests/vm/dart_2/use_trace_precompiler_flag_test.dart b/runtime/tests/vm/dart_2/use_trace_precompiler_flag_test.dart
index 7ea2d60..4a054e8 100644
--- a/runtime/tests/vm/dart_2/use_trace_precompiler_flag_test.dart
+++ b/runtime/tests/vm/dart_2/use_trace_precompiler_flag_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // This test ensures that --trace-precompiler runs without issue and prints
 // valid JSON for reasons to retain objects.
 
diff --git a/runtime/tests/vm/dart_2/v8_snapshot_profile_writer_test.dart b/runtime/tests/vm/dart_2/v8_snapshot_profile_writer_test.dart
index 23be14f..37057d8 100644
--- a/runtime/tests/vm/dart_2/v8_snapshot_profile_writer_test.dart
+++ b/runtime/tests/vm/dart_2/v8_snapshot_profile_writer_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 import 'dart:convert';
 import 'dart:io';
 
diff --git a/runtime/tests/vm/dart_2/wrap_around_in_range_analysis_test.dart b/runtime/tests/vm/dart_2/wrap_around_in_range_analysis_test.dart
index 67fc82d..265320c 100644
--- a/runtime/tests/vm/dart_2/wrap_around_in_range_analysis_test.dart
+++ b/runtime/tests/vm/dart_2/wrap_around_in_range_analysis_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // Test for overflow (wrap-around) during computations in range analysis.
 
 import "package:expect/expect.dart";
diff --git a/runtime/tests/vm/dart_2/write_barrier_register_clobber_test.dart b/runtime/tests/vm/dart_2/write_barrier_register_clobber_test.dart
index ceff211..248d965 100644
--- a/runtime/tests/vm/dart_2/write_barrier_register_clobber_test.dart
+++ b/runtime/tests/vm/dart_2/write_barrier_register_clobber_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart = 2.9
+
 // This test attempts to verify that write barrier slow path does not
 // clobber any live values.
 
diff --git a/tests/corelib_2/object_hash_test.dart b/tests/corelib_2/object_hash_test.dart
index 3e9e5d8..2e10b45 100644
--- a/tests/corelib_2/object_hash_test.dart
+++ b/tests/corelib_2/object_hash_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart=2.9
+
 import "dart:math";
 import "dart:typed_data";
 
diff --git a/tests/language_2/regress/regress23746_test.dart b/tests/language_2/regress/regress23746_test.dart
index fd9a510..00c0e4f 100644
--- a/tests/language_2/regress/regress23746_test.dart
+++ b/tests/language_2/regress/regress23746_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart=2.9
+
 import "package:expect/expect.dart";
 
 class A<T, U> {
diff --git a/tests/language_2/regress/regress46165_test.dart b/tests/language_2/regress/regress46165_test.dart
index 2aed9e0..f2c43c6 100644
--- a/tests/language_2/regress/regress46165_test.dart
+++ b/tests/language_2/regress/regress46165_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart=2.9
+
 void main() {
   final l = <Object>[];
   l.add((String x, StringBuffer y) {
diff --git a/tests/language_2/regress/regress46550_test.dart b/tests/language_2/regress/regress46550_test.dart
index 9b609da..14b5ee7 100644
--- a/tests/language_2/regress/regress46550_test.dart
+++ b/tests/language_2/regress/regress46550_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart=2.9
+
 // VMOptions=--optimization_counter_threshold=100 --deterministic
 
 import "package:expect/expect.dart";
diff --git a/tests/lib_2/async/future_extension_test.dart b/tests/lib_2/async/future_extension_test.dart
index cd28986..e15a360 100644
--- a/tests/lib_2/async/future_extension_test.dart
+++ b/tests/lib_2/async/future_extension_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart=2.9
+
 import 'package:async_helper/async_helper.dart';
 import "package:expect/expect.dart";
 import 'dart:async' show Completer, runZonedGuarded;
diff --git a/tests/lib_2/js/extends_test/extends_subtyping_live_test.dart b/tests/lib_2/js/extends_test/extends_subtyping_live_test.dart
index b46818e..1d895bf 100644
--- a/tests/lib_2/js/extends_test/extends_subtyping_live_test.dart
+++ b/tests/lib_2/js/extends_test/extends_subtyping_live_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart=2.9
+
 // Tests inheritance subtyping relationships after making package:js types live.
 
 @JS()
diff --git a/tests/lib_2/js/extends_test/extends_subtyping_not_live_test.dart b/tests/lib_2/js/extends_test/extends_subtyping_not_live_test.dart
index 3cb0fbb..77e323a 100644
--- a/tests/lib_2/js/extends_test/extends_subtyping_not_live_test.dart
+++ b/tests/lib_2/js/extends_test/extends_subtyping_not_live_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart=2.9
+
 // Tests inheritance subtyping relationships without making package:js types
 // live.
 
diff --git a/tests/lib_2/js/extends_test/extends_test.dart b/tests/lib_2/js/extends_test/extends_test.dart
index 4286838..7e0bf9c 100644
--- a/tests/lib_2/js/extends_test/extends_test.dart
+++ b/tests/lib_2/js/extends_test/extends_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart=2.9
+
 import 'extends_test_util.dart';
 
 void main() {
diff --git a/tests/lib_2/js/extends_test/extends_test_util.dart b/tests/lib_2/js/extends_test/extends_test_util.dart
index 9a21c51..445be18 100644
--- a/tests/lib_2/js/extends_test/extends_test_util.dart
+++ b/tests/lib_2/js/extends_test/extends_test_util.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart=2.9
+
 // Tests inheritance relationships between `JS` and `anonymous` classes/objects.
 
 @JS()
diff --git a/tests/lib_2/js/extends_test/extends_with_es6_test.dart b/tests/lib_2/js/extends_test/extends_with_es6_test.dart
index e0ed10d..0fb9898 100644
--- a/tests/lib_2/js/extends_test/extends_with_es6_test.dart
+++ b/tests/lib_2/js/extends_test/extends_with_es6_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart=2.9
+
 import 'extends_test_util.dart';
 
 void main() {
diff --git a/tests/lib_2/js/is_check_and_as_cast_test.dart b/tests/lib_2/js/is_check_and_as_cast_test.dart
index fe11da5..7ebe2ce 100644
--- a/tests/lib_2/js/is_check_and_as_cast_test.dart
+++ b/tests/lib_2/js/is_check_and_as_cast_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart=2.9
+
 // Tests `is` checks and `as` casts between various JS objects. Currently, all
 // checks and casts should be allowed between JS objects.
 
diff --git a/tests/lib_2/js/subtyping_test/subtyping_live_test.dart b/tests/lib_2/js/subtyping_test/subtyping_live_test.dart
index d137ba6..e8edd8f 100644
--- a/tests/lib_2/js/subtyping_test/subtyping_live_test.dart
+++ b/tests/lib_2/js/subtyping_test/subtyping_live_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart=2.9
+
 // Tests subtyping relationships after making package:js types live.
 
 @JS()
diff --git a/tests/lib_2/js/subtyping_test/subtyping_not_live_test.dart b/tests/lib_2/js/subtyping_test/subtyping_not_live_test.dart
index 5344280..b52ba22 100644
--- a/tests/lib_2/js/subtyping_test/subtyping_not_live_test.dart
+++ b/tests/lib_2/js/subtyping_test/subtyping_not_live_test.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart=2.9
+
 // Tests subtyping relationships without making package:js types live.
 
 import 'package:js/js.dart';
diff --git a/tests/lib_2/js/subtyping_test/subtyping_test_util.dart b/tests/lib_2/js/subtyping_test/subtyping_test_util.dart
index a39efb9..368362a 100644
--- a/tests/lib_2/js/subtyping_test/subtyping_test_util.dart
+++ b/tests/lib_2/js/subtyping_test/subtyping_test_util.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// @dart=2.9
+
 // Tests subtyping relationships between JS and anonymous classes.
 
 @JS()