Version 2.14.0-126.0.dev

Merge commit '58c692dfaf8bd263ad75c66fdeb7cf3a332f6593' into 'dev'
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index 5be83bf..9d6a048 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -16,7 +16,7 @@
 * Dart website: https://github.com/dart-lang/site-www
 * Flutter: https://github.com/flutter/flutter
 * Linter: https://github.com/dart-lang/linter
-* dartfmt: https://github.com/dart-lang/dart_style
+* dart format: https://github.com/dart-lang/dart_style
 
 If you aren't sure, file the issue here and we'll find the right home for it.
 In your issue, please include:
diff --git a/DEPS b/DEPS
index 614956d..c6d7fe8 100644
--- a/DEPS
+++ b/DEPS
@@ -73,7 +73,7 @@
 
   # Revisions of /third_party/* dependencies.
   "args_rev": "d8fea36c10ef96797be02e3d132d572445cd86f4",
-  "async_rev": "49464c342fe64c8632223ce3475364d163fb0623",
+  "async_rev": "92e7119aa068bfb86a6a9519d44037ffff5eece8",
   "bazel_worker_rev": "0885637b037979afbf5bcd05fd748b309fd669c0",
   "benchmark_harness_rev": "c546dbd9f639f75cd2f75de8df2eb9f8ea15e8e7",
   "boolean_selector_rev": "665e6921ab246569420376f827bff4585dff0b14",
diff --git a/build/README.dart.md b/build/README.dart.md
index 8fa8057..dd2fd3d 100644
--- a/build/README.dart.md
+++ b/build/README.dart.md
@@ -4,4 +4,4 @@
 the flutter repository.
 
 The contents has now diverged significantly from Flutter, and is maintained
-independantly by the Dart team. It is used to support the GN build system.
+independently by the Dart team. It is used to support the GN build system.
diff --git a/pkg/_fe_analyzer_shared/test/inheritance/data/from_opt_in/main.dart b/pkg/_fe_analyzer_shared/test/inheritance/data/from_opt_in/main.dart
index cc6f516..4d2422d 100644
--- a/pkg/_fe_analyzer_shared/test/inheritance/data/from_opt_in/main.dart
+++ b/pkg/_fe_analyzer_shared/test/inheritance/data/from_opt_in/main.dart
@@ -122,8 +122,6 @@
 /*cfe|cfe:builder.member: LegacyClass4d.==:bool* Function(dynamic)**/
 class LegacyClass4d implements Class4a, Class4b {}
 
-/*class: LegacyClass5:Class5,GenericInterface<dynamic>,LegacyClass5,Object*/
-/*analyzer.error: CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES*/
 class
 /*cfe|cfe:builder.error: AmbiguousSupertypes*/
     /*cfe|cfe:builder.member: LegacyClass5.toString:String* Function()**/
@@ -136,6 +134,8 @@
 /*cfe|cfe:builder.member: LegacyClass5._simpleInstanceOfFalse:bool* Function(dynamic)**/
 /*cfe|cfe:builder.member: LegacyClass5._simpleInstanceOfTrue:bool* Function(dynamic)**/
 /*cfe|cfe:builder.member: LegacyClass5.==:bool* Function(dynamic)**/
+/*class: LegacyClass5:Class5,GenericInterface<dynamic>,LegacyClass5,Object*/
+/*analyzer.error: CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES*/
     LegacyClass5 extends Class5 implements GenericInterface<Object> {}
 
 /*class: LegacyClass6a:
diff --git a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
index 73797af..3cb56a5 100644
--- a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
@@ -299,8 +299,9 @@
       verifier.generateDuplicateShownHiddenNameHints(errorReporter);
       verifier.generateUnusedImportHints(errorReporter);
       verifier.generateUnusedShownNameHints(errorReporter);
-      verifier.generateUnnecessaryImportHints(
-          errorReporter, _usedImportedElementsList);
+      // TODO(srawlins): Re-enable this check once Flutter engine path is clear.
+      // verifier.generateUnnecessaryImportHints(
+      //     errorReporter, _usedImportedElementsList);
     }
 
     // Unused local elements.
diff --git a/pkg/analyzer/lib/src/error/codes.dart b/pkg/analyzer/lib/src/error/codes.dart
index 9fc6ea2..6d5c3de 100644
--- a/pkg/analyzer/lib/src/error/codes.dart
+++ b/pkg/analyzer/lib/src/error/codes.dart
@@ -1655,7 +1655,7 @@
   // class I<T> {}
   // class A implements I<int> {}
   // class B implements I<String> {}
-  // [!class C extends A implements B {}!]
+  // class [!C!] extends A implements B {}
   // ```
   //
   // #### Common fixes
diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart
index 1cb1091..907c52c 100644
--- a/pkg/analyzer/lib/src/generated/error_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/error_verifier.dart
@@ -1812,7 +1812,7 @@
       if (error is IncompatibleInterfacesClassHierarchyError) {
         errorReporter.reportErrorForNode(
           CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES,
-          node,
+          node.name,
           [
             _enclosingClass!.name,
             error.first.getDisplayString(withNullability: true),
diff --git a/pkg/analyzer/test/src/diagnostics/conflicting_generic_interfaces_test.dart b/pkg/analyzer/test/src/diagnostics/conflicting_generic_interfaces_test.dart
index d86c1cf..2754202 100644
--- a/pkg/analyzer/test/src/diagnostics/conflicting_generic_interfaces_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/conflicting_generic_interfaces_test.dart
@@ -22,7 +22,7 @@
 class B implements I<String> {}
 class C extends A implements B {}
 ''', [
-      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 75, 33),
+      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 81, 1),
     ]);
   }
 
@@ -42,7 +42,7 @@
 class B implements I<int?> {}
 class C extends A implements B {}
 ''', [
-      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 73, 33),
+      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 79, 1),
     ]);
   }
 
@@ -81,7 +81,7 @@
 class B implements I<String> {}
 class C extends A with B {}
 ''', [
-      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 75, 27),
+      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 81, 1),
     ]);
   }
 
@@ -152,7 +152,7 @@
 mixin M implements I<String> {}
 class C = A with M;
 ''', [
-      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 66, 19),
+      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 72, 1),
     ]);
   }
 
@@ -172,7 +172,7 @@
 mixin M implements I<String> {}
 class C = A with M;
 ''', [
-      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 75, 19),
+      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 81, 1),
     ]);
   }
 
@@ -183,7 +183,7 @@
 class B implements I<String> {}
 mixin M on A implements B {}
 ''', [
-      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 75, 28),
+      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 81, 1),
     ]);
   }
 
diff --git a/pkg/analyzer/test/src/diagnostics/unnecessary_import_test.dart b/pkg/analyzer/test/src/diagnostics/unnecessary_import_test.dart
index b6071fc..a5c76d1 100644
--- a/pkg/analyzer/test/src/diagnostics/unnecessary_import_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/unnecessary_import_test.dart
@@ -9,7 +9,8 @@
 
 main() {
   defineReflectiveSuite(() {
-    defineReflectiveTests(UnnecessaryImportTest);
+    // TODO(srawlins): Re-enable this check once Flutter engine path is clear.
+    // defineReflectiveTests(UnnecessaryImportTest);
   });
 }
 
diff --git a/pkg/analyzer/test/src/task/strong/checker_test.dart b/pkg/analyzer/test/src/task/strong/checker_test.dart
index 2ceddee..61cbee9 100644
--- a/pkg/analyzer/test/src/task/strong/checker_test.dart
+++ b/pkg/analyzer/test/src/task/strong/checker_test.dart
@@ -2180,11 +2180,11 @@
 }
 ''', [
       error(CompileTimeErrorCode.INVALID_OVERRIDE, 124, 1),
-      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 180, 42),
-      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 180, 42),
+      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 186, 1),
+      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 186, 1),
       error(CompileTimeErrorCode.INVALID_OVERRIDE, 218, 1),
-      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 226, 42),
-      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 226, 42),
+      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 232, 1),
+      error(CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES, 232, 1),
     ]);
   }
 
diff --git a/pkg/analyzer/tool/diagnostics/diagnostics.md b/pkg/analyzer/tool/diagnostics/diagnostics.md
index 6b5ed50..b13d301 100644
--- a/pkg/analyzer/tool/diagnostics/diagnostics.md
+++ b/pkg/analyzer/tool/diagnostics/diagnostics.md
@@ -1728,7 +1728,7 @@
 class I<T> {}
 class A implements I<int> {}
 class B implements I<String> {}
-[!class C extends A implements B {}!]
+class [!C!] extends A implements B {}
 {% endprettify %}
 
 #### Common fixes
diff --git a/pkg/analyzer_cli/analysis_options.yaml b/pkg/analyzer_cli/analysis_options.yaml
index ee6055a..e69ac71 100644
--- a/pkg/analyzer_cli/analysis_options.yaml
+++ b/pkg/analyzer_cli/analysis_options.yaml
@@ -1,24 +1,19 @@
-include: package:pedantic/analysis_options.1.9.0.yaml
+include: package:lints/recommended.yaml
 
 analyzer:
   strong-mode:
     implicit-casts: false
-  errors:
-    # Increase the severity of the unused_import hint.
-    unused_import: warning
   language:
     strict-inference: true
   exclude:
     - test/data/**
+
 linter:
   rules:
-    - avoid_single_cascade_in_expression_statements
-    - avoid_unused_constructor_parameters
-    - await_only_futures
-    - empty_statements
-    - iterable_contains_unrelated_type
-    - list_remove_unrelated_type
-    - provide_deprecation_message
-    - unnecessary_brace_in_string_interps
-    - unnecessary_overrides
-    - void_checks
+    avoid_unused_constructor_parameters: true
+    directives_ordering: true
+
+    # We import heavily from package:analyzer/src.
+    implementation_imports: false
+    # This rule does not work well with package:test_reflective_loader.
+    non_constant_identifier_names: false
diff --git a/pkg/analyzer_cli/lib/src/driver.dart b/pkg/analyzer_cli/lib/src/driver.dart
index 66b2f59..4ad11c96 100644
--- a/pkg/analyzer_cli/lib/src/driver.dart
+++ b/pkg/analyzer_cli/lib/src/driver.dart
@@ -171,7 +171,8 @@
 
     // Note: This references analysisDriver via closure, so it will change over
     // time during the following analysis.
-    var defaultSeverityProcessor = (AnalysisError error) {
+    SeverityProcessor defaultSeverityProcessor;
+    defaultSeverityProcessor = (AnalysisError error) {
       return determineProcessedSeverity(
           error, options, analysisDriver.analysisOptions);
     };
diff --git a/pkg/analyzer_cli/lib/src/perf_report.dart b/pkg/analyzer_cli/lib/src/perf_report.dart
index c032125..25c21c5 100644
--- a/pkg/analyzer_cli/lib/src/perf_report.dart
+++ b/pkg/analyzer_cli/lib/src/perf_report.dart
@@ -8,7 +8,7 @@
 import 'package:analyzer_cli/src/error_formatter.dart';
 import 'package:analyzer_cli/src/options.dart' show CommandLineOptions;
 
-const _JSON = JsonEncoder.withIndent('  ');
+const _jsonEncoder = JsonEncoder.withIndent('  ');
 
 final String _osType = () {
   if (Platform.isLinux) {
@@ -53,5 +53,5 @@
     'reportedDiagnostics': stats.filteredCount,
   };
 
-  return _JSON.convert(reportJson);
+  return _jsonEncoder.convert(reportJson);
 }
diff --git a/pkg/analyzer_cli/pubspec.yaml b/pkg/analyzer_cli/pubspec.yaml
index 9ad9601..466e477 100644
--- a/pkg/analyzer_cli/pubspec.yaml
+++ b/pkg/analyzer_cli/pubspec.yaml
@@ -19,6 +19,6 @@
   yaml: any
 
 dev_dependencies:
-  pedantic: ^1.9.0
+  lints: any
   test_reflective_loader: ^0.1.8
   test: ^1.0.0
diff --git a/pkg/analyzer_utilities/lib/tools.dart b/pkg/analyzer_utilities/lib/tools.dart
index 12210c8..f28fc4e 100644
--- a/pkg/analyzer_utilities/lib/tools.dart
+++ b/pkg/analyzer_utilities/lib/tools.dart
@@ -218,29 +218,19 @@
       this.indent = '  '});
 }
 
-/// A utility class for invoking dartfmt.
+/// A utility class for invoking 'dart format'.
 class DartFormat {
-  static String get _dartfmtPath {
-    var binName = Platform.isWindows ? 'dartfmt.bat' : 'dartfmt';
-    for (var loc in [binName, join('dart-sdk', 'bin', binName)]) {
-      var candidatePath = join(dirname(Platform.resolvedExecutable), loc);
-      if (File(candidatePath).existsSync()) {
-        return candidatePath;
-      }
-    }
-    throw StateError('Could not find dartfmt executable');
-  }
+  static String get _dartPath => Platform.resolvedExecutable;
 
   static void formatFile(File file) {
-    var result = Process.runSync(_dartfmtPath, ['-w', file.path]);
+    var result = Process.runSync(_dartPath, ['format', file.path]);
     _throwIfExitCode(result);
   }
 
   static String formatText(String text) {
     var file = File(join(Directory.systemTemp.path, 'gen.dart'));
     file.writeAsStringSync(text);
-    var result = Process.runSync(_dartfmtPath, ['-w', file.path]);
-    _throwIfExitCode(result);
+    formatFile(file);
     return file.readAsStringSync();
   }
 
diff --git a/pkg/compiler/lib/src/js/js.dart b/pkg/compiler/lib/src/js/js.dart
index 4518521..b49abc0 100644
--- a/pkg/compiler/lib/src/js/js.dart
+++ b/pkg/compiler/lib/src/js/js.dart
@@ -18,15 +18,13 @@
 String prettyPrint(Node node,
     {bool enableMinification: false,
     bool allowVariableMinification: true,
-    bool preferSemicolonToNewlineInMinifiedOutput: false,
-    Renamer renamerForNames: JavaScriptPrintingOptions.identityRenamer}) {
+    bool preferSemicolonToNewlineInMinifiedOutput: false}) {
   // TODO(johnniwinther): Do we need all the options here?
   JavaScriptPrintingOptions options = new JavaScriptPrintingOptions(
       shouldCompressOutput: enableMinification,
       minifyLocalVariables: allowVariableMinification,
       preferSemicolonToNewlineInMinifiedOutput:
-          preferSemicolonToNewlineInMinifiedOutput,
-      renamerForNames: renamerForNames);
+          preferSemicolonToNewlineInMinifiedOutput);
   SimpleJavaScriptPrintingContext context =
       new SimpleJavaScriptPrintingContext();
   Printer printer = new Printer(options, context);
@@ -38,12 +36,10 @@
     JavaScriptSourceInformationStrategy sourceInformationStrategy,
     {DumpInfoTask monitor,
     bool allowVariableMinification: true,
-    Renamer renamerForNames: JavaScriptPrintingOptions.identityRenamer,
     List<CodeOutputListener> listeners: const []}) {
   JavaScriptPrintingOptions options = new JavaScriptPrintingOptions(
       shouldCompressOutput: compilerOptions.enableMinification,
-      minifyLocalVariables: allowVariableMinification,
-      renamerForNames: renamerForNames);
+      minifyLocalVariables: allowVariableMinification);
   CodeBuffer outBuffer = new CodeBuffer(listeners);
   SourceInformationProcessor sourceInformationProcessor =
       sourceInformationStrategy.createProcessor(
diff --git a/pkg/compiler/lib/src/js/size_estimator.dart b/pkg/compiler/lib/src/js/size_estimator.dart
index e2b8a9b..8ecfd9e 100644
--- a/pkg/compiler/lib/src/js/size_estimator.dart
+++ b/pkg/compiler/lib/src/js/size_estimator.dart
@@ -886,8 +886,6 @@
   @override
   visitName(Name node) {
     // For simplicity and stability we use a constant name size estimate.
-    // In production this is:
-    // '${options.renamerForNames(node)}'
     out(sizeEstimate(node));
   }
 
diff --git a/pkg/compiler/lib/src/js_backend/namer.dart b/pkg/compiler/lib/src/js_backend/namer.dart
index 6cf1ab5..2f994bb 100644
--- a/pkg/compiler/lib/src/js_backend/namer.dart
+++ b/pkg/compiler/lib/src/js_backend/namer.dart
@@ -2308,6 +2308,8 @@
         return className(_commonElements.objectClass);
       case JsGetName.FUTURE_CLASS_TYPE_NAME:
         return className(_commonElements.futureClass);
+      case JsGetName.LIST_CLASS_TYPE_NAME:
+        return className(_commonElements.listClass);
       case JsGetName.RTI_FIELD_AS:
         return instanceFieldPropertyName(_commonElements.rtiAsField);
       case JsGetName.RTI_FIELD_IS:
diff --git a/pkg/compiler/lib/src/js_emitter/code_emitter_task.dart b/pkg/compiler/lib/src/js_emitter/code_emitter_task.dart
index b7fdafc..10ba94a 100644
--- a/pkg/compiler/lib/src/js_emitter/code_emitter_task.dart
+++ b/pkg/compiler/lib/src/js_emitter/code_emitter_task.dart
@@ -103,11 +103,7 @@
           this,
           _generateSourceMap);
       metadataCollector = new MetadataCollector(
-          _compiler.options,
-          _compiler.reporter,
-          _emitter,
-          codegen.rtiRecipeEncoder,
-          closedWorld.elementEnvironment);
+          _compiler.reporter, _emitter, codegen.rtiRecipeEncoder);
       typeTestRegistry = new TypeTestRegistry(
           _compiler.options, closedWorld.elementEnvironment);
     });
diff --git a/pkg/compiler/lib/src/js_emitter/metadata_collector.dart b/pkg/compiler/lib/src/js_emitter/metadata_collector.dart
index db10350..4923f10 100644
--- a/pkg/compiler/lib/src/js_emitter/metadata_collector.dart
+++ b/pkg/compiler/lib/src/js_emitter/metadata_collector.dart
@@ -7,18 +7,12 @@
 import 'package:js_ast/src/precedence.dart' as js_precedence;
 
 import '../common.dart';
-import '../common_elements.dart' show JElementEnvironment;
-import '../constants/values.dart';
 import '../deferred_load.dart' show OutputUnit;
-import '../elements/entities.dart' show FunctionEntity;
 
-import '../elements/entities.dart';
 import '../elements/types.dart';
 import '../js/js.dart' as jsAst;
-import '../js/js.dart' show js;
 import '../js_backend/runtime_types_new.dart' show RecipeEncoder;
 import '../js_model/type_recipe.dart' show TypeExpressionRecipe;
-import '../options.dart';
 
 import 'code_emitter_task.dart' show Emitter;
 
@@ -99,20 +93,9 @@
 }
 
 class MetadataCollector implements jsAst.TokenFinalizer {
-  final CompilerOptions _options;
   final DiagnosticReporter reporter;
   final Emitter _emitter;
   final RecipeEncoder _rtiRecipeEncoder;
-  final JElementEnvironment _elementEnvironment;
-
-  /// A map with a token per output unit for a list of expressions that
-  /// represent metadata, parameter names and type variable types.
-  Map<OutputUnit, _MetadataList> _metadataTokens =
-      new Map<OutputUnit, _MetadataList>();
-
-  jsAst.Expression getMetadataForOutputUnit(OutputUnit outputUnit) {
-    return _metadataTokens.putIfAbsent(outputUnit, () => new _MetadataList());
-  }
 
   /// A map used to canonicalize the entries of metadata.
   Map<OutputUnit, Map<String, List<BoundMetadataEntry>>> _metadataMap = {};
@@ -120,16 +103,17 @@
   /// A map with a token for a lists of JS expressions, one token for each
   /// output unit. Once finalized, the entries represent types including
   /// function types and typedefs.
-  Map<OutputUnit, _MetadataList> _typesTokens =
-      new Map<OutputUnit, _MetadataList>();
+  Map<OutputUnit, _MetadataList> _typesTokens = {};
+
+  /// A map used to canonicalize the entries of types.
+  Map<OutputUnit, Map<DartType, List<BoundMetadataEntry>>> _typesMap = {};
+
+  MetadataCollector(this.reporter, this._emitter, this._rtiRecipeEncoder);
 
   jsAst.Expression getTypesForOutputUnit(OutputUnit outputUnit) {
     return _typesTokens.putIfAbsent(outputUnit, () => new _MetadataList());
   }
 
-  /// A map used to canonicalize the entries of types.
-  Map<OutputUnit, Map<DartType, List<BoundMetadataEntry>>> _typesMap = {};
-
   void mergeOutputUnitMetadata(OutputUnit target, OutputUnit source) {
     assert(target != source);
 
@@ -158,43 +142,8 @@
     }
   }
 
-  MetadataCollector(this._options, this.reporter, this._emitter,
-      this._rtiRecipeEncoder, this._elementEnvironment);
-
-  List<jsAst.DeferredNumber> reifyDefaultArguments(
-      FunctionEntity function, OutputUnit outputUnit) {
-    // TODO(sra): These are stored on the InstanceMethod or StaticDartMethod.
-    List<jsAst.DeferredNumber> defaultValues = <jsAst.DeferredNumber>[];
-    _elementEnvironment.forEachParameter(function,
-        (_, String name, ConstantValue constant) {
-      if (constant == null) return;
-      jsAst.Expression expression = _emitter.constantReference(constant);
-      defaultValues.add(_addGlobalMetadata(expression, outputUnit));
-    });
-    return defaultValues;
-  }
-
   jsAst.Expression reifyType(DartType type, OutputUnit outputUnit) {
-    return addTypeInOutputUnit(type, outputUnit);
-  }
-
-  jsAst.Expression reifyName(String name, OutputUnit outputUnit) {
-    return _addGlobalMetadata(js.string(name), outputUnit);
-  }
-
-  jsAst.Expression reifyExpression(
-      jsAst.Expression expression, OutputUnit outputUnit) {
-    return _addGlobalMetadata(expression, outputUnit);
-  }
-
-  _MetadataEntry _addGlobalMetadata(jsAst.Node node, OutputUnit outputUnit) {
-    String nameToKey(jsAst.Name name) => "${name.key}";
-    String printed = jsAst.prettyPrint(node,
-        enableMinification: _options.enableMinification,
-        renamerForNames: nameToKey);
-    final submap = _metadataMap[outputUnit] ??= {};
-    final entries = submap[printed] ??= [BoundMetadataEntry(node)];
-    return entries.single;
+    return _addTypeInOutputUnit(type, outputUnit);
   }
 
   jsAst.Expression _computeTypeRepresentationNewRti(DartType type) {
@@ -202,11 +151,10 @@
         _emitter, TypeExpressionRecipe(type));
   }
 
-  jsAst.Expression addTypeInOutputUnit(DartType type, OutputUnit outputUnit) {
+  jsAst.Expression _addTypeInOutputUnit(DartType type, OutputUnit outputUnit) {
     _typesMap[outputUnit] ??= Map<DartType, List<BoundMetadataEntry>>();
     BoundMetadataEntry metadataEntry;
 
-    // See comment for _addGlobalMetadata.
     if (_typesMap[outputUnit].containsKey(type)) {
       metadataEntry = _typesMap[outputUnit][type].single;
     } else {
@@ -251,15 +199,6 @@
       return new jsAst.ArrayInitializer(values);
     }
 
-    _metadataTokens.forEach((OutputUnit outputUnit, _MetadataList token) {
-      Map metadataMap = _metadataMap[outputUnit];
-      if (metadataMap != null) {
-        token.setExpression(finalizeMap(metadataMap));
-      } else {
-        token.setExpression(new jsAst.ArrayInitializer([]));
-      }
-    });
-
     _typesTokens.forEach((OutputUnit outputUnit, _MetadataList token) {
       Map<DartType, List<BoundMetadataEntry>> typesMap = _typesMap[outputUnit];
       if (typesMap != null) {
diff --git a/pkg/compiler/lib/src/js_emitter/model.dart b/pkg/compiler/lib/src/js_emitter/model.dart
index f2c81cf..8903eec 100644
--- a/pkg/compiler/lib/src/js_emitter/model.dart
+++ b/pkg/compiler/lib/src/js_emitter/model.dart
@@ -39,21 +39,6 @@
     _metadataCollector.mergeOutputUnitMetadata(target, source);
   }
 
-  /// Accessor for the list of metadata entries for a given [OutputUnit].
-  ///
-  /// There is one list for each output unit. The list belonging to the main
-  /// unit must be emitted in the `METADATA` embedded global.
-  /// The list references constants and must hence be emitted after constants
-  /// have been initialized.
-  ///
-  /// Note: the metadata is derived from the task's `metadataCollector`. The
-  /// list must not be emitted before all operations on it are done. For
-  /// example, the old emitter generates metadata when emitting reflection
-  /// data.
-  js.Expression metadataForOutputUnit(OutputUnit unit) {
-    return _metadataCollector.getMetadataForOutputUnit(unit);
-  }
-
   /// Accessor for the list of type entries for a given [OutputUnit].
   ///
   /// There is one list for each output unit. The list belonging to the main
diff --git a/pkg/compiler/lib/src/js_emitter/native_generator.dart b/pkg/compiler/lib/src/js_emitter/native_generator.dart
index d0b49dd..28616dc 100644
--- a/pkg/compiler/lib/src/js_emitter/native_generator.dart
+++ b/pkg/compiler/lib/src/js_emitter/native_generator.dart
@@ -10,8 +10,6 @@
 import '../js/js.dart' show js;
 import '../js_backend/backend_usage.dart' show BackendUsage;
 
-import 'model.dart';
-
 class NativeGenerator {
   static bool needsIsolateAffinityTagInitialization(BackendUsage backendUsage) {
     return backendUsage.needToInitializeIsolateAffinityTag;
@@ -76,139 +74,4 @@
     // TODO(sra): MD5 of contributing source code or URIs?
     return 'ZxYxX';
   }
-
-  /// Encodes the collected native information so that it can be treated by
-  /// the native info-handler below.
-  ///
-  /// The encoded information has the form:
-  ///
-  //    "%": "leafTag1|leafTag2|...;nonleafTag1|...;Class1|Class2|...",
-  //
-  // If there is no data following a semicolon, the semicolon can be omitted.
-  static jsAst.Expression encodeNativeInfo(Class cls) {
-    List<String> leafTags = cls.nativeLeafTags;
-    List<String> nonLeafTags = cls.nativeNonLeafTags;
-    List<Class> extensions = cls.nativeExtensions;
-
-    String formatTags(Iterable<String> tags) {
-      if (tags == null) return '';
-      return (tags.toList()..sort()).join('|');
-    }
-
-    String leafStr = formatTags(leafTags);
-    String nonLeafStr = formatTags(nonLeafTags);
-
-    StringBuffer sb = new StringBuffer(leafStr);
-    if (nonLeafStr != '') {
-      sb..write(';')..write(nonLeafStr);
-    }
-
-    String encoding = sb.toString();
-
-    if (cls.isNative || encoding != '' || extensions != null) {
-      List<jsAst.Literal> parts = <jsAst.Literal>[js.stringPart(encoding)];
-      if (extensions != null) {
-        parts
-          ..add(js.stringPart(';'))
-          ..addAll(js.joinLiterals(
-              extensions.map((Class cls) => cls.name), js.stringPart('|')));
-      }
-      return jsAst.concatenateStrings(parts, addQuotes: true);
-    }
-    return null;
-  }
-
-  /// Returns a JavaScript template that fills the embedded globals referenced
-  /// by [interceptorsByTagAccess] and [leafTagsAccess].
-  ///
-  /// This code must be invoked for every class that has a native info before
-  /// the program starts.
-  ///
-  /// The [infoAccess] parameter must evaluate to an expression that contains
-  /// the info (as a JavaScript string).
-  ///
-  /// The [constructorAccess] parameter must evaluate to an expression that
-  /// contains the constructor of the class. The constructor's prototype must
-  /// be set up.
-  ///
-  /// The [subclassReadGenerator] function must evaluate to a JS expression
-  /// that returns a reference to the constructor (with evaluated prototype)
-  /// of the given JS expression.
-  ///
-  /// The [interceptorsByTagAccess] must point to the embedded global
-  /// [embeddedNames.INTERCEPTORS_BY_TAG] and must be initialized with an empty
-  /// JS Object (used as a map).
-  ///
-  /// Similarly, the [leafTagsAccess] must point to the embedded global
-  /// [embeddedNames.LEAF_TAGS] and must be initialized with an empty JS Object
-  /// (used as a map).
-  ///
-  /// Both variables are passed in (instead of creating the access here) to
-  /// make sure the caller is aware of these globals.
-  static jsAst.Statement buildNativeInfoHandler(
-      jsAst.Expression infoAccess,
-      jsAst.Expression constructorAccess,
-      jsAst.Expression subclassReadGenerator(jsAst.Expression subclass),
-      jsAst.Expression interceptorsByTagAccess,
-      jsAst.Expression leafTagsAccess) {
-    jsAst.Expression subclassRead =
-        subclassReadGenerator(js('subclasses[i]', []));
-    return js.statement('''
-          // The native info looks like this:
-          //
-          // HtmlElement: {
-          //     "%": "HTMLDivElement|HTMLAnchorElement;HTMLElement;FancyButton"
-          //
-          // The first two semicolon-separated parts contain dispatch tags, the
-          // third contains the JavaScript names for classes.
-          //
-          // The tags indicate that JavaScript objects with the dispatch tags
-          // (usually constructor names) HTMLDivElement, HTMLAnchorElement and
-          // HTMLElement all map to the Dart native class named HtmlElement.
-          // The first set is for effective leaf nodes in the hierarchy, the
-          // second set is non-leaf nodes.
-          //
-          // The third part contains the JavaScript names of Dart classes that
-          // extend the native class. Here, FancyButton extends HtmlElement, so
-          // the runtime needs to know that window.HTMLElement.prototype is the
-          // prototype that needs to be extended in creating the custom element.
-          //
-          // The information is used to build tables referenced by
-          // getNativeInterceptor and custom element support.
-          {
-            var nativeSpec = #info.split(";");
-            if (nativeSpec[0]) {
-              var tags = nativeSpec[0].split("|");
-              for (var i = 0; i < tags.length; i++) {
-                #interceptorsByTagAccess[tags[i]] = #constructor;
-                #leafTagsAccess[tags[i]] = true;
-              }
-            }
-            if (nativeSpec[1]) {
-              tags = nativeSpec[1].split("|");
-              if (#allowNativesSubclassing) {
-                if (nativeSpec[2]) {
-                  var subclasses = nativeSpec[2].split("|");
-                  for (var i = 0; i < subclasses.length; i++) {
-                    var subclass = #subclassRead;
-                    subclass.#nativeSuperclassTagName = tags[0];
-                  }
-                }
-                for (i = 0; i < tags.length; i++) {
-                  #interceptorsByTagAccess[tags[i]] = #constructor;
-                  #leafTagsAccess[tags[i]] = false;
-                }
-              }
-            }
-          }
-    ''', {
-      'info': infoAccess,
-      'constructor': constructorAccess,
-      'subclassRead': subclassRead,
-      'interceptorsByTagAccess': interceptorsByTagAccess,
-      'leafTagsAccess': leafTagsAccess,
-      'nativeSuperclassTagName': embeddedNames.NATIVE_SUPERCLASS_TAG_NAME,
-      'allowNativesSubclassing': true
-    });
-  }
 }
diff --git a/pkg/compiler/lib/src/js_emitter/startup_emitter/fragment_emitter.dart b/pkg/compiler/lib/src/js_emitter/startup_emitter/fragment_emitter.dart
index 9c4864f..f84c045 100644
--- a/pkg/compiler/lib/src/js_emitter/startup_emitter/fragment_emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/startup_emitter/fragment_emitter.dart
@@ -1817,8 +1817,6 @@
     }
 
     var mainUnit = program.mainFragment.outputUnit;
-    js.Expression metadata = program.metadataForOutputUnit(mainUnit);
-    metadataGlobals.add(createGlobal(metadata, METADATA));
     js.Expression types = program.metadataTypesForOutputUnit(mainUnit);
     metadataGlobals.add(createGlobal(types, TYPES));
 
@@ -2027,13 +2025,6 @@
   }
 
   /// Emits data needed for native classes.
-  ///
-  /// We don't try to reduce the size of the native data, but rather build
-  /// JavaScript object literals that contain all the information directly.
-  /// This means that the output size is bigger, but that the startup is faster.
-  ///
-  /// This function is the static equivalent of
-  /// [NativeGenerator.buildNativeInfoHandler].
   js.Statement emitNativeSupport(Fragment fragment) {
     List<js.Statement> statements = [];
 
diff --git a/pkg/dartdev/doc/dart-fix.md b/pkg/dartdev/doc/dart-fix.md
index 2fd0f73..c4086f6 100644
--- a/pkg/dartdev/doc/dart-fix.md
+++ b/pkg/dartdev/doc/dart-fix.md
@@ -9,7 +9,7 @@
 
 `dart fix` runs over your project looking for analysis issues. For each issue it
 checks whether there is an automated fix that can be applied. These fixes are
-generaly either in response to a lint or hint in your code, or part of upgrading
+generally either in response to a lint or hint in your code, or part of upgrading
 your source to newer package APIs.
 
 For the first type of change, the fixes are generally in response to the set of
diff --git a/pkg/front_end/testcases/general/ffi_sample.dart.weak.transformed.expect b/pkg/front_end/testcases/general/ffi_sample.dart.weak.transformed.expect
index cdeb1e9..ade7adb 100644
--- a/pkg/front_end/testcases/general/ffi_sample.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/ffi_sample.dart.weak.transformed.expect
@@ -8,7 +8,6 @@
 
 @#C7
 class Coordinate extends ffi::Struct {
-  static final field core::int* #sizeOf = (#C10).{core::List::[]}(ffi::_abi());
   constructor #fromTypedDataBase(core::Object #typedDataBase) → self::Coordinate
     : super ffi::Struct::_fromTypedDataBase(#typedDataBase)
     ;
@@ -30,20 +29,23 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
-  @#C11
+  @#C8
   get x() → core::double*
-    return ffi::_loadDouble(this.{ffi::_Compound::_typedDataBase}, (#C13).{core::List::[]}(ffi::_abi()));
+    return ffi::_loadDouble(this.{ffi::_Compound::_typedDataBase}, (#C10).{core::List::[]}(ffi::_abi()));
   set x(core::double* #v) → void
-    return ffi::_storeDouble(this.{ffi::_Compound::_typedDataBase}, (#C13).{core::List::[]}(ffi::_abi()), #v);
-  @#C11
+    return ffi::_storeDouble(this.{ffi::_Compound::_typedDataBase}, (#C10).{core::List::[]}(ffi::_abi()), #v);
+  @#C8
   get y() → core::double*
-    return ffi::_loadDouble(this.{ffi::_Compound::_typedDataBase}, (#C15).{core::List::[]}(ffi::_abi()));
+    return ffi::_loadDouble(this.{ffi::_Compound::_typedDataBase}, (#C12).{core::List::[]}(ffi::_abi()));
   set y(core::double* #v) → void
-    return ffi::_storeDouble(this.{ffi::_Compound::_typedDataBase}, (#C15).{core::List::[]}(ffi::_abi()), #v);
+    return ffi::_storeDouble(this.{ffi::_Compound::_typedDataBase}, (#C12).{core::List::[]}(ffi::_abi()), #v);
   get next() → ffi::Pointer<self::Coordinate*>*
-    return ffi::_fromAddress<self::Coordinate*>(ffi::_loadIntPtr(this.{ffi::_Compound::_typedDataBase}, (#C17).{core::List::[]}(ffi::_abi())));
+    return ffi::_fromAddress<self::Coordinate*>(ffi::_loadIntPtr(this.{ffi::_Compound::_typedDataBase}, (#C14).{core::List::[]}(ffi::_abi())));
   set next(ffi::Pointer<self::Coordinate*>* #v) → void
-    return ffi::_storeIntPtr(this.{ffi::_Compound::_typedDataBase}, (#C17).{core::List::[]}(ffi::_abi()), #v.{ffi::Pointer::address});
+    return ffi::_storeIntPtr(this.{ffi::_Compound::_typedDataBase}, (#C14).{core::List::[]}(ffi::_abi()), #v.{ffi::Pointer::address});
+  @#C16
+  static get /*isNonNullableByDefault*/ #sizeOf() → core::int*
+    return (#C19).{core::List::[]}(ffi::_abi());
 }
 static method main() → dynamic {}
 
@@ -55,16 +57,18 @@
   #C5 = null
   #C6 = ffi::_FfiStructLayout {fieldTypes:#C4, packing:#C5}
   #C7 = core::pragma {name:#C1, options:#C6}
-  #C8 = 24
-  #C9 = 20
-  #C10 = <core::int*>[#C8, #C9, #C8]
-  #C11 = ffi::Double {}
-  #C12 = 0
-  #C13 = <core::int*>[#C12, #C12, #C12]
-  #C14 = 8
-  #C15 = <core::int*>[#C14, #C14, #C14]
-  #C16 = 16
-  #C17 = <core::int*>[#C16, #C16, #C16]
+  #C8 = ffi::Double {}
+  #C9 = 0
+  #C10 = <core::int*>[#C9, #C9, #C9]
+  #C11 = 8
+  #C12 = <core::int*>[#C11, #C11, #C11]
+  #C13 = 16
+  #C14 = <core::int*>[#C13, #C13, #C13]
+  #C15 = "vm:prefer-inline"
+  #C16 = core::pragma {name:#C15, options:#C5}
+  #C17 = 24
+  #C18 = 20
+  #C19 = <core::int*>[#C17, #C18, #C17]
 }
 
 
diff --git a/pkg/front_end/testcases/incremental/crash_05.yaml.world.1.expect b/pkg/front_end/testcases/incremental/crash_05.yaml.world.1.expect
index 7b59748..25bf01a 100644
--- a/pkg/front_end/testcases/incremental/crash_05.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/crash_05.yaml.world.1.expect
@@ -5,19 +5,21 @@
 
   @#C6
   class Y extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C8).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → lib::Y
       : super dart.ffi::Struct::•()
       ;
     constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Y
       : super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
       ;
-    @#C9
+    @#C7
     get yy() → dart.core::int
-      return dart.ffi::_loadUint32(this.{dart.ffi::_Compound::_typedDataBase}, (#C11).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C9
+      return dart.ffi::_loadUint32(this.{dart.ffi::_Compound::_typedDataBase}, (#C9).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C7
     set yy(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint32(this.{dart.ffi::_Compound::_typedDataBase}, (#C11).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+      return dart.ffi::_storeUint32(this.{dart.ffi::_Compound::_typedDataBase}, (#C9).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C11
+    static get #sizeOf() → dart.core::int*
+      return (#C13).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 library from "org-dartlang-test:///main.dart" as main {
@@ -25,9 +27,8 @@
   import "dart:ffi";
   import "org-dartlang-test:///lib.dart";
 
-  @#C15
+  @#C17
   class X extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C8).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → main::X
       : super dart.ffi::Struct::•()
       ;
@@ -37,10 +38,13 @@
     get xx() → lib::Y
       return new lib::Y::#fromTypedDataBase( block {
         dart.core::Object #typedDataBase = this.{dart.ffi::_Compound::_typedDataBase};
-        dart.core::int #offset = (#C11).{dart.core::List::[]}(dart.ffi::_abi());
-      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C8).{dart.core::List::[]}(dart.ffi::_abi())));
+        dart.core::int #offset = (#C9).{dart.core::List::[]}(dart.ffi::_abi());
+      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C13).{dart.core::List::[]}(dart.ffi::_abi())));
     set xx(lib::Y #externalFieldValue) → void
-      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C11).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C10, (#C8).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C9).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C8, (#C13).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C11
+    static get #sizeOf() → dart.core::int*
+      return (#C13).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 constants  {
@@ -50,13 +54,15 @@
   #C4 = null
   #C5 = dart.ffi::_FfiStructLayout {fieldTypes:#C3, packing:#C4}
   #C6 = dart.core::pragma {name:#C1, options:#C5}
-  #C7 = 4
-  #C8 = <dart.core::int*>[#C7, #C7, #C7]
-  #C9 = dart.ffi::Uint32 {}
-  #C10 = 0
-  #C11 = <dart.core::int*>[#C10, #C10, #C10]
-  #C12 = TypeLiteralConstant(lib::Y)
-  #C13 = <dart.core::Type>[#C12]
-  #C14 = dart.ffi::_FfiStructLayout {fieldTypes:#C13, packing:#C4}
-  #C15 = dart.core::pragma {name:#C1, options:#C14}
+  #C7 = dart.ffi::Uint32 {}
+  #C8 = 0
+  #C9 = <dart.core::int*>[#C8, #C8, #C8]
+  #C10 = "vm:prefer-inline"
+  #C11 = dart.core::pragma {name:#C10, options:#C4}
+  #C12 = 4
+  #C13 = <dart.core::int*>[#C12, #C12, #C12]
+  #C14 = TypeLiteralConstant(lib::Y)
+  #C15 = <dart.core::Type>[#C14]
+  #C16 = dart.ffi::_FfiStructLayout {fieldTypes:#C15, packing:#C4}
+  #C17 = dart.core::pragma {name:#C1, options:#C16}
 }
diff --git a/pkg/front_end/testcases/incremental/crash_05.yaml.world.2.expect b/pkg/front_end/testcases/incremental/crash_05.yaml.world.2.expect
index 7b59748..25bf01a 100644
--- a/pkg/front_end/testcases/incremental/crash_05.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/crash_05.yaml.world.2.expect
@@ -5,19 +5,21 @@
 
   @#C6
   class Y extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C8).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → lib::Y
       : super dart.ffi::Struct::•()
       ;
     constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Y
       : super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
       ;
-    @#C9
+    @#C7
     get yy() → dart.core::int
-      return dart.ffi::_loadUint32(this.{dart.ffi::_Compound::_typedDataBase}, (#C11).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C9
+      return dart.ffi::_loadUint32(this.{dart.ffi::_Compound::_typedDataBase}, (#C9).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C7
     set yy(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint32(this.{dart.ffi::_Compound::_typedDataBase}, (#C11).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+      return dart.ffi::_storeUint32(this.{dart.ffi::_Compound::_typedDataBase}, (#C9).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C11
+    static get #sizeOf() → dart.core::int*
+      return (#C13).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 library from "org-dartlang-test:///main.dart" as main {
@@ -25,9 +27,8 @@
   import "dart:ffi";
   import "org-dartlang-test:///lib.dart";
 
-  @#C15
+  @#C17
   class X extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C8).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → main::X
       : super dart.ffi::Struct::•()
       ;
@@ -37,10 +38,13 @@
     get xx() → lib::Y
       return new lib::Y::#fromTypedDataBase( block {
         dart.core::Object #typedDataBase = this.{dart.ffi::_Compound::_typedDataBase};
-        dart.core::int #offset = (#C11).{dart.core::List::[]}(dart.ffi::_abi());
-      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C8).{dart.core::List::[]}(dart.ffi::_abi())));
+        dart.core::int #offset = (#C9).{dart.core::List::[]}(dart.ffi::_abi());
+      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C13).{dart.core::List::[]}(dart.ffi::_abi())));
     set xx(lib::Y #externalFieldValue) → void
-      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C11).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C10, (#C8).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C9).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C8, (#C13).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C11
+    static get #sizeOf() → dart.core::int*
+      return (#C13).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 constants  {
@@ -50,13 +54,15 @@
   #C4 = null
   #C5 = dart.ffi::_FfiStructLayout {fieldTypes:#C3, packing:#C4}
   #C6 = dart.core::pragma {name:#C1, options:#C5}
-  #C7 = 4
-  #C8 = <dart.core::int*>[#C7, #C7, #C7]
-  #C9 = dart.ffi::Uint32 {}
-  #C10 = 0
-  #C11 = <dart.core::int*>[#C10, #C10, #C10]
-  #C12 = TypeLiteralConstant(lib::Y)
-  #C13 = <dart.core::Type>[#C12]
-  #C14 = dart.ffi::_FfiStructLayout {fieldTypes:#C13, packing:#C4}
-  #C15 = dart.core::pragma {name:#C1, options:#C14}
+  #C7 = dart.ffi::Uint32 {}
+  #C8 = 0
+  #C9 = <dart.core::int*>[#C8, #C8, #C8]
+  #C10 = "vm:prefer-inline"
+  #C11 = dart.core::pragma {name:#C10, options:#C4}
+  #C12 = 4
+  #C13 = <dart.core::int*>[#C12, #C12, #C12]
+  #C14 = TypeLiteralConstant(lib::Y)
+  #C15 = <dart.core::Type>[#C14]
+  #C16 = dart.ffi::_FfiStructLayout {fieldTypes:#C15, packing:#C4}
+  #C17 = dart.core::pragma {name:#C1, options:#C16}
 }
diff --git a/pkg/front_end/testcases/incremental/crash_06.yaml.world.1.expect b/pkg/front_end/testcases/incremental/crash_06.yaml.world.1.expect
index 2e6d138..bb7e809 100644
--- a/pkg/front_end/testcases/incremental/crash_06.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/crash_06.yaml.world.1.expect
@@ -23,7 +23,6 @@
 
   @#C6
   class A extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C8).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → str::A
       : super dart.ffi::Struct::•()
       ;
@@ -37,9 +36,11 @@
       } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<str::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C8).{dart.core::List::[]}(dart.ffi::_abi())));
     set yy(str::Y #externalFieldValue) → void
       return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C8).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C7, (#C8).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C10
+    static get #sizeOf() → dart.core::int*
+      return (#C8).{dart.core::List::[]}(dart.ffi::_abi());
   }
   class Y extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C8).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → str::Y
       : super dart.ffi::Struct::•()
       ;
@@ -48,6 +49,9 @@
       ;
     external get zz() → invalid-type;
     external set zz(invalid-type #externalFieldValue) → void;
+    @#C10
+    static get #sizeOf() → dart.core::int*
+      return (#C8).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 constants  {
@@ -59,4 +63,6 @@
   #C6 = dart.core::pragma {name:#C1, options:#C5}
   #C7 = 0
   #C8 = <dart.core::int*>[#C7, #C7, #C7]
+  #C9 = "vm:prefer-inline"
+  #C10 = dart.core::pragma {name:#C9, options:#C4}
 }
diff --git a/pkg/front_end/testcases/incremental/crash_06.yaml.world.2.expect b/pkg/front_end/testcases/incremental/crash_06.yaml.world.2.expect
index 2e6d138..bb7e809 100644
--- a/pkg/front_end/testcases/incremental/crash_06.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/crash_06.yaml.world.2.expect
@@ -23,7 +23,6 @@
 
   @#C6
   class A extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C8).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → str::A
       : super dart.ffi::Struct::•()
       ;
@@ -37,9 +36,11 @@
       } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<str::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C8).{dart.core::List::[]}(dart.ffi::_abi())));
     set yy(str::Y #externalFieldValue) → void
       return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C8).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C7, (#C8).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C10
+    static get #sizeOf() → dart.core::int*
+      return (#C8).{dart.core::List::[]}(dart.ffi::_abi());
   }
   class Y extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C8).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → str::Y
       : super dart.ffi::Struct::•()
       ;
@@ -48,6 +49,9 @@
       ;
     external get zz() → invalid-type;
     external set zz(invalid-type #externalFieldValue) → void;
+    @#C10
+    static get #sizeOf() → dart.core::int*
+      return (#C8).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 constants  {
@@ -59,4 +63,6 @@
   #C6 = dart.core::pragma {name:#C1, options:#C5}
   #C7 = 0
   #C8 = <dart.core::int*>[#C7, #C7, #C7]
+  #C9 = "vm:prefer-inline"
+  #C10 = dart.core::pragma {name:#C9, options:#C4}
 }
diff --git a/pkg/front_end/testcases/incremental/ffi_01.yaml.world.1.expect b/pkg/front_end/testcases/incremental/ffi_01.yaml.world.1.expect
index 481fe3f..48fec45 100644
--- a/pkg/front_end/testcases/incremental/ffi_01.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/ffi_01.yaml.world.1.expect
@@ -5,7 +5,6 @@
 
   @#C7
   class Coordinate extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
     constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Coordinate
       : super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
       ;
@@ -23,20 +22,23 @@
     abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
     abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
     abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
-    @#C11
+    @#C8
     get x() → dart.core::double*
-      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
     set x(dart.core::double* #v) → void
-      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()), #v);
-    @#C11
+      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #v);
+    @#C8
     get y() → dart.core::double*
-      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C15).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()));
     set y(dart.core::double* #v) → void
-      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C15).{dart.core::List::[]}(dart.ffi::_abi()), #v);
+      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()), #v);
     get next() → dart.ffi::Pointer<lib::Coordinate*>*
-      return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi())));
+      return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C14).{dart.core::List::[]}(dart.ffi::_abi())));
     set next(dart.ffi::Pointer<lib::Coordinate*>* #v) → void
-      return dart.ffi::_storeIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi()), #v.{dart.ffi::Pointer::address});
+      return dart.ffi::_storeIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C14).{dart.core::List::[]}(dart.ffi::_abi()), #v.{dart.ffi::Pointer::address});
+    @#C16
+    static get /*isNonNullableByDefault*/ #sizeOf() → dart.core::int*
+      return (#C19).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 library from "org-dartlang-test:///main.dart" as main {
@@ -58,14 +60,16 @@
   #C5 = null
   #C6 = dart.ffi::_FfiStructLayout {fieldTypes:#C4, packing:#C5}
   #C7 = dart.core::pragma {name:#C1, options:#C6}
-  #C8 = 24
-  #C9 = 20
-  #C10 = <dart.core::int*>[#C8, #C9, #C8]
-  #C11 = dart.ffi::Double {}
-  #C12 = 0
-  #C13 = <dart.core::int*>[#C12, #C12, #C12]
-  #C14 = 8
-  #C15 = <dart.core::int*>[#C14, #C14, #C14]
-  #C16 = 16
-  #C17 = <dart.core::int*>[#C16, #C16, #C16]
+  #C8 = dart.ffi::Double {}
+  #C9 = 0
+  #C10 = <dart.core::int*>[#C9, #C9, #C9]
+  #C11 = 8
+  #C12 = <dart.core::int*>[#C11, #C11, #C11]
+  #C13 = 16
+  #C14 = <dart.core::int*>[#C13, #C13, #C13]
+  #C15 = "vm:prefer-inline"
+  #C16 = dart.core::pragma {name:#C15, options:#C5}
+  #C17 = 24
+  #C18 = 20
+  #C19 = <dart.core::int*>[#C17, #C18, #C17]
 }
diff --git a/pkg/front_end/testcases/incremental/ffi_01.yaml.world.2.expect b/pkg/front_end/testcases/incremental/ffi_01.yaml.world.2.expect
index 751d0a9..0f27d3c 100644
--- a/pkg/front_end/testcases/incremental/ffi_01.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/ffi_01.yaml.world.2.expect
@@ -5,7 +5,6 @@
 
   @#C7
   class Coordinate extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
     constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Coordinate
       : super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
       ;
@@ -23,20 +22,23 @@
     abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
     abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
     abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
-    @#C11
+    @#C8
     get x() → dart.core::double*
-      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
     set x(dart.core::double* #v) → void
-      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()), #v);
-    @#C11
+      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #v);
+    @#C8
     get y() → dart.core::double*
-      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C15).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()));
     set y(dart.core::double* #v) → void
-      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C15).{dart.core::List::[]}(dart.ffi::_abi()), #v);
+      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()), #v);
     get next() → dart.ffi::Pointer<lib::Coordinate*>*
-      return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi())));
+      return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C14).{dart.core::List::[]}(dart.ffi::_abi())));
     set next(dart.ffi::Pointer<lib::Coordinate*>* #v) → void
-      return dart.ffi::_storeIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi()), #v.{dart.ffi::Pointer::address});
+      return dart.ffi::_storeIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C14).{dart.core::List::[]}(dart.ffi::_abi()), #v.{dart.ffi::Pointer::address});
+    @#C16
+    static get /*isNonNullableByDefault*/ #sizeOf() → dart.core::int*
+      return (#C19).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 library from "org-dartlang-test:///main.dart" as main {
@@ -62,14 +64,16 @@
   #C5 = null
   #C6 = dart.ffi::_FfiStructLayout {fieldTypes:#C4, packing:#C5}
   #C7 = dart.core::pragma {name:#C1, options:#C6}
-  #C8 = 24
-  #C9 = 20
-  #C10 = <dart.core::int*>[#C8, #C9, #C8]
-  #C11 = dart.ffi::Double {}
-  #C12 = 0
-  #C13 = <dart.core::int*>[#C12, #C12, #C12]
-  #C14 = 8
-  #C15 = <dart.core::int*>[#C14, #C14, #C14]
-  #C16 = 16
-  #C17 = <dart.core::int*>[#C16, #C16, #C16]
+  #C8 = dart.ffi::Double {}
+  #C9 = 0
+  #C10 = <dart.core::int*>[#C9, #C9, #C9]
+  #C11 = 8
+  #C12 = <dart.core::int*>[#C11, #C11, #C11]
+  #C13 = 16
+  #C14 = <dart.core::int*>[#C13, #C13, #C13]
+  #C15 = "vm:prefer-inline"
+  #C16 = dart.core::pragma {name:#C15, options:#C5}
+  #C17 = 24
+  #C18 = 20
+  #C19 = <dart.core::int*>[#C17, #C18, #C17]
 }
diff --git a/pkg/front_end/testcases/incremental/ffi_02.yaml.world.1.expect b/pkg/front_end/testcases/incremental/ffi_02.yaml.world.1.expect
index deb8a44..969a92d 100644
--- a/pkg/front_end/testcases/incremental/ffi_02.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/ffi_02.yaml.world.1.expect
@@ -5,7 +5,6 @@
 
   @#C7
   class Coordinate extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
     constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Coordinate
       : super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
       ;
@@ -23,20 +22,23 @@
     abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
     abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
     abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
-    @#C11
+    @#C8
     get x() → dart.core::double*
-      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
     set x(dart.core::double* #v) → void
-      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()), #v);
-    @#C11
+      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #v);
+    @#C8
     get y() → dart.core::double*
-      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C15).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()));
     set y(dart.core::double* #v) → void
-      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C15).{dart.core::List::[]}(dart.ffi::_abi()), #v);
+      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()), #v);
     get next() → dart.ffi::Pointer<lib::Coordinate*>*
-      return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi())));
+      return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C14).{dart.core::List::[]}(dart.ffi::_abi())));
     set next(dart.ffi::Pointer<lib::Coordinate*>* #v) → void
-      return dart.ffi::_storeIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi()), #v.{dart.ffi::Pointer::address});
+      return dart.ffi::_storeIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C14).{dart.core::List::[]}(dart.ffi::_abi()), #v.{dart.ffi::Pointer::address});
+    @#C16
+    static get /*isNonNullableByDefault*/ #sizeOf() → dart.core::int*
+      return (#C19).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 library from "org-dartlang-test:///main.dart" as main {
@@ -59,14 +61,16 @@
   #C5 = null
   #C6 = dart.ffi::_FfiStructLayout {fieldTypes:#C4, packing:#C5}
   #C7 = dart.core::pragma {name:#C1, options:#C6}
-  #C8 = 24
-  #C9 = 20
-  #C10 = <dart.core::int*>[#C8, #C9, #C8]
-  #C11 = dart.ffi::Double {}
-  #C12 = 0
-  #C13 = <dart.core::int*>[#C12, #C12, #C12]
-  #C14 = 8
-  #C15 = <dart.core::int*>[#C14, #C14, #C14]
-  #C16 = 16
-  #C17 = <dart.core::int*>[#C16, #C16, #C16]
+  #C8 = dart.ffi::Double {}
+  #C9 = 0
+  #C10 = <dart.core::int*>[#C9, #C9, #C9]
+  #C11 = 8
+  #C12 = <dart.core::int*>[#C11, #C11, #C11]
+  #C13 = 16
+  #C14 = <dart.core::int*>[#C13, #C13, #C13]
+  #C15 = "vm:prefer-inline"
+  #C16 = dart.core::pragma {name:#C15, options:#C5}
+  #C17 = 24
+  #C18 = 20
+  #C19 = <dart.core::int*>[#C17, #C18, #C17]
 }
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.1.expect
index 481fe3f..48fec45 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.1.expect
@@ -5,7 +5,6 @@
 
   @#C7
   class Coordinate extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
     constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Coordinate
       : super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
       ;
@@ -23,20 +22,23 @@
     abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
     abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
     abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
-    @#C11
+    @#C8
     get x() → dart.core::double*
-      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
     set x(dart.core::double* #v) → void
-      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()), #v);
-    @#C11
+      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #v);
+    @#C8
     get y() → dart.core::double*
-      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C15).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()));
     set y(dart.core::double* #v) → void
-      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C15).{dart.core::List::[]}(dart.ffi::_abi()), #v);
+      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()), #v);
     get next() → dart.ffi::Pointer<lib::Coordinate*>*
-      return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi())));
+      return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C14).{dart.core::List::[]}(dart.ffi::_abi())));
     set next(dart.ffi::Pointer<lib::Coordinate*>* #v) → void
-      return dart.ffi::_storeIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi()), #v.{dart.ffi::Pointer::address});
+      return dart.ffi::_storeIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C14).{dart.core::List::[]}(dart.ffi::_abi()), #v.{dart.ffi::Pointer::address});
+    @#C16
+    static get /*isNonNullableByDefault*/ #sizeOf() → dart.core::int*
+      return (#C19).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 library from "org-dartlang-test:///main.dart" as main {
@@ -58,14 +60,16 @@
   #C5 = null
   #C6 = dart.ffi::_FfiStructLayout {fieldTypes:#C4, packing:#C5}
   #C7 = dart.core::pragma {name:#C1, options:#C6}
-  #C8 = 24
-  #C9 = 20
-  #C10 = <dart.core::int*>[#C8, #C9, #C8]
-  #C11 = dart.ffi::Double {}
-  #C12 = 0
-  #C13 = <dart.core::int*>[#C12, #C12, #C12]
-  #C14 = 8
-  #C15 = <dart.core::int*>[#C14, #C14, #C14]
-  #C16 = 16
-  #C17 = <dart.core::int*>[#C16, #C16, #C16]
+  #C8 = dart.ffi::Double {}
+  #C9 = 0
+  #C10 = <dart.core::int*>[#C9, #C9, #C9]
+  #C11 = 8
+  #C12 = <dart.core::int*>[#C11, #C11, #C11]
+  #C13 = 16
+  #C14 = <dart.core::int*>[#C13, #C13, #C13]
+  #C15 = "vm:prefer-inline"
+  #C16 = dart.core::pragma {name:#C15, options:#C5}
+  #C17 = 24
+  #C18 = 20
+  #C19 = <dart.core::int*>[#C17, #C18, #C17]
 }
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.2.expect
index aeab1b0..f74978e 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.2.expect
@@ -5,7 +5,6 @@
 
   @#C7
   class Coordinate extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
     constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Coordinate
       : super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
       ;
@@ -23,20 +22,23 @@
     abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
     abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
     abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
-    @#C11
+    @#C8
     get x() → dart.core::double*
-      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
     set x(dart.core::double* #v) → void
-      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()), #v);
-    @#C11
+      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #v);
+    @#C8
     get y() → dart.core::double*
-      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C15).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()));
     set y(dart.core::double* #v) → void
-      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C15).{dart.core::List::[]}(dart.ffi::_abi()), #v);
+      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()), #v);
     get next() → dart.ffi::Pointer<lib::Coordinate*>*
-      return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi())));
+      return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C14).{dart.core::List::[]}(dart.ffi::_abi())));
     set next(dart.ffi::Pointer<lib::Coordinate*>* #v) → void
-      return dart.ffi::_storeIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi()), #v.{dart.ffi::Pointer::address});
+      return dart.ffi::_storeIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C14).{dart.core::List::[]}(dart.ffi::_abi()), #v.{dart.ffi::Pointer::address});
+    @#C16
+    static get /*isNonNullableByDefault*/ #sizeOf() → dart.core::int*
+      return (#C19).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 library from "org-dartlang-test:///main.dart" as main {
@@ -59,14 +61,16 @@
   #C5 = null
   #C6 = dart.ffi::_FfiStructLayout {fieldTypes:#C4, packing:#C5}
   #C7 = dart.core::pragma {name:#C1, options:#C6}
-  #C8 = 24
-  #C9 = 20
-  #C10 = <dart.core::int*>[#C8, #C9, #C8]
-  #C11 = dart.ffi::Double {}
-  #C12 = 0
-  #C13 = <dart.core::int*>[#C12, #C12, #C12]
-  #C14 = 8
-  #C15 = <dart.core::int*>[#C14, #C14, #C14]
-  #C16 = 16
-  #C17 = <dart.core::int*>[#C16, #C16, #C16]
+  #C8 = dart.ffi::Double {}
+  #C9 = 0
+  #C10 = <dart.core::int*>[#C9, #C9, #C9]
+  #C11 = 8
+  #C12 = <dart.core::int*>[#C11, #C11, #C11]
+  #C13 = 16
+  #C14 = <dart.core::int*>[#C13, #C13, #C13]
+  #C15 = "vm:prefer-inline"
+  #C16 = dart.core::pragma {name:#C15, options:#C5}
+  #C17 = 24
+  #C18 = 20
+  #C19 = <dart.core::int*>[#C17, #C18, #C17]
 }
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.3.expect b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.3.expect
index 1c8bfde..392f43a 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.3.expect
@@ -5,7 +5,6 @@
 
   @#C7
   class Coordinate extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
     constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Coordinate
       : super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
       ;
@@ -24,20 +23,23 @@
     abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
     abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
     abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
-    @#C11
+    @#C8
     get x() → dart.core::double*
-      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
     set x(dart.core::double* #v) → void
-      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()), #v);
-    @#C11
+      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #v);
+    @#C8
     get y() → dart.core::double*
-      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C15).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()));
     set y(dart.core::double* #v) → void
-      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C15).{dart.core::List::[]}(dart.ffi::_abi()), #v);
+      return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()), #v);
     get next() → dart.ffi::Pointer<lib::Coordinate*>*
-      return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi())));
+      return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C14).{dart.core::List::[]}(dart.ffi::_abi())));
     set next(dart.ffi::Pointer<lib::Coordinate*>* #v) → void
-      return dart.ffi::_storeIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi()), #v.{dart.ffi::Pointer::address});
+      return dart.ffi::_storeIntPtr(this.{dart.ffi::_Compound::_typedDataBase}, (#C14).{dart.core::List::[]}(dart.ffi::_abi()), #v.{dart.ffi::Pointer::address});
+    @#C16
+    static get /*isNonNullableByDefault*/ #sizeOf() → dart.core::int*
+      return (#C19).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 library from "org-dartlang-test:///main.dart" as main {
@@ -60,14 +62,16 @@
   #C5 = null
   #C6 = dart.ffi::_FfiStructLayout {fieldTypes:#C4, packing:#C5}
   #C7 = dart.core::pragma {name:#C1, options:#C6}
-  #C8 = 24
-  #C9 = 20
-  #C10 = <dart.core::int*>[#C8, #C9, #C8]
-  #C11 = dart.ffi::Double {}
-  #C12 = 0
-  #C13 = <dart.core::int*>[#C12, #C12, #C12]
-  #C14 = 8
-  #C15 = <dart.core::int*>[#C14, #C14, #C14]
-  #C16 = 16
-  #C17 = <dart.core::int*>[#C16, #C16, #C16]
+  #C8 = dart.ffi::Double {}
+  #C9 = 0
+  #C10 = <dart.core::int*>[#C9, #C9, #C9]
+  #C11 = 8
+  #C12 = <dart.core::int*>[#C11, #C11, #C11]
+  #C13 = 16
+  #C14 = <dart.core::int*>[#C13, #C13, #C13]
+  #C15 = "vm:prefer-inline"
+  #C16 = dart.core::pragma {name:#C15, options:#C5}
+  #C17 = 24
+  #C18 = 20
+  #C19 = <dart.core::int*>[#C17, #C18, #C17]
 }
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_48_ffi.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_48_ffi.yaml.world.1.expect
index 6563e60..b1ca0cd 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_48_ffi.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_48_ffi.yaml.world.1.expect
@@ -5,31 +5,33 @@
 
   @#C7
   class Y extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C10).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → lib::Y
       : super dart.ffi::Struct::•()
       ;
     constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Y
       : super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
       ;
-    @#C11
+    @#C8
     get y1() → dart.core::int
-      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     set y1(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
-    @#C11
+      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C8
     get y2() → dart.core::int
-      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C15).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     set y2(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C15).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
-    @#C16
+      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C13
     get y3() → dart.core::int
-      return dart.ffi::_loadUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C19).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C16
+      return dart.ffi::_loadUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C16).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C13
     set y3(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C19).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+      return dart.ffi::_storeUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C16).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C18
+    static get #sizeOf() → dart.core::int*
+      return (#C21).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 library from "org-dartlang-test:///main.dart" as main {
@@ -37,9 +39,8 @@
   import "dart:ffi";
   import "org-dartlang-test:///lib.dart";
 
-  @#C23
+  @#C25
   class X extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C26).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → main::X
       : super dart.ffi::Struct::•()
       ;
@@ -49,23 +50,26 @@
     get x1() → lib::Y
       return new lib::Y::#fromTypedDataBase( block {
         dart.core::Object #typedDataBase = this.{dart.ffi::_Compound::_typedDataBase};
-        dart.core::int #offset = (#C13).{dart.core::List::[]}(dart.ffi::_abi());
-      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C10).{dart.core::List::[]}(dart.ffi::_abi())));
+        dart.core::int #offset = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
+      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C21).{dart.core::List::[]}(dart.ffi::_abi())));
     set x1(lib::Y #externalFieldValue) → void
-      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C12, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C9, (#C21).{dart.core::List::[]}(dart.ffi::_abi()));
     get x2() → lib::Y
       return new lib::Y::#fromTypedDataBase( block {
         dart.core::Object #typedDataBase = this.{dart.ffi::_Compound::_typedDataBase};
-        dart.core::int #offset = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
-      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C10).{dart.core::List::[]}(dart.ffi::_abi())));
+        dart.core::int #offset = (#C21).{dart.core::List::[]}(dart.ffi::_abi());
+      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C21).{dart.core::List::[]}(dart.ffi::_abi())));
     set x2(lib::Y #externalFieldValue) → void
-      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C12, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C21).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C9, (#C21).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     get x3() → dart.core::int
-      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C29).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C28).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     set x3(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C29).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C28).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C18
+    static get #sizeOf() → dart.core::int*
+      return (#C31).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 constants  {
@@ -76,26 +80,28 @@
   #C5 = null
   #C6 = dart.ffi::_FfiStructLayout {fieldTypes:#C4, packing:#C5}
   #C7 = dart.core::pragma {name:#C1, options:#C6}
-  #C8 = 16
-  #C9 = 12
-  #C10 = <dart.core::int*>[#C8, #C9, #C8]
-  #C11 = dart.ffi::Uint8 {}
-  #C12 = 0
-  #C13 = <dart.core::int*>[#C12, #C12, #C12]
-  #C14 = 1
-  #C15 = <dart.core::int*>[#C14, #C14, #C14]
-  #C16 = dart.ffi::Uint64 {}
-  #C17 = 8
-  #C18 = 4
-  #C19 = <dart.core::int*>[#C17, #C18, #C17]
-  #C20 = TypeLiteralConstant(lib::Y)
-  #C21 = <dart.core::Type>[#C20, #C20, #C2]
-  #C22 = dart.ffi::_FfiStructLayout {fieldTypes:#C21, packing:#C5}
-  #C23 = dart.core::pragma {name:#C1, options:#C22}
-  #C24 = 40
-  #C25 = 28
-  #C26 = <dart.core::int*>[#C24, #C25, #C24]
-  #C27 = 32
-  #C28 = 24
-  #C29 = <dart.core::int*>[#C27, #C28, #C27]
+  #C8 = dart.ffi::Uint8 {}
+  #C9 = 0
+  #C10 = <dart.core::int*>[#C9, #C9, #C9]
+  #C11 = 1
+  #C12 = <dart.core::int*>[#C11, #C11, #C11]
+  #C13 = dart.ffi::Uint64 {}
+  #C14 = 8
+  #C15 = 4
+  #C16 = <dart.core::int*>[#C14, #C15, #C14]
+  #C17 = "vm:prefer-inline"
+  #C18 = dart.core::pragma {name:#C17, options:#C5}
+  #C19 = 16
+  #C20 = 12
+  #C21 = <dart.core::int*>[#C19, #C20, #C19]
+  #C22 = TypeLiteralConstant(lib::Y)
+  #C23 = <dart.core::Type>[#C22, #C22, #C2]
+  #C24 = dart.ffi::_FfiStructLayout {fieldTypes:#C23, packing:#C5}
+  #C25 = dart.core::pragma {name:#C1, options:#C24}
+  #C26 = 32
+  #C27 = 24
+  #C28 = <dart.core::int*>[#C26, #C27, #C26]
+  #C29 = 40
+  #C30 = 28
+  #C31 = <dart.core::int*>[#C29, #C30, #C29]
 }
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_48_ffi.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_48_ffi.yaml.world.2.expect
index 8713870..75e87b0 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_48_ffi.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_48_ffi.yaml.world.2.expect
@@ -5,31 +5,33 @@
 
   @#C7
   class Y extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C10).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → lib::Y
       : super dart.ffi::Struct::•()
       ;
     constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Y
       : super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
       ;
-    @#C11
+    @#C8
     get y1() → dart.core::int
-      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     set y1(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
-    @#C14
+      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C11
     get y3() → dart.core::int
-      return dart.ffi::_loadUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C14
+      return dart.ffi::_loadUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C14).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C11
     set y3(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
-    @#C11
+      return dart.ffi::_storeUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C14).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C8
     get y2() → dart.core::int
-      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C19).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     set y2(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C19).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C19
+    static get #sizeOf() → dart.core::int*
+      return (#C21).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 library from "org-dartlang-test:///main.dart" as main {
@@ -37,9 +39,8 @@
   import "dart:ffi";
   import "org-dartlang-test:///lib.dart";
 
-  @#C23
+  @#C25
   class X extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C26).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → main::X
       : super dart.ffi::Struct::•()
       ;
@@ -49,23 +50,26 @@
     get x1() → lib::Y
       return new lib::Y::#fromTypedDataBase( block {
         dart.core::Object #typedDataBase = this.{dart.ffi::_Compound::_typedDataBase};
-        dart.core::int #offset = (#C13).{dart.core::List::[]}(dart.ffi::_abi());
-      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C10).{dart.core::List::[]}(dart.ffi::_abi())));
+        dart.core::int #offset = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
+      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C21).{dart.core::List::[]}(dart.ffi::_abi())));
     set x1(lib::Y #externalFieldValue) → void
-      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C12, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C9, (#C21).{dart.core::List::[]}(dart.ffi::_abi()));
     get x2() → lib::Y
       return new lib::Y::#fromTypedDataBase( block {
         dart.core::Object #typedDataBase = this.{dart.ffi::_Compound::_typedDataBase};
-        dart.core::int #offset = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
-      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C10).{dart.core::List::[]}(dart.ffi::_abi())));
+        dart.core::int #offset = (#C21).{dart.core::List::[]}(dart.ffi::_abi());
+      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C21).{dart.core::List::[]}(dart.ffi::_abi())));
     set x2(lib::Y #externalFieldValue) → void
-      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C12, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C21).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C9, (#C21).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     get x3() → dart.core::int
-      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C29).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C28).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     set x3(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C29).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C28).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C19
+    static get #sizeOf() → dart.core::int*
+      return (#C31).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 constants  {
@@ -76,26 +80,28 @@
   #C5 = null
   #C6 = dart.ffi::_FfiStructLayout {fieldTypes:#C4, packing:#C5}
   #C7 = dart.core::pragma {name:#C1, options:#C6}
-  #C8 = 24
-  #C9 = 16
-  #C10 = <dart.core::int*>[#C8, #C9, #C8]
-  #C11 = dart.ffi::Uint8 {}
-  #C12 = 0
-  #C13 = <dart.core::int*>[#C12, #C12, #C12]
-  #C14 = dart.ffi::Uint64 {}
-  #C15 = 8
-  #C16 = 4
+  #C8 = dart.ffi::Uint8 {}
+  #C9 = 0
+  #C10 = <dart.core::int*>[#C9, #C9, #C9]
+  #C11 = dart.ffi::Uint64 {}
+  #C12 = 8
+  #C13 = 4
+  #C14 = <dart.core::int*>[#C12, #C13, #C12]
+  #C15 = 16
+  #C16 = 12
   #C17 = <dart.core::int*>[#C15, #C16, #C15]
-  #C18 = 12
-  #C19 = <dart.core::int*>[#C9, #C18, #C9]
-  #C20 = TypeLiteralConstant(lib::Y)
-  #C21 = <dart.core::Type>[#C20, #C20, #C2]
-  #C22 = dart.ffi::_FfiStructLayout {fieldTypes:#C21, packing:#C5}
-  #C23 = dart.core::pragma {name:#C1, options:#C22}
-  #C24 = 56
-  #C25 = 36
-  #C26 = <dart.core::int*>[#C24, #C25, #C24]
-  #C27 = 48
-  #C28 = 32
-  #C29 = <dart.core::int*>[#C27, #C28, #C27]
+  #C18 = "vm:prefer-inline"
+  #C19 = dart.core::pragma {name:#C18, options:#C5}
+  #C20 = 24
+  #C21 = <dart.core::int*>[#C20, #C15, #C20]
+  #C22 = TypeLiteralConstant(lib::Y)
+  #C23 = <dart.core::Type>[#C22, #C22, #C2]
+  #C24 = dart.ffi::_FfiStructLayout {fieldTypes:#C23, packing:#C5}
+  #C25 = dart.core::pragma {name:#C1, options:#C24}
+  #C26 = 48
+  #C27 = 32
+  #C28 = <dart.core::int*>[#C26, #C27, #C26]
+  #C29 = 56
+  #C30 = 36
+  #C31 = <dart.core::int*>[#C29, #C30, #C29]
 }
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_49_ffi.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_49_ffi.yaml.world.1.expect
index 6563e60..b1ca0cd 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_49_ffi.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_49_ffi.yaml.world.1.expect
@@ -5,31 +5,33 @@
 
   @#C7
   class Y extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C10).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → lib::Y
       : super dart.ffi::Struct::•()
       ;
     constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Y
       : super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
       ;
-    @#C11
+    @#C8
     get y1() → dart.core::int
-      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     set y1(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
-    @#C11
+      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C8
     get y2() → dart.core::int
-      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C15).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     set y2(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C15).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
-    @#C16
+      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C13
     get y3() → dart.core::int
-      return dart.ffi::_loadUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C19).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C16
+      return dart.ffi::_loadUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C16).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C13
     set y3(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C19).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+      return dart.ffi::_storeUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C16).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C18
+    static get #sizeOf() → dart.core::int*
+      return (#C21).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 library from "org-dartlang-test:///main.dart" as main {
@@ -37,9 +39,8 @@
   import "dart:ffi";
   import "org-dartlang-test:///lib.dart";
 
-  @#C23
+  @#C25
   class X extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C26).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → main::X
       : super dart.ffi::Struct::•()
       ;
@@ -49,23 +50,26 @@
     get x1() → lib::Y
       return new lib::Y::#fromTypedDataBase( block {
         dart.core::Object #typedDataBase = this.{dart.ffi::_Compound::_typedDataBase};
-        dart.core::int #offset = (#C13).{dart.core::List::[]}(dart.ffi::_abi());
-      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C10).{dart.core::List::[]}(dart.ffi::_abi())));
+        dart.core::int #offset = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
+      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C21).{dart.core::List::[]}(dart.ffi::_abi())));
     set x1(lib::Y #externalFieldValue) → void
-      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C12, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C9, (#C21).{dart.core::List::[]}(dart.ffi::_abi()));
     get x2() → lib::Y
       return new lib::Y::#fromTypedDataBase( block {
         dart.core::Object #typedDataBase = this.{dart.ffi::_Compound::_typedDataBase};
-        dart.core::int #offset = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
-      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C10).{dart.core::List::[]}(dart.ffi::_abi())));
+        dart.core::int #offset = (#C21).{dart.core::List::[]}(dart.ffi::_abi());
+      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C21).{dart.core::List::[]}(dart.ffi::_abi())));
     set x2(lib::Y #externalFieldValue) → void
-      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C12, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C21).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C9, (#C21).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     get x3() → dart.core::int
-      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C29).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C28).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     set x3(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C29).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C28).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C18
+    static get #sizeOf() → dart.core::int*
+      return (#C31).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 constants  {
@@ -76,26 +80,28 @@
   #C5 = null
   #C6 = dart.ffi::_FfiStructLayout {fieldTypes:#C4, packing:#C5}
   #C7 = dart.core::pragma {name:#C1, options:#C6}
-  #C8 = 16
-  #C9 = 12
-  #C10 = <dart.core::int*>[#C8, #C9, #C8]
-  #C11 = dart.ffi::Uint8 {}
-  #C12 = 0
-  #C13 = <dart.core::int*>[#C12, #C12, #C12]
-  #C14 = 1
-  #C15 = <dart.core::int*>[#C14, #C14, #C14]
-  #C16 = dart.ffi::Uint64 {}
-  #C17 = 8
-  #C18 = 4
-  #C19 = <dart.core::int*>[#C17, #C18, #C17]
-  #C20 = TypeLiteralConstant(lib::Y)
-  #C21 = <dart.core::Type>[#C20, #C20, #C2]
-  #C22 = dart.ffi::_FfiStructLayout {fieldTypes:#C21, packing:#C5}
-  #C23 = dart.core::pragma {name:#C1, options:#C22}
-  #C24 = 40
-  #C25 = 28
-  #C26 = <dart.core::int*>[#C24, #C25, #C24]
-  #C27 = 32
-  #C28 = 24
-  #C29 = <dart.core::int*>[#C27, #C28, #C27]
+  #C8 = dart.ffi::Uint8 {}
+  #C9 = 0
+  #C10 = <dart.core::int*>[#C9, #C9, #C9]
+  #C11 = 1
+  #C12 = <dart.core::int*>[#C11, #C11, #C11]
+  #C13 = dart.ffi::Uint64 {}
+  #C14 = 8
+  #C15 = 4
+  #C16 = <dart.core::int*>[#C14, #C15, #C14]
+  #C17 = "vm:prefer-inline"
+  #C18 = dart.core::pragma {name:#C17, options:#C5}
+  #C19 = 16
+  #C20 = 12
+  #C21 = <dart.core::int*>[#C19, #C20, #C19]
+  #C22 = TypeLiteralConstant(lib::Y)
+  #C23 = <dart.core::Type>[#C22, #C22, #C2]
+  #C24 = dart.ffi::_FfiStructLayout {fieldTypes:#C23, packing:#C5}
+  #C25 = dart.core::pragma {name:#C1, options:#C24}
+  #C26 = 32
+  #C27 = 24
+  #C28 = <dart.core::int*>[#C26, #C27, #C26]
+  #C29 = 40
+  #C30 = 28
+  #C31 = <dart.core::int*>[#C29, #C30, #C29]
 }
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_49_ffi.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_49_ffi.yaml.world.2.expect
index 8713870..75e87b0 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_49_ffi.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_49_ffi.yaml.world.2.expect
@@ -5,31 +5,33 @@
 
   @#C7
   class Y extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C10).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → lib::Y
       : super dart.ffi::Struct::•()
       ;
     constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Y
       : super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
       ;
-    @#C11
+    @#C8
     get y1() → dart.core::int
-      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     set y1(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
-    @#C14
+      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C11
     get y3() → dart.core::int
-      return dart.ffi::_loadUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C14
+      return dart.ffi::_loadUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C14).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C11
     set y3(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
-    @#C11
+      return dart.ffi::_storeUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C14).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C8
     get y2() → dart.core::int
-      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C19).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     set y2(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C19).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C19
+    static get #sizeOf() → dart.core::int*
+      return (#C21).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 library from "org-dartlang-test:///main.dart" as main {
@@ -37,9 +39,8 @@
   import "dart:ffi";
   import "org-dartlang-test:///lib.dart";
 
-  @#C23
+  @#C25
   class X extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C26).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → main::X
       : super dart.ffi::Struct::•()
       ;
@@ -49,23 +50,26 @@
     get x1() → lib::Y
       return new lib::Y::#fromTypedDataBase( block {
         dart.core::Object #typedDataBase = this.{dart.ffi::_Compound::_typedDataBase};
-        dart.core::int #offset = (#C13).{dart.core::List::[]}(dart.ffi::_abi());
-      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C10).{dart.core::List::[]}(dart.ffi::_abi())));
+        dart.core::int #offset = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
+      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C21).{dart.core::List::[]}(dart.ffi::_abi())));
     set x1(lib::Y #externalFieldValue) → void
-      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C12, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C9, (#C21).{dart.core::List::[]}(dart.ffi::_abi()));
     get x2() → lib::Y
       return new lib::Y::#fromTypedDataBase( block {
         dart.core::Object #typedDataBase = this.{dart.ffi::_Compound::_typedDataBase};
-        dart.core::int #offset = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
-      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C10).{dart.core::List::[]}(dart.ffi::_abi())));
+        dart.core::int #offset = (#C21).{dart.core::List::[]}(dart.ffi::_abi());
+      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C21).{dart.core::List::[]}(dart.ffi::_abi())));
     set x2(lib::Y #externalFieldValue) → void
-      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C12, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C21).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C9, (#C21).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     get x3() → dart.core::int
-      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C29).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C28).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     set x3(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C29).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C28).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C19
+    static get #sizeOf() → dart.core::int*
+      return (#C31).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 constants  {
@@ -76,26 +80,28 @@
   #C5 = null
   #C6 = dart.ffi::_FfiStructLayout {fieldTypes:#C4, packing:#C5}
   #C7 = dart.core::pragma {name:#C1, options:#C6}
-  #C8 = 24
-  #C9 = 16
-  #C10 = <dart.core::int*>[#C8, #C9, #C8]
-  #C11 = dart.ffi::Uint8 {}
-  #C12 = 0
-  #C13 = <dart.core::int*>[#C12, #C12, #C12]
-  #C14 = dart.ffi::Uint64 {}
-  #C15 = 8
-  #C16 = 4
+  #C8 = dart.ffi::Uint8 {}
+  #C9 = 0
+  #C10 = <dart.core::int*>[#C9, #C9, #C9]
+  #C11 = dart.ffi::Uint64 {}
+  #C12 = 8
+  #C13 = 4
+  #C14 = <dart.core::int*>[#C12, #C13, #C12]
+  #C15 = 16
+  #C16 = 12
   #C17 = <dart.core::int*>[#C15, #C16, #C15]
-  #C18 = 12
-  #C19 = <dart.core::int*>[#C9, #C18, #C9]
-  #C20 = TypeLiteralConstant(lib::Y)
-  #C21 = <dart.core::Type>[#C20, #C20, #C2]
-  #C22 = dart.ffi::_FfiStructLayout {fieldTypes:#C21, packing:#C5}
-  #C23 = dart.core::pragma {name:#C1, options:#C22}
-  #C24 = 56
-  #C25 = 36
-  #C26 = <dart.core::int*>[#C24, #C25, #C24]
-  #C27 = 48
-  #C28 = 32
-  #C29 = <dart.core::int*>[#C27, #C28, #C27]
+  #C18 = "vm:prefer-inline"
+  #C19 = dart.core::pragma {name:#C18, options:#C5}
+  #C20 = 24
+  #C21 = <dart.core::int*>[#C20, #C15, #C20]
+  #C22 = TypeLiteralConstant(lib::Y)
+  #C23 = <dart.core::Type>[#C22, #C22, #C2]
+  #C24 = dart.ffi::_FfiStructLayout {fieldTypes:#C23, packing:#C5}
+  #C25 = dart.core::pragma {name:#C1, options:#C24}
+  #C26 = 48
+  #C27 = 32
+  #C28 = <dart.core::int*>[#C26, #C27, #C26]
+  #C29 = 56
+  #C30 = 36
+  #C31 = <dart.core::int*>[#C29, #C30, #C29]
 }
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_50_ffi.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_50_ffi.yaml.world.1.expect
index 790b63b..b6ef699 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_50_ffi.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_50_ffi.yaml.world.1.expect
@@ -5,31 +5,33 @@
 
   @#C7
   class Y extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C10).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → lib::Y
       : super dart.ffi::Struct::•()
       ;
     constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Y
       : super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
       ;
-    @#C11
+    @#C8
     get y1() → dart.core::int
-      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     set y1(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
-    @#C11
+      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C8
     get y2() → dart.core::int
-      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C15).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     set y2(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C15).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
-    @#C16
+      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C13
     get y3() → dart.core::int
-      return dart.ffi::_loadUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C19).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C16
+      return dart.ffi::_loadUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C16).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C13
     set y3(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C19).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+      return dart.ffi::_storeUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C16).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C18
+    static get #sizeOf() → dart.core::int*
+      return (#C21).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 library from "org-dartlang-test:///lib2.dart" as lib2 {
@@ -175,9 +177,8 @@
   import "dart:ffi";
   import "org-dartlang-test:///lib.dart";
 
-  @#C23
+  @#C25
   class X extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C26).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → main::X
       : super dart.ffi::Struct::•()
       ;
@@ -187,23 +188,26 @@
     get x1() → lib::Y
       return new lib::Y::#fromTypedDataBase( block {
         dart.core::Object #typedDataBase = this.{dart.ffi::_Compound::_typedDataBase};
-        dart.core::int #offset = (#C13).{dart.core::List::[]}(dart.ffi::_abi());
-      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C10).{dart.core::List::[]}(dart.ffi::_abi())));
+        dart.core::int #offset = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
+      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C21).{dart.core::List::[]}(dart.ffi::_abi())));
     set x1(lib::Y #externalFieldValue) → void
-      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C12, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C9, (#C21).{dart.core::List::[]}(dart.ffi::_abi()));
     get x2() → lib::Y
       return new lib::Y::#fromTypedDataBase( block {
         dart.core::Object #typedDataBase = this.{dart.ffi::_Compound::_typedDataBase};
-        dart.core::int #offset = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
-      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C10).{dart.core::List::[]}(dart.ffi::_abi())));
+        dart.core::int #offset = (#C21).{dart.core::List::[]}(dart.ffi::_abi());
+      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C21).{dart.core::List::[]}(dart.ffi::_abi())));
     set x2(lib::Y #externalFieldValue) → void
-      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C12, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C21).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C9, (#C21).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     get x3() → dart.core::int
-      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C29).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C28).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     set x3(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C29).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C28).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C18
+    static get #sizeOf() → dart.core::int*
+      return (#C31).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 constants  {
@@ -214,26 +218,28 @@
   #C5 = null
   #C6 = dart.ffi::_FfiStructLayout {fieldTypes:#C4, packing:#C5}
   #C7 = dart.core::pragma {name:#C1, options:#C6}
-  #C8 = 16
-  #C9 = 12
-  #C10 = <dart.core::int*>[#C8, #C9, #C8]
-  #C11 = dart.ffi::Uint8 {}
-  #C12 = 0
-  #C13 = <dart.core::int*>[#C12, #C12, #C12]
-  #C14 = 1
-  #C15 = <dart.core::int*>[#C14, #C14, #C14]
-  #C16 = dart.ffi::Uint64 {}
-  #C17 = 8
-  #C18 = 4
-  #C19 = <dart.core::int*>[#C17, #C18, #C17]
-  #C20 = TypeLiteralConstant(lib::Y)
-  #C21 = <dart.core::Type>[#C20, #C20, #C2]
-  #C22 = dart.ffi::_FfiStructLayout {fieldTypes:#C21, packing:#C5}
-  #C23 = dart.core::pragma {name:#C1, options:#C22}
-  #C24 = 40
-  #C25 = 28
-  #C26 = <dart.core::int*>[#C24, #C25, #C24]
-  #C27 = 32
-  #C28 = 24
-  #C29 = <dart.core::int*>[#C27, #C28, #C27]
+  #C8 = dart.ffi::Uint8 {}
+  #C9 = 0
+  #C10 = <dart.core::int*>[#C9, #C9, #C9]
+  #C11 = 1
+  #C12 = <dart.core::int*>[#C11, #C11, #C11]
+  #C13 = dart.ffi::Uint64 {}
+  #C14 = 8
+  #C15 = 4
+  #C16 = <dart.core::int*>[#C14, #C15, #C14]
+  #C17 = "vm:prefer-inline"
+  #C18 = dart.core::pragma {name:#C17, options:#C5}
+  #C19 = 16
+  #C20 = 12
+  #C21 = <dart.core::int*>[#C19, #C20, #C19]
+  #C22 = TypeLiteralConstant(lib::Y)
+  #C23 = <dart.core::Type>[#C22, #C22, #C2]
+  #C24 = dart.ffi::_FfiStructLayout {fieldTypes:#C23, packing:#C5}
+  #C25 = dart.core::pragma {name:#C1, options:#C24}
+  #C26 = 32
+  #C27 = 24
+  #C28 = <dart.core::int*>[#C26, #C27, #C26]
+  #C29 = 40
+  #C30 = 28
+  #C31 = <dart.core::int*>[#C29, #C30, #C29]
 }
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_50_ffi.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_50_ffi.yaml.world.2.expect
index 44136bf..c8d5564 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_50_ffi.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_50_ffi.yaml.world.2.expect
@@ -5,31 +5,33 @@
 
   @#C7
   class Y extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C10).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → lib::Y
       : super dart.ffi::Struct::•()
       ;
     constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Y
       : super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
       ;
-    @#C11
+    @#C8
     get y1() → dart.core::int
-      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     set y1(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
-    @#C14
+      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C11
     get y3() → dart.core::int
-      return dart.ffi::_loadUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C14
+      return dart.ffi::_loadUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C14).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C11
     set y3(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
-    @#C11
+      return dart.ffi::_storeUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C14).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C8
     get y2() → dart.core::int
-      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C19).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     set y2(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C19).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C17).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C19
+    static get #sizeOf() → dart.core::int*
+      return (#C21).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 library from "org-dartlang-test:///lib2.dart" as lib2 {
@@ -175,9 +177,8 @@
   import "dart:ffi";
   import "org-dartlang-test:///lib.dart";
 
-  @#C23
+  @#C25
   class X extends dart.ffi::Struct {
-    static final field dart.core::int* #sizeOf = (#C26).{dart.core::List::[]}(dart.ffi::_abi())/*isLegacy*/;
     synthetic constructor •() → main::X
       : super dart.ffi::Struct::•()
       ;
@@ -187,23 +188,26 @@
     get x1() → lib::Y
       return new lib::Y::#fromTypedDataBase( block {
         dart.core::Object #typedDataBase = this.{dart.ffi::_Compound::_typedDataBase};
-        dart.core::int #offset = (#C13).{dart.core::List::[]}(dart.ffi::_abi());
-      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C10).{dart.core::List::[]}(dart.ffi::_abi())));
+        dart.core::int #offset = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
+      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C21).{dart.core::List::[]}(dart.ffi::_abi())));
     set x1(lib::Y #externalFieldValue) → void
-      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C13).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C12, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
+      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C9, (#C21).{dart.core::List::[]}(dart.ffi::_abi()));
     get x2() → lib::Y
       return new lib::Y::#fromTypedDataBase( block {
         dart.core::Object #typedDataBase = this.{dart.ffi::_Compound::_typedDataBase};
-        dart.core::int #offset = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
-      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C10).{dart.core::List::[]}(dart.ffi::_abi())));
+        dart.core::int #offset = (#C21).{dart.core::List::[]}(dart.ffi::_abi());
+      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C21).{dart.core::List::[]}(dart.ffi::_abi())));
     set x2(lib::Y #externalFieldValue) → void
-      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C12, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C21).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C9, (#C21).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     get x3() → dart.core::int
-      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C29).{dart.core::List::[]}(dart.ffi::_abi()));
-    @#C11
+      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C28).{dart.core::List::[]}(dart.ffi::_abi()));
+    @#C8
     set x3(dart.core::int #externalFieldValue) → void
-      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C29).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C28).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
+    @#C19
+    static get #sizeOf() → dart.core::int*
+      return (#C31).{dart.core::List::[]}(dart.ffi::_abi());
   }
 }
 constants  {
@@ -214,26 +218,28 @@
   #C5 = null
   #C6 = dart.ffi::_FfiStructLayout {fieldTypes:#C4, packing:#C5}
   #C7 = dart.core::pragma {name:#C1, options:#C6}
-  #C8 = 24
-  #C9 = 16
-  #C10 = <dart.core::int*>[#C8, #C9, #C8]
-  #C11 = dart.ffi::Uint8 {}
-  #C12 = 0
-  #C13 = <dart.core::int*>[#C12, #C12, #C12]
-  #C14 = dart.ffi::Uint64 {}
-  #C15 = 8
-  #C16 = 4
+  #C8 = dart.ffi::Uint8 {}
+  #C9 = 0
+  #C10 = <dart.core::int*>[#C9, #C9, #C9]
+  #C11 = dart.ffi::Uint64 {}
+  #C12 = 8
+  #C13 = 4
+  #C14 = <dart.core::int*>[#C12, #C13, #C12]
+  #C15 = 16
+  #C16 = 12
   #C17 = <dart.core::int*>[#C15, #C16, #C15]
-  #C18 = 12
-  #C19 = <dart.core::int*>[#C9, #C18, #C9]
-  #C20 = TypeLiteralConstant(lib::Y)
-  #C21 = <dart.core::Type>[#C20, #C20, #C2]
-  #C22 = dart.ffi::_FfiStructLayout {fieldTypes:#C21, packing:#C5}
-  #C23 = dart.core::pragma {name:#C1, options:#C22}
-  #C24 = 56
-  #C25 = 36
-  #C26 = <dart.core::int*>[#C24, #C25, #C24]
-  #C27 = 48
-  #C28 = 32
-  #C29 = <dart.core::int*>[#C27, #C28, #C27]
+  #C18 = "vm:prefer-inline"
+  #C19 = dart.core::pragma {name:#C18, options:#C5}
+  #C20 = 24
+  #C21 = <dart.core::int*>[#C20, #C15, #C20]
+  #C22 = TypeLiteralConstant(lib::Y)
+  #C23 = <dart.core::Type>[#C22, #C22, #C2]
+  #C24 = dart.ffi::_FfiStructLayout {fieldTypes:#C23, packing:#C5}
+  #C25 = dart.core::pragma {name:#C1, options:#C24}
+  #C26 = 48
+  #C27 = 32
+  #C28 = <dart.core::int*>[#C26, #C27, #C26]
+  #C29 = 56
+  #C30 = 36
+  #C31 = <dart.core::int*>[#C29, #C30, #C29]
 }
diff --git a/pkg/front_end/testcases/nnbd/ffi_sample.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/ffi_sample.dart.strong.transformed.expect
index eee9d220..156a6b3 100644
--- a/pkg/front_end/testcases/nnbd/ffi_sample.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_sample.dart.strong.transformed.expect
@@ -8,26 +8,25 @@
 
 @#C7
 class Coordinate extends ffi::Struct {
-  static final field core::int* #sizeOf = (#C10).{core::List::[]}(ffi::_abi())/*isLegacy*/;
   constructor #fromTypedDataBase(core::Object #typedDataBase) → self::Coordinate
     : super ffi::Struct::_fromTypedDataBase(#typedDataBase)
     ;
-  @#C11
+  @#C8
   get x() → core::double
-    return ffi::_loadDouble(this.{ffi::_Compound::_typedDataBase}, (#C13).{core::List::[]}(ffi::_abi()));
-  @#C11
+    return ffi::_loadDouble(this.{ffi::_Compound::_typedDataBase}, (#C10).{core::List::[]}(ffi::_abi()));
+  @#C8
   set x(core::double #externalFieldValue) → void
-    return ffi::_storeDouble(this.{ffi::_Compound::_typedDataBase}, (#C13).{core::List::[]}(ffi::_abi()), #externalFieldValue);
-  @#C11
+    return ffi::_storeDouble(this.{ffi::_Compound::_typedDataBase}, (#C10).{core::List::[]}(ffi::_abi()), #externalFieldValue);
+  @#C8
   get y() → core::double
-    return ffi::_loadDouble(this.{ffi::_Compound::_typedDataBase}, (#C15).{core::List::[]}(ffi::_abi()));
-  @#C11
+    return ffi::_loadDouble(this.{ffi::_Compound::_typedDataBase}, (#C12).{core::List::[]}(ffi::_abi()));
+  @#C8
   set y(core::double #externalFieldValue) → void
-    return ffi::_storeDouble(this.{ffi::_Compound::_typedDataBase}, (#C15).{core::List::[]}(ffi::_abi()), #externalFieldValue);
+    return ffi::_storeDouble(this.{ffi::_Compound::_typedDataBase}, (#C12).{core::List::[]}(ffi::_abi()), #externalFieldValue);
   get next() → ffi::Pointer<self::Coordinate>
-    return ffi::_fromAddress<self::Coordinate>(ffi::_loadIntPtr(this.{ffi::_Compound::_typedDataBase}, (#C17).{core::List::[]}(ffi::_abi())));
+    return ffi::_fromAddress<self::Coordinate>(ffi::_loadIntPtr(this.{ffi::_Compound::_typedDataBase}, (#C14).{core::List::[]}(ffi::_abi())));
   set next(ffi::Pointer<self::Coordinate> #externalFieldValue) → void
-    return ffi::_storeIntPtr(this.{ffi::_Compound::_typedDataBase}, (#C17).{core::List::[]}(ffi::_abi()), #externalFieldValue.{ffi::Pointer::address});
+    return ffi::_storeIntPtr(this.{ffi::_Compound::_typedDataBase}, (#C14).{core::List::[]}(ffi::_abi()), #externalFieldValue.{ffi::Pointer::address});
   static factory allocate(ffi::Allocator allocator, core::double x, core::double y, ffi::Pointer<self::Coordinate> next) → self::Coordinate {
     return let final self::Coordinate #t1 = new self::Coordinate::#fromTypedDataBase(allocator.{ffi::Allocator::allocate}<self::Coordinate>(self::Coordinate::#sizeOf)!) in block {
       #t1.{self::Coordinate::x} = x;
@@ -35,6 +34,9 @@
       #t1.{self::Coordinate::next} = next;
     } =>#t1;
   }
+  @#C16
+  static get #sizeOf() → core::int*
+    return (#C19).{core::List::[]}(ffi::_abi());
 }
 static method main() → dynamic {}
 
@@ -46,16 +48,18 @@
   #C5 = null
   #C6 = ffi::_FfiStructLayout {fieldTypes:#C4, packing:#C5}
   #C7 = core::pragma {name:#C1, options:#C6}
-  #C8 = 24
-  #C9 = 20
-  #C10 = <core::int*>[#C8, #C9, #C8]
-  #C11 = ffi::Double {}
-  #C12 = 0
-  #C13 = <core::int*>[#C12, #C12, #C12]
-  #C14 = 8
-  #C15 = <core::int*>[#C14, #C14, #C14]
-  #C16 = 16
-  #C17 = <core::int*>[#C16, #C16, #C16]
+  #C8 = ffi::Double {}
+  #C9 = 0
+  #C10 = <core::int*>[#C9, #C9, #C9]
+  #C11 = 8
+  #C12 = <core::int*>[#C11, #C11, #C11]
+  #C13 = 16
+  #C14 = <core::int*>[#C13, #C13, #C13]
+  #C15 = "vm:prefer-inline"
+  #C16 = core::pragma {name:#C15, options:#C5}
+  #C17 = 24
+  #C18 = 20
+  #C19 = <core::int*>[#C17, #C18, #C17]
 }
 
 
diff --git a/pkg/front_end/testcases/nnbd/ffi_sample.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/ffi_sample.dart.weak.transformed.expect
index eee9d220..156a6b3 100644
--- a/pkg/front_end/testcases/nnbd/ffi_sample.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_sample.dart.weak.transformed.expect
@@ -8,26 +8,25 @@
 
 @#C7
 class Coordinate extends ffi::Struct {
-  static final field core::int* #sizeOf = (#C10).{core::List::[]}(ffi::_abi())/*isLegacy*/;
   constructor #fromTypedDataBase(core::Object #typedDataBase) → self::Coordinate
     : super ffi::Struct::_fromTypedDataBase(#typedDataBase)
     ;
-  @#C11
+  @#C8
   get x() → core::double
-    return ffi::_loadDouble(this.{ffi::_Compound::_typedDataBase}, (#C13).{core::List::[]}(ffi::_abi()));
-  @#C11
+    return ffi::_loadDouble(this.{ffi::_Compound::_typedDataBase}, (#C10).{core::List::[]}(ffi::_abi()));
+  @#C8
   set x(core::double #externalFieldValue) → void
-    return ffi::_storeDouble(this.{ffi::_Compound::_typedDataBase}, (#C13).{core::List::[]}(ffi::_abi()), #externalFieldValue);
-  @#C11
+    return ffi::_storeDouble(this.{ffi::_Compound::_typedDataBase}, (#C10).{core::List::[]}(ffi::_abi()), #externalFieldValue);
+  @#C8
   get y() → core::double
-    return ffi::_loadDouble(this.{ffi::_Compound::_typedDataBase}, (#C15).{core::List::[]}(ffi::_abi()));
-  @#C11
+    return ffi::_loadDouble(this.{ffi::_Compound::_typedDataBase}, (#C12).{core::List::[]}(ffi::_abi()));
+  @#C8
   set y(core::double #externalFieldValue) → void
-    return ffi::_storeDouble(this.{ffi::_Compound::_typedDataBase}, (#C15).{core::List::[]}(ffi::_abi()), #externalFieldValue);
+    return ffi::_storeDouble(this.{ffi::_Compound::_typedDataBase}, (#C12).{core::List::[]}(ffi::_abi()), #externalFieldValue);
   get next() → ffi::Pointer<self::Coordinate>
-    return ffi::_fromAddress<self::Coordinate>(ffi::_loadIntPtr(this.{ffi::_Compound::_typedDataBase}, (#C17).{core::List::[]}(ffi::_abi())));
+    return ffi::_fromAddress<self::Coordinate>(ffi::_loadIntPtr(this.{ffi::_Compound::_typedDataBase}, (#C14).{core::List::[]}(ffi::_abi())));
   set next(ffi::Pointer<self::Coordinate> #externalFieldValue) → void
-    return ffi::_storeIntPtr(this.{ffi::_Compound::_typedDataBase}, (#C17).{core::List::[]}(ffi::_abi()), #externalFieldValue.{ffi::Pointer::address});
+    return ffi::_storeIntPtr(this.{ffi::_Compound::_typedDataBase}, (#C14).{core::List::[]}(ffi::_abi()), #externalFieldValue.{ffi::Pointer::address});
   static factory allocate(ffi::Allocator allocator, core::double x, core::double y, ffi::Pointer<self::Coordinate> next) → self::Coordinate {
     return let final self::Coordinate #t1 = new self::Coordinate::#fromTypedDataBase(allocator.{ffi::Allocator::allocate}<self::Coordinate>(self::Coordinate::#sizeOf)!) in block {
       #t1.{self::Coordinate::x} = x;
@@ -35,6 +34,9 @@
       #t1.{self::Coordinate::next} = next;
     } =>#t1;
   }
+  @#C16
+  static get #sizeOf() → core::int*
+    return (#C19).{core::List::[]}(ffi::_abi());
 }
 static method main() → dynamic {}
 
@@ -46,16 +48,18 @@
   #C5 = null
   #C6 = ffi::_FfiStructLayout {fieldTypes:#C4, packing:#C5}
   #C7 = core::pragma {name:#C1, options:#C6}
-  #C8 = 24
-  #C9 = 20
-  #C10 = <core::int*>[#C8, #C9, #C8]
-  #C11 = ffi::Double {}
-  #C12 = 0
-  #C13 = <core::int*>[#C12, #C12, #C12]
-  #C14 = 8
-  #C15 = <core::int*>[#C14, #C14, #C14]
-  #C16 = 16
-  #C17 = <core::int*>[#C16, #C16, #C16]
+  #C8 = ffi::Double {}
+  #C9 = 0
+  #C10 = <core::int*>[#C9, #C9, #C9]
+  #C11 = 8
+  #C12 = <core::int*>[#C11, #C11, #C11]
+  #C13 = 16
+  #C14 = <core::int*>[#C13, #C13, #C13]
+  #C15 = "vm:prefer-inline"
+  #C16 = core::pragma {name:#C15, options:#C5}
+  #C17 = 24
+  #C18 = 20
+  #C19 = <core::int*>[#C17, #C18, #C17]
 }
 
 
diff --git a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.strong.transformed.expect
index 8b2f96c..cc5b25d 100644
--- a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.strong.transformed.expect
@@ -10,22 +10,24 @@
 
 @#C8
 class StructInlineArray extends ffi::Struct {
-  static final field core::int* #sizeOf = (#C9).{core::List::[]}(ffi::_abi())/*isLegacy*/;
   synthetic constructor •() → self::StructInlineArray
     : super ffi::Struct::•()
     ;
   constructor #fromTypedDataBase(core::Object #typedDataBase) → self::StructInlineArray
     : super ffi::Struct::_fromTypedDataBase(#typedDataBase)
     ;
-  @#C10
+  @#C9
   get a0() → ffi::Array<ffi::Uint8>
     return new ffi::Array::_<ffi::Uint8>( block {
       core::Object #typedDataBase = this.{ffi::_Compound::_typedDataBase};
-      core::int #offset = (#C12).{core::List::[]}(ffi::_abi());
-    } =>#typedDataBase is ffi::Pointer<dynamic> ?{core::Object} ffi::_fromAddress<ffi::Uint8>(#typedDataBase.{ffi::Pointer::address}.{core::num::+}(#offset)) : let typ::TypedData #typedData = _in::unsafeCast<typ::TypedData>(#typedDataBase) in #typedData.{typ::TypedData::buffer}.{typ::ByteBuffer::asUint8List}(#typedData.{typ::TypedData::offsetInBytes}.{core::num::+}(#offset), (#C9).{core::List::[]}(ffi::_abi())), #C3, #C13);
-  @#C10
+      core::int #offset = (#C11).{core::List::[]}(ffi::_abi());
+    } =>#typedDataBase is ffi::Pointer<dynamic> ?{core::Object} ffi::_fromAddress<ffi::Uint8>(#typedDataBase.{ffi::Pointer::address}.{core::num::+}(#offset)) : let typ::TypedData #typedData = _in::unsafeCast<typ::TypedData>(#typedDataBase) in #typedData.{typ::TypedData::buffer}.{typ::ByteBuffer::asUint8List}(#typedData.{typ::TypedData::offsetInBytes}.{core::num::+}(#offset), (#C12).{core::List::[]}(ffi::_abi())), #C3, #C13);
+  @#C9
   set a0(ffi::Array<ffi::Uint8> #externalFieldValue) → void
-    return ffi::_memCopy(this.{ffi::_Compound::_typedDataBase}, (#C12).{core::List::[]}(ffi::_abi()), #externalFieldValue.{ffi::Array::_typedDataBase}, #C11, (#C9).{core::List::[]}(ffi::_abi()));
+    return ffi::_memCopy(this.{ffi::_Compound::_typedDataBase}, (#C11).{core::List::[]}(ffi::_abi()), #externalFieldValue.{ffi::Array::_typedDataBase}, #C10, (#C12).{core::List::[]}(ffi::_abi()));
+  @#C15
+  static get #sizeOf() → core::int*
+    return (#C12).{core::List::[]}(ffi::_abi());
 }
 static method main() → dynamic {}
 
@@ -38,11 +40,13 @@
   #C6 = null
   #C7 = ffi::_FfiStructLayout {fieldTypes:#C5, packing:#C6}
   #C8 = core::pragma {name:#C1, options:#C7}
-  #C9 = <core::int*>[#C3, #C3, #C3]
-  #C10 = ffi::_ArraySize<ffi::NativeType> {dimension1:#C3, dimension2:#C6, dimension3:#C6, dimension4:#C6, dimension5:#C6, dimensions:#C6}
-  #C11 = 0
-  #C12 = <core::int*>[#C11, #C11, #C11]
+  #C9 = ffi::_ArraySize<ffi::NativeType> {dimension1:#C3, dimension2:#C6, dimension3:#C6, dimension4:#C6, dimension5:#C6, dimensions:#C6}
+  #C10 = 0
+  #C11 = <core::int*>[#C10, #C10, #C10]
+  #C12 = <core::int*>[#C3, #C3, #C3]
   #C13 = <core::int*>[]
+  #C14 = "vm:prefer-inline"
+  #C15 = core::pragma {name:#C14, options:#C6}
 }
 
 
diff --git a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.weak.transformed.expect
index 4d17ccf..ee37786 100644
--- a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.weak.transformed.expect
@@ -10,22 +10,24 @@
 
 @#C8
 class StructInlineArray extends ffi::Struct {
-  static final field core::int* #sizeOf = (#C9).{core::List::[]}(ffi::_abi())/*isLegacy*/;
   synthetic constructor •() → self::StructInlineArray
     : super ffi::Struct::•()
     ;
   constructor #fromTypedDataBase(core::Object #typedDataBase) → self::StructInlineArray
     : super ffi::Struct::_fromTypedDataBase(#typedDataBase)
     ;
-  @#C10
+  @#C9
   get a0() → ffi::Array<ffi::Uint8>
     return new ffi::Array::_<ffi::Uint8>( block {
       core::Object #typedDataBase = this.{ffi::_Compound::_typedDataBase};
-      core::int #offset = (#C12).{core::List::[]}(ffi::_abi());
-    } =>#typedDataBase is ffi::Pointer<dynamic> ?{core::Object} ffi::_fromAddress<ffi::Uint8>(#typedDataBase.{ffi::Pointer::address}.{core::num::+}(#offset)) : let typ::TypedData #typedData = _in::unsafeCast<typ::TypedData>(#typedDataBase) in #typedData.{typ::TypedData::buffer}.{typ::ByteBuffer::asUint8List}(#typedData.{typ::TypedData::offsetInBytes}.{core::num::+}(#offset), (#C9).{core::List::[]}(ffi::_abi())), #C3, #C13);
-  @#C10
+      core::int #offset = (#C11).{core::List::[]}(ffi::_abi());
+    } =>#typedDataBase is ffi::Pointer<dynamic> ?{core::Object} ffi::_fromAddress<ffi::Uint8>(#typedDataBase.{ffi::Pointer::address}.{core::num::+}(#offset)) : let typ::TypedData #typedData = _in::unsafeCast<typ::TypedData>(#typedDataBase) in #typedData.{typ::TypedData::buffer}.{typ::ByteBuffer::asUint8List}(#typedData.{typ::TypedData::offsetInBytes}.{core::num::+}(#offset), (#C12).{core::List::[]}(ffi::_abi())), #C3, #C13);
+  @#C9
   set a0(ffi::Array<ffi::Uint8> #externalFieldValue) → void
-    return ffi::_memCopy(this.{ffi::_Compound::_typedDataBase}, (#C12).{core::List::[]}(ffi::_abi()), #externalFieldValue.{ffi::Array::_typedDataBase}, #C11, (#C9).{core::List::[]}(ffi::_abi()));
+    return ffi::_memCopy(this.{ffi::_Compound::_typedDataBase}, (#C11).{core::List::[]}(ffi::_abi()), #externalFieldValue.{ffi::Array::_typedDataBase}, #C10, (#C12).{core::List::[]}(ffi::_abi()));
+  @#C15
+  static get #sizeOf() → core::int*
+    return (#C12).{core::List::[]}(ffi::_abi());
 }
 static method main() → dynamic {}
 
@@ -38,11 +40,13 @@
   #C6 = null
   #C7 = ffi::_FfiStructLayout {fieldTypes:#C5, packing:#C6}
   #C8 = core::pragma {name:#C1, options:#C7}
-  #C9 = <core::int*>[#C3, #C3, #C3]
-  #C10 = ffi::_ArraySize<ffi::NativeType*> {dimension1:#C3, dimension2:#C6, dimension3:#C6, dimension4:#C6, dimension5:#C6, dimensions:#C6}
-  #C11 = 0
-  #C12 = <core::int*>[#C11, #C11, #C11]
+  #C9 = ffi::_ArraySize<ffi::NativeType*> {dimension1:#C3, dimension2:#C6, dimension3:#C6, dimension4:#C6, dimension5:#C6, dimensions:#C6}
+  #C10 = 0
+  #C11 = <core::int*>[#C10, #C10, #C10]
+  #C12 = <core::int*>[#C3, #C3, #C3]
   #C13 = <core::int*>[]
+  #C14 = "vm:prefer-inline"
+  #C15 = core::pragma {name:#C14, options:#C6}
 }
 
 
diff --git a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.strong.transformed.expect
index 5b4a08c..9ba7eaf 100644
--- a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.strong.transformed.expect
@@ -10,32 +10,34 @@
 
 @#C8
 class StructInlineArrayMultiDimensional extends ffi::Struct {
-  static final field core::int* #sizeOf = (#C9).{core::List::[]}(ffi::_abi())/*isLegacy*/;
   synthetic constructor •() → self::StructInlineArrayMultiDimensional
     : super ffi::Struct::•()
     ;
   constructor #fromTypedDataBase(core::Object #typedDataBase) → self::StructInlineArrayMultiDimensional
     : super ffi::Struct::_fromTypedDataBase(#typedDataBase)
     ;
-  @#C11
+  @#C10
   get a0() → ffi::Array<ffi::Array<ffi::Array<ffi::Uint8>>>
     return new ffi::Array::_<ffi::Array<ffi::Array<ffi::Uint8>>>( block {
       core::Object #typedDataBase = this.{ffi::_Compound::_typedDataBase};
-      core::int #offset = (#C13).{core::List::[]}(ffi::_abi());
-    } =>#typedDataBase is ffi::Pointer<dynamic> ?{core::Object} ffi::_fromAddress<ffi::Array<ffi::Array<ffi::Uint8>>>(#typedDataBase.{ffi::Pointer::address}.{core::num::+}(#offset)) : let typ::TypedData #typedData = _in::unsafeCast<typ::TypedData>(#typedDataBase) in #typedData.{typ::TypedData::buffer}.{typ::ByteBuffer::asUint8List}(#typedData.{typ::TypedData::offsetInBytes}.{core::num::+}(#offset), (#C9).{core::List::[]}(ffi::_abi())), #C10, #C14);
-  @#C11
+      core::int #offset = (#C12).{core::List::[]}(ffi::_abi());
+    } =>#typedDataBase is ffi::Pointer<dynamic> ?{core::Object} ffi::_fromAddress<ffi::Array<ffi::Array<ffi::Uint8>>>(#typedDataBase.{ffi::Pointer::address}.{core::num::+}(#offset)) : let typ::TypedData #typedData = _in::unsafeCast<typ::TypedData>(#typedDataBase) in #typedData.{typ::TypedData::buffer}.{typ::ByteBuffer::asUint8List}(#typedData.{typ::TypedData::offsetInBytes}.{core::num::+}(#offset), (#C13).{core::List::[]}(ffi::_abi())), #C9, #C14);
+  @#C10
   set a0(ffi::Array<ffi::Array<ffi::Array<ffi::Uint8>>> #externalFieldValue) → void
-    return ffi::_memCopy(this.{ffi::_Compound::_typedDataBase}, (#C13).{core::List::[]}(ffi::_abi()), #externalFieldValue.{ffi::Array::_typedDataBase}, #C12, (#C9).{core::List::[]}(ffi::_abi()));
+    return ffi::_memCopy(this.{ffi::_Compound::_typedDataBase}, (#C12).{core::List::[]}(ffi::_abi()), #externalFieldValue.{ffi::Array::_typedDataBase}, #C11, (#C13).{core::List::[]}(ffi::_abi()));
+  @#C16
+  static get #sizeOf() → core::int*
+    return (#C13).{core::List::[]}(ffi::_abi());
 }
 static method main() → dynamic {
-  final ffi::Pointer<self::StructInlineArrayMultiDimensional> pointer = (#C15).{ffi::Allocator::allocate}<self::StructInlineArrayMultiDimensional>(self::StructInlineArrayMultiDimensional::#sizeOf);
+  final ffi::Pointer<self::StructInlineArrayMultiDimensional> pointer = (#C17).{ffi::Allocator::allocate}<self::StructInlineArrayMultiDimensional>(self::StructInlineArrayMultiDimensional::#sizeOf);
   final self::StructInlineArrayMultiDimensional struct = new self::StructInlineArrayMultiDimensional::#fromTypedDataBase(pointer!);
   final ffi::Array<ffi::Array<ffi::Array<ffi::Uint8>>> array = struct.{self::StructInlineArrayMultiDimensional::a0};
   final ffi::Array<ffi::Array<ffi::Uint8>> subArray = block {
     ffi::Array<dynamic> #array = array!;
     core::int #index = 0!;
     #array.{ffi::Array::_checkIndex}(#index);
-    core::int #singleElementSize = #C16;
+    core::int #singleElementSize = #C18;
     core::int #elementSize = #singleElementSize.{core::num::*}(#array.{ffi::Array::_nestedDimensionsFlattened});
     core::int #offset = #elementSize.{core::num::*}(#index);
   } =>new ffi::Array::_<ffi::Array<ffi::Uint8>>( block {
@@ -46,11 +48,11 @@
     ffi::Array<dynamic> #array = array!;
     core::int #index = 1!;
     #array.{ffi::Array::_checkIndex}(#index);
-    core::int #singleElementSize = #C16;
+    core::int #singleElementSize = #C18;
     core::int #elementSize = #singleElementSize.{core::num::*}(#array.{ffi::Array::_nestedDimensionsFlattened});
     core::int #offset = #elementSize.{core::num::*}(#index);
-  } =>ffi::_memCopy(#array.{ffi::Array::_typedDataBase}, #offset, subArray.{ffi::Array::_typedDataBase}, #C12, #elementSize);
-  (#C15).{ffi::Allocator::free}(pointer);
+  } =>ffi::_memCopy(#array.{ffi::Array::_typedDataBase}, #offset, subArray.{ffi::Array::_typedDataBase}, #C11, #elementSize);
+  (#C17).{ffi::Allocator::free}(pointer);
 }
 
 constants  {
@@ -62,14 +64,16 @@
   #C6 = null
   #C7 = ffi::_FfiStructLayout {fieldTypes:#C5, packing:#C6}
   #C8 = core::pragma {name:#C1, options:#C7}
-  #C9 = <core::int*>[#C3, #C3, #C3]
-  #C10 = 2
-  #C11 = ffi::_ArraySize<ffi::NativeType> {dimension1:#C10, dimension2:#C10, dimension3:#C10, dimension4:#C6, dimension5:#C6, dimensions:#C6}
-  #C12 = 0
-  #C13 = <core::int*>[#C12, #C12, #C12]
-  #C14 = <core::int*>[#C10, #C10]
-  #C15 = all::_CallocAllocator {}
-  #C16 = 1
+  #C9 = 2
+  #C10 = ffi::_ArraySize<ffi::NativeType> {dimension1:#C9, dimension2:#C9, dimension3:#C9, dimension4:#C6, dimension5:#C6, dimensions:#C6}
+  #C11 = 0
+  #C12 = <core::int*>[#C11, #C11, #C11]
+  #C13 = <core::int*>[#C3, #C3, #C3]
+  #C14 = <core::int*>[#C9, #C9]
+  #C15 = "vm:prefer-inline"
+  #C16 = core::pragma {name:#C15, options:#C6}
+  #C17 = all::_CallocAllocator {}
+  #C18 = 1
 }
 
 Extra constant evaluation status:
diff --git a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.weak.transformed.expect
index e502690..9df71b9 100644
--- a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.weak.transformed.expect
@@ -10,32 +10,34 @@
 
 @#C8
 class StructInlineArrayMultiDimensional extends ffi::Struct {
-  static final field core::int* #sizeOf = (#C9).{core::List::[]}(ffi::_abi())/*isLegacy*/;
   synthetic constructor •() → self::StructInlineArrayMultiDimensional
     : super ffi::Struct::•()
     ;
   constructor #fromTypedDataBase(core::Object #typedDataBase) → self::StructInlineArrayMultiDimensional
     : super ffi::Struct::_fromTypedDataBase(#typedDataBase)
     ;
-  @#C11
+  @#C10
   get a0() → ffi::Array<ffi::Array<ffi::Array<ffi::Uint8>>>
     return new ffi::Array::_<ffi::Array<ffi::Array<ffi::Uint8>>>( block {
       core::Object #typedDataBase = this.{ffi::_Compound::_typedDataBase};
-      core::int #offset = (#C13).{core::List::[]}(ffi::_abi());
-    } =>#typedDataBase is ffi::Pointer<dynamic> ?{core::Object} ffi::_fromAddress<ffi::Array<ffi::Array<ffi::Uint8>>>(#typedDataBase.{ffi::Pointer::address}.{core::num::+}(#offset)) : let typ::TypedData #typedData = _in::unsafeCast<typ::TypedData>(#typedDataBase) in #typedData.{typ::TypedData::buffer}.{typ::ByteBuffer::asUint8List}(#typedData.{typ::TypedData::offsetInBytes}.{core::num::+}(#offset), (#C9).{core::List::[]}(ffi::_abi())), #C10, #C14);
-  @#C11
+      core::int #offset = (#C12).{core::List::[]}(ffi::_abi());
+    } =>#typedDataBase is ffi::Pointer<dynamic> ?{core::Object} ffi::_fromAddress<ffi::Array<ffi::Array<ffi::Uint8>>>(#typedDataBase.{ffi::Pointer::address}.{core::num::+}(#offset)) : let typ::TypedData #typedData = _in::unsafeCast<typ::TypedData>(#typedDataBase) in #typedData.{typ::TypedData::buffer}.{typ::ByteBuffer::asUint8List}(#typedData.{typ::TypedData::offsetInBytes}.{core::num::+}(#offset), (#C13).{core::List::[]}(ffi::_abi())), #C9, #C14);
+  @#C10
   set a0(ffi::Array<ffi::Array<ffi::Array<ffi::Uint8>>> #externalFieldValue) → void
-    return ffi::_memCopy(this.{ffi::_Compound::_typedDataBase}, (#C13).{core::List::[]}(ffi::_abi()), #externalFieldValue.{ffi::Array::_typedDataBase}, #C12, (#C9).{core::List::[]}(ffi::_abi()));
+    return ffi::_memCopy(this.{ffi::_Compound::_typedDataBase}, (#C12).{core::List::[]}(ffi::_abi()), #externalFieldValue.{ffi::Array::_typedDataBase}, #C11, (#C13).{core::List::[]}(ffi::_abi()));
+  @#C16
+  static get #sizeOf() → core::int*
+    return (#C13).{core::List::[]}(ffi::_abi());
 }
 static method main() → dynamic {
-  final ffi::Pointer<self::StructInlineArrayMultiDimensional> pointer = (#C15).{ffi::Allocator::allocate}<self::StructInlineArrayMultiDimensional>(self::StructInlineArrayMultiDimensional::#sizeOf);
+  final ffi::Pointer<self::StructInlineArrayMultiDimensional> pointer = (#C17).{ffi::Allocator::allocate}<self::StructInlineArrayMultiDimensional>(self::StructInlineArrayMultiDimensional::#sizeOf);
   final self::StructInlineArrayMultiDimensional struct = new self::StructInlineArrayMultiDimensional::#fromTypedDataBase(pointer!);
   final ffi::Array<ffi::Array<ffi::Array<ffi::Uint8>>> array = struct.{self::StructInlineArrayMultiDimensional::a0};
   final ffi::Array<ffi::Array<ffi::Uint8>> subArray = block {
     ffi::Array<dynamic> #array = array!;
     core::int #index = 0!;
     #array.{ffi::Array::_checkIndex}(#index);
-    core::int #singleElementSize = #C16;
+    core::int #singleElementSize = #C18;
     core::int #elementSize = #singleElementSize.{core::num::*}(#array.{ffi::Array::_nestedDimensionsFlattened});
     core::int #offset = #elementSize.{core::num::*}(#index);
   } =>new ffi::Array::_<ffi::Array<ffi::Uint8>>( block {
@@ -46,11 +48,11 @@
     ffi::Array<dynamic> #array = array!;
     core::int #index = 1!;
     #array.{ffi::Array::_checkIndex}(#index);
-    core::int #singleElementSize = #C16;
+    core::int #singleElementSize = #C18;
     core::int #elementSize = #singleElementSize.{core::num::*}(#array.{ffi::Array::_nestedDimensionsFlattened});
     core::int #offset = #elementSize.{core::num::*}(#index);
-  } =>ffi::_memCopy(#array.{ffi::Array::_typedDataBase}, #offset, subArray.{ffi::Array::_typedDataBase}, #C12, #elementSize);
-  (#C15).{ffi::Allocator::free}(pointer);
+  } =>ffi::_memCopy(#array.{ffi::Array::_typedDataBase}, #offset, subArray.{ffi::Array::_typedDataBase}, #C11, #elementSize);
+  (#C17).{ffi::Allocator::free}(pointer);
 }
 
 constants  {
@@ -62,14 +64,16 @@
   #C6 = null
   #C7 = ffi::_FfiStructLayout {fieldTypes:#C5, packing:#C6}
   #C8 = core::pragma {name:#C1, options:#C7}
-  #C9 = <core::int*>[#C3, #C3, #C3]
-  #C10 = 2
-  #C11 = ffi::_ArraySize<ffi::NativeType*> {dimension1:#C10, dimension2:#C10, dimension3:#C10, dimension4:#C6, dimension5:#C6, dimensions:#C6}
-  #C12 = 0
-  #C13 = <core::int*>[#C12, #C12, #C12]
-  #C14 = <core::int*>[#C10, #C10]
-  #C15 = all::_CallocAllocator {}
-  #C16 = 1
+  #C9 = 2
+  #C10 = ffi::_ArraySize<ffi::NativeType*> {dimension1:#C9, dimension2:#C9, dimension3:#C9, dimension4:#C6, dimension5:#C6, dimensions:#C6}
+  #C11 = 0
+  #C12 = <core::int*>[#C11, #C11, #C11]
+  #C13 = <core::int*>[#C3, #C3, #C3]
+  #C14 = <core::int*>[#C9, #C9]
+  #C15 = "vm:prefer-inline"
+  #C16 = core::pragma {name:#C15, options:#C6}
+  #C17 = all::_CallocAllocator {}
+  #C18 = 1
 }
 
 Extra constant evaluation status:
diff --git a/pkg/js/proposal.md b/pkg/js/proposal.md
index 381e85c..8e4ae76 100644
--- a/pkg/js/proposal.md
+++ b/pkg/js/proposal.md
@@ -283,7 +283,7 @@
 different visibility, such as names starting with underscore.
 
 Renames are made possible by taking advantage of the static type of the
-reciever. This is similar to static calls and extension methods.
+receiver. This is similar to static calls and extension methods.
 
 ```dart
 UserInfo user = someExpression;
@@ -789,7 +789,7 @@
 
 The last check is an example of one consequence of the looser checking. 
 Conceptually we have a `JSAny` type. This type only exists in runtime, and does
-not require a representation, since it results from the absense of type
+not require a representation, since it results from the absence of type
 information. This is discussed later when we look at the type system.
 
 Besides JS Arrays, Dart generic functions and methods can also be called from
@@ -1222,7 +1222,7 @@
 
 ### JS Proxy
 
-One question that comes up occassionally is how to use JS Proxy from Dart.
+One question that comes up occasionally is how to use JS Proxy from Dart.
 We can expose JSProxy from "package:js":
 
 ```dart
diff --git a/pkg/js_ast/lib/src/printer.dart b/pkg/js_ast/lib/src/printer.dart
index d851cb8..c6e9a9e 100644
--- a/pkg/js_ast/lib/src/printer.dart
+++ b/pkg/js_ast/lib/src/printer.dart
@@ -4,21 +4,16 @@
 
 part of js_ast;
 
-typedef String Renamer(Name name);
-
 class JavaScriptPrintingOptions {
   final bool shouldCompressOutput;
   final bool minifyLocalVariables;
   final bool preferSemicolonToNewlineInMinifiedOutput;
-  final Renamer renamerForNames;
 
-  const JavaScriptPrintingOptions(
-      {this.shouldCompressOutput: false,
-      this.minifyLocalVariables: false,
-      this.preferSemicolonToNewlineInMinifiedOutput: false,
-      this.renamerForNames: identityRenamer});
-
-  static String identityRenamer(Name name) => name.name;
+  const JavaScriptPrintingOptions({
+    this.shouldCompressOutput: false,
+    this.minifyLocalVariables: false,
+    this.preferSemicolonToNewlineInMinifiedOutput: false,
+  });
 }
 
 /// An environment in which JavaScript printing is done.  Provides emitting of
@@ -1148,7 +1143,7 @@
 
   @override
   visitName(Name node) {
-    out(options.renamerForNames(node));
+    out(node.name);
   }
 
   @override
diff --git a/pkg/js_runtime/lib/shared/embedded_names.dart b/pkg/js_runtime/lib/shared/embedded_names.dart
index 9538239..e2dd66d 100644
--- a/pkg/js_runtime/lib/shared/embedded_names.dart
+++ b/pkg/js_runtime/lib/shared/embedded_names.dart
@@ -218,6 +218,9 @@
   /// String representation of the type of the object class.
   OBJECT_CLASS_TYPE_NAME,
 
+  /// String representation of the type of the List class.
+  LIST_CLASS_TYPE_NAME,
+
   /// Property name for Rti._as field.
   RTI_FIELD_AS,
 
diff --git a/pkg/kernel/binary.md b/pkg/kernel/binary.md
index 6322384..3007964 100644
--- a/pkg/kernel/binary.md
+++ b/pkg/kernel/binary.md
@@ -36,7 +36,7 @@
 
 type UInt14 extends UInt {
   Byte byte1(10xxxxxx); // most significant byte, discard the high bit
-  Byte byte2(xxxxxxxx); // least signficant byte
+  Byte byte2(xxxxxxxx); // least significant byte
 }
 
 type UInt30 extends UInt {
diff --git a/pkg/scrape/README.md b/pkg/scrape/README.md
index 58b0cda..384b2fe 100644
--- a/pkg/scrape/README.md
+++ b/pkg/scrape/README.md
@@ -63,7 +63,7 @@
 analysis:
 
 *   `addHistogram()` registers a new named histogram. This is the main way you
-    count occurences of datapoints you care about in the code you are analyzing.
+    count occurrences of datapoints you care about in the code you are analyzing.
     Each histogram is a named collection of datapoints. When the analysis
     completes, scrape prints out each histogram, buckets the datapoints, and
     shows how many of each datapoint occurred.
diff --git a/pkg/test_runner/lib/src/static_error.dart b/pkg/test_runner/lib/src/static_error.dart
index 8252dc5..bf3571a 100644
--- a/pkg/test_runner/lib/src/static_error.dart
+++ b/pkg/test_runner/lib/src/static_error.dart
@@ -413,8 +413,8 @@
       }
 
       if (actual.length != null && length != actual.length) {
-        expectedMismatches.add("length $column");
-        actualMismatches.add("length ${actual.column}");
+        expectedMismatches.add("length $length");
+        actualMismatches.add("length ${actual.length}");
       }
     }
 
diff --git a/pkg/test_runner/test/static_error_test.dart b/pkg/test_runner/test/static_error_test.dart
index 285e41d..e716fd5 100644
--- a/pkg/test_runner/test/static_error_test.dart
+++ b/pkg/test_runner/test/static_error_test.dart
@@ -121,7 +121,7 @@
   Expected column 2 but was column 9.
 
 - Wrong error location line 2, column 2, length 3: ERR.B
-  Expected length 2 but was length 2.
+  Expected length 3 but was length 9.
 
 - Wrong message at line 3, column 2, length 3: ERR.Z
   Expected: ERR.C""");
diff --git a/pkg/vm/lib/transformations/ffi_definitions.dart b/pkg/vm/lib/transformations/ffi_definitions.dart
index 3ac5988..4655978 100644
--- a/pkg/vm/lib/transformations/ffi_definitions.dart
+++ b/pkg/vm/lib/transformations/ffi_definitions.dart
@@ -45,7 +45,7 @@
 ///   @Double()
 ///   double y;
 ///
-///   Coord next;
+///   Pointer<Coord> next;
 /// }
 ///
 /// Output:
@@ -58,10 +58,10 @@
 ///   set y(double v) => ...;
 ///   double get y => ...;
 ///
-///   set next(Coordinate v) => ...;
-///   Coordinate get next => ...;
+///   set next(Pointer<Coord> v) => ...;
+///   Pointer<Coord> get next => ...;
 ///
-///   static final int #sizeOf = 24;
+///   static int get #sizeOf => (const [24, 20, 24])[_abi()];
 /// }
 void transformLibraries(
     Component component,
@@ -739,7 +739,7 @@
   }
 
   /// Sample output:
-  /// final int #sizeOf = [24,24,16][_abi()];
+  /// int get #sizeOf => (const [24,24,16])[_abi()];
   ///
   /// If sizes are not supplied still emits a field so that the use site
   /// transformer can still rewrite to it.
@@ -748,17 +748,26 @@
     if (sizes == null) {
       sizes = Map.fromEntries(Abi.values.map((abi) => MapEntry(abi, 0)));
     }
-    var name = Name("#sizeOf");
-    var getterReference = indexedClass?.lookupGetterReference(name);
-    final Field sizeOf = Field.immutable(name,
-        isStatic: true,
-        isFinal: true,
-        initializer: runtimeBranchOnLayout(sizes),
-        type: InterfaceType(intClass, Nullability.legacy),
+    final name = Name("#sizeOf");
+    final getterReference = indexedClass?.lookupGetterReference(name);
+
+    final Procedure getter = Procedure(
+        name,
+        ProcedureKind.Getter,
+        FunctionNode(ReturnStatement(runtimeBranchOnLayout(sizes)),
+            returnType: InterfaceType(intClass, Nullability.legacy)),
         fileUri: compound.fileUri,
-        getterReference: getterReference)
-      ..fileOffset = compound.fileOffset;
-    compound.addField(sizeOf);
+        reference: getterReference,
+        isStatic: true)
+      ..fileOffset = compound.fileOffset
+      ..isNonNullableByDefault = true
+      ..addAnnotation(ConstantExpression(InstanceConstant(pragmaClass.reference,
+          /*type_arguments=*/ [], {
+        pragmaName.getterReference: StringConstant("vm:prefer-inline"),
+        pragmaOptions.getterReference: NullConstant(),
+      })));
+
+    compound.addProcedure(getter);
   }
 
   NativeType _getFieldType(Class c) {
diff --git a/pkg/vm/lib/transformations/ffi_use_sites.dart b/pkg/vm/lib/transformations/ffi_use_sites.dart
index 24e4b89..d1640a2 100644
--- a/pkg/vm/lib/transformations/ffi_use_sites.dart
+++ b/pkg/vm/lib/transformations/ffi_use_sites.dart
@@ -384,9 +384,9 @@
     final NativeType nt = getType(nativeClass);
     if (nt == null) {
       // User-defined compounds.
-      Field sizeOfField = nativeClass.fields
-          .firstWhere((field) => field.name == Name('#sizeOf'));
-      return StaticGet(sizeOfField);
+      final Procedure sizeOfGetter = nativeClass.procedures
+          .firstWhere((function) => function.name == Name('#sizeOf'));
+      return StaticGet(sizeOfGetter);
     }
     final int size = nativeTypeSizes[nt.index];
     if (size == WORD_SIZE) {
diff --git a/runtime/docs/gc.md b/runtime/docs/gc.md
index 1780c11..38bda88 100644
--- a/runtime/docs/gc.md
+++ b/runtime/docs/gc.md
@@ -4,13 +4,13 @@
 
 ## Object representation
 
-Object pointers refer either to immediate objects or heap objects, distinguished by a tag in the low bits of the pointer. The Dart VM has only one kind of immediate object, Smis (small integers), whose pointers have a tag of 0. Heap objects have a pointer tag of 1. The upper bits of a Smi pointer are its value, and the upper bits of a heap object pointer are the most signficant bits of its address (the least significant bit is always 0 because heap objects always have greater than 2-byte alignment).
+Object pointers refer either to immediate objects or heap objects, distinguished by a tag in the low bits of the pointer. The Dart VM has only one kind of immediate object, Smis (small integers), whose pointers have a tag of 0. Heap objects have a pointer tag of 1. The upper bits of a Smi pointer are its value, and the upper bits of a heap object pointer are the most significant bits of its address (the least significant bit is always 0 because heap objects always have greater than 2-byte alignment).
 
 A tag of 0 allows many operations to be performed on Smis without untagging and retagging. It also allows hiding aligned addresses to the C heap from the GC.
 
 A tag of 1 has no penalty on heap object access because removing the tag can be folded into the offset used by load and store instructions.
 
-Heap objects are always allocated in double-word increments. Objects in old-space are kept at double-word alignment (address % double-word == 0), and objects in new-space are kept offset from double-word alignment (address % double-word == word). This allows checking an object's age without comparing to a boundry address, avoiding restrictions on heap placement and avoiding loading the boundry from thread-local storage. Additionally, the scavenger can quickly skip over both immediates and old objects with a single branch.
+Heap objects are always allocated in double-word increments. Objects in old-space are kept at double-word alignment (address % double-word == 0), and objects in new-space are kept offset from double-word alignment (address % double-word == word). This allows checking an object's age without comparing to a boundary address, avoiding restrictions on heap placement and avoiding loading the boundary from thread-local storage. Additionally, the scavenger can quickly skip over both immediates and old objects with a single branch.
 
 | Pointer    | Referent                                |
 | ---        | ---                                     |
@@ -29,7 +29,7 @@
 
 A GC is said to be "precise" if when a collection happens it knows exactly what is and is not a pointer into the heap. For example, in compiled Dart code the VM tracks which stack slots contain object pointers and which contain unboxed values. This is opposed to a "conservative" collector that considers any pointer-sized value might be a pointer into the heap, though it might just be an unboxed value.
 
-In a "moving" GC, the address of an object might change, requiring pointers to that object to be updated. In the Dart VM, objects can move during a scavenge or a compaction. A moving GC must be a precise GC: if a conservative GC updates a value that is not guarenteed to be a pointer, it will corrupt execution when the value was not in fact a pointer.
+In a "moving" GC, the address of an object might change, requiring pointers to that object to be updated. In the Dart VM, objects can move during a scavenge or a compaction. A moving GC must be a precise GC: if a conservative GC updates a value that is not guaranteed to be a pointer, it will corrupt execution when the value was not in fact a pointer.
 
 The VM does not know which stack slots, globals or object fields in foreign languages contain pointers into the Dart heap, including the VM's own runtime implemented in C++. For the GC to remain precise, foreign languages reference Dart objects indirectly through "handles". Handles can be thought of as pointers to pointers. They are allocated from the VM, and the GC will visit (and possibly update) the pointers contained in handles during collections.
 
@@ -154,7 +154,7 @@
 
 New-space objects and roots are only visited during a safepoint, and safepoints establish synchronization.
 
-When the mutator's mark block becomes full, it transfered to the marker by an acquire-release operation, so the marker will see the stores into the block.
+When the mutator's mark block becomes full, it transferred to the marker by an acquire-release operation, so the marker will see the stores into the block.
 
 ## Write barrier elimination
 
diff --git a/runtime/tests/concurrency/run_stress_test_shards.dart b/runtime/tests/concurrency/run_stress_test_shards.dart
index 3157880..d2cd67f 100644
--- a/runtime/tests/concurrency/run_stress_test_shards.dart
+++ b/runtime/tests/concurrency/run_stress_test_shards.dart
@@ -2,6 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'dart:async';
 import 'dart:convert';
 import 'dart:io';
 import 'dart:io' as io;
diff --git a/runtime/vm/compiler/backend/il_arm64.cc b/runtime/vm/compiler/backend/il_arm64.cc
index d5a6df9..da3b618 100644
--- a/runtime/vm/compiler/backend/il_arm64.cc
+++ b/runtime/vm/compiler/backend/il_arm64.cc
@@ -194,7 +194,8 @@
       compiler::Address(dest_reg, element_size_, compiler::Address::PostIndex);
 
   // Untag length and skip copy if length is zero.
-  __ adds(length_reg, ZR, compiler::Operand(length_reg, ASR, 1));
+  __ adds(length_reg, ZR, compiler::Operand(length_reg, ASR, 1),
+          compiler::kObjectBytes);
   __ b(&done, ZERO);
 
   __ Bind(&loop);
@@ -268,9 +269,16 @@
   }
   intptr_t shift = Utils::ShiftForPowerOfTwo(element_size_) - 1;
   if (shift < 0) {
+#if defined(DART_COMPRESSED_POINTERS)
+    __ sxtw(start_reg, start_reg);
+#endif
     __ add(array_reg, array_reg, compiler::Operand(start_reg, ASR, -shift));
   } else {
+#if !defined(DART_COMPRESSED_POINTERS)
     __ add(array_reg, array_reg, compiler::Operand(start_reg, LSL, shift));
+#else
+    __ add(array_reg, array_reg, compiler::Operand(start_reg, SXTW, shift));
+#endif
   }
 }
 
diff --git a/runtime/vm/compiler/backend/il_x64.cc b/runtime/vm/compiler/backend/il_x64.cc
index 01e23d2..0ca20ae 100644
--- a/runtime/vm/compiler/backend/il_x64.cc
+++ b/runtime/vm/compiler/backend/il_x64.cc
@@ -167,6 +167,10 @@
                           dest_start_reg);
   if (element_size_ <= 8) {
     __ SmiUntag(RCX);
+  } else {
+#if defined(DART_COMPRESSED_POINTERS)
+    __ orl(RCX, RCX);
+#endif
   }
   switch (element_size_) {
     case 1:
@@ -233,15 +237,29 @@
       scale = TIMES_1;
       break;
     case 2:
+#if defined(DART_COMPRESSED_POINTERS)
+      // Clear garbage upper bits, as no form of lea will ignore them. Assume
+      // start is positive to use the shorter orl over the longer movsxd.
+      __ orl(start_reg, start_reg);
+#endif
       scale = TIMES_1;
       break;
     case 4:
+#if defined(DART_COMPRESSED_POINTERS)
+      __ orl(start_reg, start_reg);
+#endif
       scale = TIMES_2;
       break;
     case 8:
+#if defined(DART_COMPRESSED_POINTERS)
+      __ orl(start_reg, start_reg);
+#endif
       scale = TIMES_4;
       break;
     case 16:
+#if defined(DART_COMPRESSED_POINTERS)
+      __ orl(start_reg, start_reg);
+#endif
       scale = TIMES_8;
       break;
     default:
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 6a402e1..da706c5 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -18838,7 +18838,7 @@
   bool has_pointers() const { return has_pointers_; }
 
   void VisitPointers(ObjectPtr* first, ObjectPtr* last) {
-    if (first != last) {
+    if (last >= first) {
       has_pointers_ = true;
     }
   }
@@ -18846,7 +18846,7 @@
   void VisitCompressedPointers(uword heap_base,
                                CompressedObjectPtr* first,
                                CompressedObjectPtr* last) {
-    if (first != last) {
+    if (last >= first) {
       has_pointers_ = true;
     }
   }
@@ -18882,8 +18882,9 @@
   } else {
 #if defined(DEBUG)
     // Make sure that we are not missing any fields.
-    CheckForPointers has_pointers(IsolateGroup::Current());
-    this->ptr()->untag()->VisitPointers(&has_pointers);
+    IsolateGroup* group = IsolateGroup::Current();
+    CheckForPointers has_pointers(group);
+    this->ptr()->untag()->VisitPointersPrecise(group, &has_pointers);
     ASSERT(!has_pointers.has_pointers());
 #endif  // DEBUG
   }
diff --git a/runtime/vm/raw_object.cc b/runtime/vm/raw_object.cc
index 1cdaff0..410779e 100644
--- a/runtime/vm/raw_object.cc
+++ b/runtime/vm/raw_object.cc
@@ -387,7 +387,7 @@
 void UntaggedObject::VisitPointersPrecise(IsolateGroup* isolate_group,
                                           ObjectPointerVisitor* visitor) {
   intptr_t class_id = GetClassId();
-  if (class_id < kNumPredefinedCids) {
+  if ((class_id != kInstanceCid) && (class_id < kNumPredefinedCids)) {
     VisitPointersPredefined(visitor, class_id);
     return;
   }
diff --git a/runtime/vm/service/service.md b/runtime/vm/service/service.md
index 3000c42..bfbf657 100644
--- a/runtime/vm/service/service.md
+++ b/runtime/vm/service/service.md
@@ -3806,7 +3806,7 @@
 
 ```
 class Timeline extends Response {
-  // A list of timeline events. No order is guarenteed for these events; in particular, these events may be unordered with respect to their timestamps.
+  // A list of timeline events. No order is guaranteed for these events; in particular, these events may be unordered with respect to their timestamps.
   TimelineEvent[] traceEvents;
 
   // The start of the period of time in which traceEvents were collected.
diff --git a/sdk/lib/_internal/js_runtime/lib/rti.dart b/sdk/lib/_internal/js_runtime/lib/rti.dart
index 53e7de9..5264f8a 100644
--- a/sdk/lib/_internal/js_runtime/lib/rti.dart
+++ b/sdk/lib/_internal/js_runtime/lib/rti.dart
@@ -875,6 +875,10 @@
       String propertyName =
           '${JS_GET_NAME(JsGetName.OPERATOR_IS_PREFIX)}${name}';
       Rti._setSpecializedTestResource(testRti, propertyName);
+      if (name == JS_GET_NAME(JsGetName.LIST_CLASS_TYPE_NAME)) {
+        return _finishIsFn(
+            testRti, object, RAW_DART_FUNCTION_REF(_isListTestViaProperty));
+      }
       return _finishIsFn(
           testRti, object, RAW_DART_FUNCTION_REF(_isTestViaProperty));
     }
@@ -987,6 +991,27 @@
   return JS('bool', '!!#[#]', interceptor, tag);
 }
 
+/// Specialized version of [_isTestViaProperty] with faster path for Arrays.
+/// Called from generated code.
+bool _isListTestViaProperty(Object? object) {
+  // This static method is installed on an Rti object as a JavaScript instance
+  // method. The Rti object is 'this'.
+  Rti testRti = _Utils.asRti(JS('', 'this'));
+  if (object == null) return _nullIs(testRti);
+  if (_Utils.isArray(object)) return true;
+  var tag = Rti._getSpecializedTestResource(testRti);
+
+  // This test is redundant with getInterceptor below, but getInterceptor does
+  // the tests in the wrong order for most tags, so it is usually faster to have
+  // this check.
+  if (_isDartObject(object)) {
+    return JS('bool', '!!#[#]', object, tag);
+  }
+
+  var interceptor = getInterceptor(object);
+  return JS('bool', '!!#[#]', interceptor, tag);
+}
+
 /// General unspecialized 'as' check that works for any type.
 /// Called from generated code.
 Object? _generalAsCheckImplementation(Object? object) {
diff --git a/sdk/lib/_internal/js_runtime/lib/shared/embedded_names.dart b/sdk/lib/_internal/js_runtime/lib/shared/embedded_names.dart
index 9538239..e2dd66d 100644
--- a/sdk/lib/_internal/js_runtime/lib/shared/embedded_names.dart
+++ b/sdk/lib/_internal/js_runtime/lib/shared/embedded_names.dart
@@ -218,6 +218,9 @@
   /// String representation of the type of the object class.
   OBJECT_CLASS_TYPE_NAME,
 
+  /// String representation of the type of the List class.
+  LIST_CLASS_TYPE_NAME,
+
   /// Property name for Rti._as field.
   RTI_FIELD_AS,
 
diff --git a/tests/language/function_subtype/null_test.dart b/tests/language/function_subtype/null.dart
similarity index 100%
rename from tests/language/function_subtype/null_test.dart
rename to tests/language/function_subtype/null.dart
diff --git a/tests/language/identifier/known_prefix_error_test.dart b/tests/language/identifier/known_prefix_error_test.dart
index 458f6e0..06ec097 100644
--- a/tests/language/identifier/known_prefix_error_test.dart
+++ b/tests/language/identifier/known_prefix_error_test.dart
@@ -15,10 +15,6 @@
 import 'built_in_prefix_library_async.dart' as async;
 import 'built_in_prefix_library_await.dart' as await;
 import 'built_in_prefix_library_hide.dart' as hide;
-import 'built_in_prefix_library_library.dart' as library;
-//                                               ^^^^^^^
-// [analyzer] COMPILE_TIME_ERROR.BUILT_IN_IDENTIFIER_IN_DECLARATION
-// [cfe] Can't use 'library' as a name here.
 import 'built_in_prefix_library_of.dart' as of;
 import 'built_in_prefix_library_on.dart' as on;
 import 'built_in_prefix_library_show.dart' as show;
@@ -26,44 +22,52 @@
 import 'built_in_prefix_library_yield.dart' as yield;
 
 async<dynamic> _async = new async.A();
-// [error line 28, column 1, length 5]
+// [error line 24, column 1, length 5]
 // [analyzer] COMPILE_TIME_ERROR.NOT_A_TYPE
 // [cfe] 'async' isn't a type.
+// [error line 24, column 1]
 // [cfe] Expected 0 type arguments.
 await<dynamic> _await = new await.A();
-// [error line 33, column 1, length 5]
+// [error line 30, column 1, length 5]
 // [analyzer] COMPILE_TIME_ERROR.NOT_A_TYPE
 // [cfe] 'await' isn't a type.
+// [error line 30, column 1]
 // [cfe] Expected 0 type arguments.
 hide<dynamic> _hide = new hide.A();
-// [error line 38, column 1, length 4]
+// [error line 36, column 1, length 4]
 // [analyzer] COMPILE_TIME_ERROR.NOT_A_TYPE
 // [cfe] 'hide' isn't a type.
+// [error line 36, column 1]
 // [cfe] Expected 0 type arguments.
 of<dynamic> _of = new of.A();
-// [error line 43, column 1, length 2]
+// [error line 42, column 1, length 2]
 // [analyzer] COMPILE_TIME_ERROR.NOT_A_TYPE
 // [cfe] 'of' isn't a type.
+// [error line 42, column 1]
 // [cfe] Expected 0 type arguments.
 on<dynamic> _on = new on.A();
 // [error line 48, column 1, length 2]
 // [analyzer] COMPILE_TIME_ERROR.NOT_A_TYPE
 // [cfe] 'on' isn't a type.
+// [error line 48, column 1]
 // [cfe] Expected 0 type arguments.
 show<dynamic> _show = new show.A();
-// [error line 53, column 1, length 4]
+// [error line 54, column 1, length 4]
 // [analyzer] COMPILE_TIME_ERROR.NOT_A_TYPE
 // [cfe] 'show' isn't a type.
+// [error line 54, column 1]
 // [cfe] Expected 0 type arguments.
 sync<dynamic> _sync = new sync.A();
-// [error line 58, column 1, length 4]
+// [error line 60, column 1, length 4]
 // [analyzer] COMPILE_TIME_ERROR.NOT_A_TYPE
 // [cfe] 'sync' isn't a type.
+// [error line 60, column 1]
 // [cfe] Expected 0 type arguments.
 yield<dynamic> _yield = new yield.A();
-// [error line 63, column 1, length 5]
+// [error line 66, column 1, length 5]
 // [analyzer] COMPILE_TIME_ERROR.NOT_A_TYPE
 // [cfe] 'yield' isn't a type.
+// [error line 66, column 1]
 // [cfe] Expected 0 type arguments.
 
 async.B<async> _B_async = new async.B();
@@ -103,41 +107,49 @@
 //      ^^^^^
 // [analyzer] COMPILE_TIME_ERROR.NON_TYPE_AS_TYPE_ARGUMENT
 // [cfe] 'async' isn't a type.
+//      ^
 // [cfe] Expected 0 type arguments.
 await.B<await<dynamic>> _B2_await = new await.B();
 //      ^^^^^
 // [analyzer] COMPILE_TIME_ERROR.NON_TYPE_AS_TYPE_ARGUMENT
 // [cfe] 'await' isn't a type.
+//      ^
 // [cfe] Expected 0 type arguments.
 hide.B<hide<dynamic>> _B2_hide = new hide.B();
 //     ^^^^
 // [analyzer] COMPILE_TIME_ERROR.NON_TYPE_AS_TYPE_ARGUMENT
 // [cfe] 'hide' isn't a type.
+//     ^
 // [cfe] Expected 0 type arguments.
 of.B<of<dynamic>> _B2_of = new of.B();
 //   ^^
 // [analyzer] COMPILE_TIME_ERROR.NON_TYPE_AS_TYPE_ARGUMENT
 // [cfe] 'of' isn't a type.
+//   ^
 // [cfe] Expected 0 type arguments.
 on.B<on<dynamic>> _B2_on = new on.B();
 //   ^^
 // [analyzer] COMPILE_TIME_ERROR.NON_TYPE_AS_TYPE_ARGUMENT
 // [cfe] 'on' isn't a type.
+//   ^
 // [cfe] Expected 0 type arguments.
 show.B<show<dynamic>> _B2_show = new show.B();
 //     ^^^^
 // [analyzer] COMPILE_TIME_ERROR.NON_TYPE_AS_TYPE_ARGUMENT
 // [cfe] 'show' isn't a type.
+//     ^
 // [cfe] Expected 0 type arguments.
 sync.B<sync<dynamic>> _B2_sync = new sync.B();
 //     ^^^^
 // [analyzer] COMPILE_TIME_ERROR.NON_TYPE_AS_TYPE_ARGUMENT
 // [cfe] 'sync' isn't a type.
+//     ^
 // [cfe] Expected 0 type arguments.
 yield.B<yield<dynamic>> _B2_yield = new yield.B();
 //      ^^^^^
 // [analyzer] COMPILE_TIME_ERROR.NON_TYPE_AS_TYPE_ARGUMENT
 // [cfe] 'yield' isn't a type.
+//      ^
 // [cfe] Expected 0 type arguments.
 
 main() {
diff --git a/tests/language/library/a.dart b/tests/language/library/a.dart
new file mode 100644
index 0000000..95f855e
--- /dev/null
+++ b/tests/language/library/a.dart
@@ -0,0 +1,10 @@
+// Copyright (c) 2011, 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.
+//
+
+library libraryA.dart;
+
+import "c.dart";
+
+var fooA = fooC;
diff --git a/tests/language/library/b.dart b/tests/language/library/b.dart
new file mode 100644
index 0000000..2a36a64
--- /dev/null
+++ b/tests/language/library/b.dart
@@ -0,0 +1,10 @@
+// Copyright (c) 2011, 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.
+//
+
+library libraryB.dart;
+
+import "c.dart";
+
+var fooB = fooC;
diff --git a/tests/language/library/c.dart b/tests/language/library/c.dart
new file mode 100644
index 0000000..fcf3555
--- /dev/null
+++ b/tests/language/library/c.dart
@@ -0,0 +1,8 @@
+// Copyright (c) 2011, 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.
+//
+
+library libraryC.dart;
+
+var fooC = 10;
diff --git a/tests/language/library/d.dart b/tests/language/library/d.dart
new file mode 100644
index 0000000..054c033
--- /dev/null
+++ b/tests/language/library/d.dart
@@ -0,0 +1,10 @@
+// Copyright (c) 2011, 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.
+//
+
+library libraryD.dart;
+
+import "f.dart";
+
+var fooD = fooC;
diff --git a/tests/language/library/e.dart b/tests/language/library/e.dart
new file mode 100644
index 0000000..0332e42
--- /dev/null
+++ b/tests/language/library/e.dart
@@ -0,0 +1,11 @@
+// Copyright (c) 2011, 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.
+//
+
+library libraryE.dart;
+
+import "c.dart";
+import "f.dart";
+
+var fooE = 0;
diff --git a/tests/language/library/f.dart b/tests/language/library/f.dart
new file mode 100644
index 0000000..f73e3cb
--- /dev/null
+++ b/tests/language/library/f.dart
@@ -0,0 +1,8 @@
+// Copyright (c) 2011, 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.
+//
+
+library libraryF.dart;
+
+var fooC = 10;
diff --git a/tests/language/library/library3.dart b/tests/language/library/library3.dart
new file mode 100644
index 0000000..625f568
--- /dev/null
+++ b/tests/language/library/library3.dart
@@ -0,0 +1,8 @@
+// Copyright (c) 2011, 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.
+//
+
+library library3.dart;
+
+import "../library2.dart"; // defines "foo" and "foo1".
diff --git a/tests/language/library/library4.dart b/tests/language/library/library4.dart
new file mode 100644
index 0000000..25af011
--- /dev/null
+++ b/tests/language/library/library4.dart
@@ -0,0 +1,11 @@
+// Copyright (c) 2011, 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.
+//
+
+library library4.dart;
+
+import "../library2.dart"; // defines "foo" and "foo1".
+
+var foo;
+var foo1 = 0;
diff --git a/tests/language/library/library6_test.dart b/tests/language/library/library6.dart
similarity index 100%
rename from tests/language/library/library6_test.dart
rename to tests/language/library/library6.dart
diff --git a/tests/language/nnbd/static_errors/implicit_downcasts_test.dart b/tests/language/nnbd/static_errors/implicit_downcasts.dart
similarity index 100%
rename from tests/language/nnbd/static_errors/implicit_downcasts_test.dart
rename to tests/language/nnbd/static_errors/implicit_downcasts.dart
diff --git a/tests/language/nnbd/static_errors/late_final_without_initializer_test.dart b/tests/language/nnbd/static_errors/late_final_without_initializer.dart
similarity index 99%
rename from tests/language/nnbd/static_errors/late_final_without_initializer_test.dart
rename to tests/language/nnbd/static_errors/late_final_without_initializer.dart
index 57c0485..9938078 100644
--- a/tests/language/nnbd/static_errors/late_final_without_initializer_test.dart
+++ b/tests/language/nnbd/static_errors/late_final_without_initializer.dart
@@ -2,6 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+
 // Test that it is not a compile time error for a `final` variable to not have
 // an initializer if that variable is declared as `late`.
 import 'package:expect/expect.dart';
diff --git a/tests/language/nnbd/static_errors/local_function_inference_test.dart b/tests/language/nnbd/static_errors/local_function_inference.dart
similarity index 92%
rename from tests/language/nnbd/static_errors/local_function_inference_test.dart
rename to tests/language/nnbd/static_errors/local_function_inference.dart
index a49ff14..af81145 100644
--- a/tests/language/nnbd/static_errors/local_function_inference_test.dart
+++ b/tests/language/nnbd/static_errors/local_function_inference.dart
@@ -24,6 +24,6 @@
     }
   }
   //  ^
-  // [analyzer] unspecified
-  // [cfe] unspecified
+  // [analyzer] undefined
+  // [cfe] undefined
 }
diff --git a/tests/language/nnbd/syntax/late_modifier_bug_39658_test.dart b/tests/language/nnbd/syntax/late_modifier_bug_39658.dart
similarity index 100%
rename from tests/language/nnbd/syntax/late_modifier_bug_39658_test.dart
rename to tests/language/nnbd/syntax/late_modifier_bug_39658.dart
diff --git a/tests/language/nonfunction_type_aliases/mixed/infer_aliased_factory_invocation_07_test.dart b/tests/language/nonfunction_type_aliases/mixed/infer_aliased_factory_invocation_07_test.dart
index 6c6a7ca..126ca63 100644
--- a/tests/language/nonfunction_type_aliases/mixed/infer_aliased_factory_invocation_07_test.dart
+++ b/tests/language/nonfunction_type_aliases/mixed/infer_aliased_factory_invocation_07_test.dart
@@ -5,7 +5,7 @@
 // Requirements=nnbd-weak
 
 
-import 'infer_aliased_factory_invocation_07_lib.dart';
+import 'infer_aliased_factory_invocation_06_lib.dart';
 
 Type typeOf<X>() => X;
 
diff --git a/tests/language/nonfunction_type_aliases/private_names/private_name_duplicate_interface_error_test.dart b/tests/language/nonfunction_type_aliases/private_names/private_name_duplicate_interface_error_test.dart
index 9939ad3..04fe02b 100644
--- a/tests/language/nonfunction_type_aliases/private_names/private_name_duplicate_interface_error_test.dart
+++ b/tests/language/nonfunction_type_aliases/private_names/private_name_duplicate_interface_error_test.dart
@@ -40,7 +40,7 @@
 /// Test that having a private generic class in the super-interface graph
 /// twice with two different generic instantiations is an error.
 class A4 extends A3 implements PublicGenericClass<String> {
-// [error line 40, column 1, length 411]
+// [error line 42, column 7, length 2]
 // [analyzer] COMPILE_TIME_ERROR.CONFLICTING_GENERIC_INTERFACES
 //    ^
 // [cfe] 'A4' can't implement both '_PrivateGenericClass<int>' and '_PrivateGenericClass<String>'
@@ -53,7 +53,7 @@
 /// Test that having a private generic class in the implements clause twice with
 /// two different generic instantiations is an error.
 class A6 implements PublicGenericClass<int>, PublicGenericClass<String> {
-// [error line 53, column 1, length 546]
+// [error line 55, column 7, length 2]
 // [analyzer] COMPILE_TIME_ERROR.CONFLICTING_GENERIC_INTERFACES
 //    ^
 // [cfe] 'A6' can't implement both '_PrivateGenericClass<int>' and '_PrivateGenericClass<String>'
diff --git a/tests/language/nosuchmethod_forwarding/abstract_override_with_different_type_test.dart b/tests/language/nosuchmethod_forwarding/abstract_override_with_different_type.dart
similarity index 100%
rename from tests/language/nosuchmethod_forwarding/abstract_override_with_different_type_test.dart
rename to tests/language/nosuchmethod_forwarding/abstract_override_with_different_type.dart
diff --git a/tests/language/prefix/new_test.dart b/tests/language/prefix/new_test.dart
index 4e13b18..23c7834 100644
--- a/tests/language/prefix/new_test.dart
+++ b/tests/language/prefix/new_test.dart
@@ -5,7 +5,7 @@
 library PrefixTest;
 
 import "package:expect/expect.dart";
-import "new_test1.dart";
+import "test1.dart";
 
 main() {
   Expect.equals(Prefix.getSource(), Prefix.getImport() + 1);
diff --git a/tests/language/prefix/new_test1.dart b/tests/language/prefix/new_test1.dart
index 812c604..106de80 100644
--- a/tests/language/prefix/new_test1.dart
+++ b/tests/language/prefix/new_test1.dart
@@ -4,7 +4,7 @@
 
 library PrefixTest1;
 
-import "new_test2.dart" as test2;
+import "test2.dart" as test2;
 
 class Prefix {
   static const int foo = 43;
diff --git a/tests/language/regress/regress22976_test.dart b/tests/language/regress/regress22976_test.dart
index de83e9b..3371f13 100644
--- a/tests/language/regress/regress22976_test.dart
+++ b/tests/language/regress/regress22976_test.dart
@@ -9,7 +9,7 @@
 class B<T> implements A<T> {}
 
 class C<S, T> implements B<S>, A<T> {}
-// [error line 11, column 1, length 38]
+// [error line 11, column 7, length 1]
 // [analyzer] COMPILE_TIME_ERROR.CONFLICTING_GENERIC_INTERFACES
 //    ^
 // [cfe] 'C' can't implement both 'A<S>' and 'A<T>'
diff --git a/tests/language/regress/regress34091_test.dart b/tests/language/regress/regress34091.dart
similarity index 100%
rename from tests/language/regress/regress34091_test.dart
rename to tests/language/regress/regress34091.dart
diff --git a/tests/language/script/source.dart b/tests/language/script/source.dart
new file mode 100644
index 0000000..44f0d34
--- /dev/null
+++ b/tests/language/script/source.dart
@@ -0,0 +1,7 @@
+// Copyright (c) 2011, 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.
+
+// A perfectly legal dart source file for use with script and library tests.
+
+const int script_source = 1;
diff --git a/tests/language/string/overflow_test.dart b/tests/language/string/overflow.dart
similarity index 83%
rename from tests/language/string/overflow_test.dart
rename to tests/language/string/overflow.dart
index f93428a..8b01e19 100644
--- a/tests/language/string/overflow_test.dart
+++ b/tests/language/string/overflow.dart
@@ -9,15 +9,13 @@
 
 main() {
   String a = "a";
+  for (; a.length < 256 * 1024 * 1024;) a = a + a;
 
   var exception_thrown = false;
   try {
-    while (true) {
-      a = "$a$a";
-    }
+    var concat = "$a$a$a$a$a$a$a$a";
   } on OutOfMemoryError catch (exc) {
     exception_thrown = true;
   }
   Expect.isTrue(exception_thrown);
-  Expect.isTrue(a.startsWith('aaaaa') && a.length > 1024);
 }
diff --git a/tests/language/top_level/file3.dart b/tests/language/top_level/file3.dart
new file mode 100644
index 0000000..a42c558
--- /dev/null
+++ b/tests/language/top_level/file3.dart
@@ -0,0 +1,7 @@
+// Copyright (c) 2011, 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.
+
+main() {
+  Expect.equals(42, prefix.topLevelVar);
+}
diff --git a/tests/language/unsorted/unevaluated_field_test.dart b/tests/language/unsorted/unevaluated_field.dart
similarity index 91%
rename from tests/language/unsorted/unevaluated_field_test.dart
rename to tests/language/unsorted/unevaluated_field.dart
index f33fbb5..5c701db 100644
--- a/tests/language/unsorted/unevaluated_field_test.dart
+++ b/tests/language/unsorted/unevaluated_field.dart
@@ -6,12 +6,12 @@
 
 import "package:expect/expect.dart";
 
-const int? gx =
+const int gx =
     const bool.hasEnvironment("x") ? const int.fromEnvironment("x") : null;
 
 class A {
-  final int? x = gx;
-  final int? y =
+  final int x = gx;
+  final int y =
       const bool.hasEnvironment("y") ? const int.fromEnvironment("y") : null;
   const A();
 }
diff --git a/tests/language/vm/regression_38412_test.dart b/tests/language/vm/regression_38412.dart
similarity index 100%
rename from tests/language/vm/regression_38412_test.dart
rename to tests/language/vm/regression_38412.dart
diff --git a/tests/language_2/vm/regression_38436_test.dart b/tests/language/vm/regression_38436.dart
similarity index 98%
rename from tests/language_2/vm/regression_38436_test.dart
rename to tests/language/vm/regression_38436.dart
index bda53da..ea5fafd 100644
--- a/tests/language_2/vm/regression_38436_test.dart
+++ b/tests/language/vm/regression_38436.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// @dart = 2.9
-
 // VMOptions=--optimization_counter_threshold=1
 
 import "package:expect/expect.dart";
@@ -530,7 +528,8 @@
                                                 57: var4,
                                                 73: var7[-43],
                                                 38: var0
-                                              }).isNotEmpty ||
+                                              })
+                                                  .isNotEmpty ||
                                               ({
                                                 67: var4,
                                                 14: 'M\u{1f600}1HNbP',
@@ -538,7 +537,8 @@
                                                 85: 'uyq',
                                                 95: var7[(-(Int32x4.wwxw))],
                                                 33: ''
-                                              }).isNotEmpty))
+                                              })
+                                                  .isNotEmpty))
                                       : false)
                                   ? var2
                                   : (++var2))
@@ -557,7 +557,8 @@
                                   51: '-8ht',
                                   26: ('(2l3\u2665h' ?? var0),
                                   79: var4
-                                }).isNotEmpty
+                                })
+                                        .isNotEmpty
                                     ? var5[(var2 % loc0)]
                                     : var2) %
                                 ((!(NetworkInterface.listSupported))
@@ -1565,8 +1566,7 @@
 
 class X3 extends X1 {
   Map<int, String> fld3_0 = {
-    if (true)
-      if (false) 45: 'ynEn\u2665nG' else 70: 'c\u{1f600}mN4\u2665a',
+    if (true) if (false) 45: 'ynEn\u2665nG' else 70: 'c\u{1f600}mN4\u2665a',
     if (true) 30: '6\u2665P!Pbi',
     81: 't',
     82: '17fx#!',
@@ -1738,7 +1738,8 @@
                                             7: par3,
                                             69: Uri.decodeFull(
                                                 (foo1_3() + 'LX+'))
-                                          }).isEmpty)
+                                          })
+                                            .isEmpty)
                                     ? (~((13 | 64)))
                                     : (-(var2)))),
                             (par1--),
@@ -1793,7 +1794,8 @@
                     4: 'pUc(q',
                     15: 'K\u{1f600}hmdZ\u2665',
                     95: (var1 ? var4 : (var1 ? fld3_0[-45] : foo1_3()))
-                  }).isNotEmpty
+                  })
+                              .isNotEmpty
                           ? ((var1 ? var1 : (var1 ? var1 : foo3_0(var3))) ||
                               foo3_0(var3))
                           : (!(((false || true) ? var1 : false))))
@@ -1991,7 +1993,8 @@
                                   95: '\u{1f600}2tIYqE',
                                   43: (true ? 'baf-\u2665' : var4),
                                   30: var7[(-((-68 % ZLibOption.defaultLevel)))]
-                                })).isNotEmpty))
+                                }))
+                                  .isNotEmpty))
                             -13
                           else
                             (var1 ? (-((-(var5[56])))) : (var2--)),
@@ -2153,7 +2156,8 @@
                                           ? ((var2--) ?? fld3_2)
                                           : var5[(fld3_2--)])],
                                       52: '(('
-                                    }).isEmpty)))
+                                    })
+                                        .isEmpty)))
                                 ? fld3_0
                                 : {
                                     39: foo1_3(),
diff --git a/tests/language/vm/regression_38436_test.dart b/tests/language/vm/regression_38436_test.dart
deleted file mode 100644
index ca7a920..0000000
--- a/tests/language/vm/regression_38436_test.dart
+++ /dev/null
@@ -1,2359 +0,0 @@
-// Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// VMOptions=--optimization_counter_threshold=1
-
-import "package:expect/expect.dart";
-
-// Found by DartFuzzing: would sometimes crash on OSR
-// https://github.com/dart-lang/sdk/issues/38436
-
-// Note: When this test was migrated to null safety, changed several type
-// annotations to dynamic to fix the hundreds of null safe errors. That was a
-// less invasive change than adding `?` and `!` throughout the test.
-import 'dart:async';
-import 'dart:cli';
-import 'dart:collection';
-import 'dart:convert';
-import 'dart:core';
-import 'dart:io';
-import 'dart:isolate';
-import 'dart:math';
-import 'dart:typed_data';
-
-dynamic var0 = '';
-dynamic var1 = true;
-int var2 = -30;
-double var3 = 0.895077679110543;
-dynamic var4 = '';
-List<int> var5 = [55, -70];
-Set<int> var6 = {
-  1024,
-  for (int loc0 in [
-    79,
-    ...[23],
-    ...[90, -89, -24],
-    -90,
-    11,
-    -19,
-    -91
-  ])
-    -55,
-  67,
-  -80,
-  for (int loc0 = 0; loc0 < 29; loc0++) 20,
-  for (int loc0 = 0; loc0 < 24; loc0++) ...{23, -41},
-  ...{
-    -75,
-    128,
-    9223372034707292159,
-    -56,
-    -59,
-    for (int loc0 in {
-      -67,
-      for (int loc1 in [-27, -59, 31, 32, -66, -87]) -9223372036854775680,
-      85,
-      -45,
-      if (false) 70,
-      13,
-      43,
-      48
-    })
-      if (true) 63,
-    ...{-90, -24, -9223372036854743041, -9223372032559808383, 86},
-    -25
-  }
-};
-dynamic var7 = {
-  6: '',
-  ...{56: 'B\u2665pwO', 73: 'ZJDi\u{1f600}m'},
-  ...{73: ')', 14: '93Q'},
-  98: 'xA0jQL',
-  21: ')\u2665TOy',
-  for (int loc0 = 0; loc0 < 82; loc0++) 34: 'Q3\u2665#61',
-  ...{70: 'XXRXl3O', 56: '\u2665lda2Zy', 38: 'Dr#mtz', 6: 'nx'},
-  27: '('
-};
-
-Set<int> foo0() {
-  var3 += ((((var0 + var7[var5[88]])).isEmpty ? true : var1)
-      ? (var1 ? (var3 ?? var3) : var3)
-      : (var1 ? 0.24414824314186978 : var3));
-  var1 ??= true;
-  return {(var2--), Duration.secondsPerHour, var5[var2]};
-}
-
-Map<int, String> foo1(List<int> par1, bool par2) {
-  throw ((-(var3)) * (-(0.943305664017911)));
-}
-
-List<int> foo2(Set<int> par1, List<int> par2, dynamic par3) {
-  switch (-49) {
-    case 4149672951:
-      {
-        for (int loc0 in foo0()) {
-          var6 = var6;
-          try {
-            for (int loc1 = 0; loc1 < 70; loc1++) {
-              switch (((var1
-                      ? ((var1 ? var1 : true) ? Float32x4.xzzw : (--var2))
-                      : (4295032831 % (loc1 + 93))))
-                  .floor()) {
-                case 3294548737:
-                  {
-                    var5[Int32x4.xxwy] ^=
-                        (loc0 * ('!').compareTo(((!(true)) ? var4 : 'S')));
-                  }
-                  break;
-                case 3294548738:
-                  {
-                    var0 = var4;
-                    loc0 <<= Int32x4.zwxz;
-                  }
-                  break;
-              }
-              {
-                int loc2 = 0;
-                do {
-                  var1 = ('Ncb\u2665P9K').isEmpty;
-                  var1 ??= (!(true));
-                } while (++loc2 < 91);
-              }
-            }
-            par3 ??= {
-              44: ((false
-                      ? false
-                      : ((true
-                              ? var7
-                              : {
-                                  17: par3[(var5[-73] - -20)],
-                                  80: var7[
-                                      ((++loc0) ~/ ((!(false)) ? 47 : var2))],
-                                  30: '8Qvz3',
-                                  36: '',
-                                  10: (('@B!0bW6' + var4)).toLowerCase(),
-                                  89: var7[-9223372036854775296],
-                                  4: ') '
-                                }) !=
-                          var7))
-                  ? ((var1 || (!(var1))) ? var7[Float32x4.wxzw] : var7[-7])
-                  : '8h'),
-              for (int loc1 in [
-                (false
-                    ? ((([
-                                  var2,
-                                  -39,
-                                  -74,
-                                  Float32x4.zzxy,
-                                  (~(var5[(67 + -86)])),
-                                  -53
-                                ] +
-                                [(var2++), var5[par2[(--loc0)]]]) !=
-                            [
-                              var5[var5[var5[(loc0++)]]],
-                              loc0,
-                              loc0,
-                              -55,
-                              -69,
-                              loc0
-                            ])
-                        ? (loc0--)
-                        : loc0)
-                    : var2),
-                (75 ^ 93),
-                (false ? var5[Float32x4.xzyw] : (loc0++)),
-                ...[
-                  for (int loc2 in {
-                    -22,
-                    (loc0 ^ 2),
-                    var5[(-((par2[-79] * 86)))],
-                    (++loc0),
-                    ((par2[var5[-45]] ?? 55) >> (true ? Int32x4.wyww : -45)),
-                    (~((++var2))),
-                    par2[var2]
-                  })
-                    (loc0--),
-                  if ((var7[(false ? (-(loc0)) : 19)]).endsWith(var4))
-                    (++var2)
-                  else
-                    (var1 ? loc0 : 39),
-                  (((var2++) & var2) & -26),
-                  if (false) (var1 ? Float32x4.wzzw : var5[129]),
-                  for (int loc2 in {
-                    (loc0--),
-                    (true ? loc0 : loc0),
-                    var2,
-                    var5[(0.4452451921266031).floor()],
-                    (~(-4294967196)),
-                    (loc0--),
-                    (--var2)
-                  })
-                    (var1 ? -30 : (loc0++)),
-                  (~((var1 ? 51 : var2))),
-                  (((var3 ?? pi) < 0.9098824013356337)
-                      ? ((true ? 57 : -48) << (--var2))
-                      : par2[-59])
-                ]
-              ])
-                84: var4,
-              57: var4
-            };
-          } catch (exception, stackTrace) {
-            /**
-             ** Multi-line
-             ** documentation comment.
-             */
-            for (int loc1 = 0; loc1 < 89; loc1++) {
-              switch ((var2--)) {
-                case 3807258589:
-                  {
-                    print(({
-                          (-34 ^
-                              ((false || var1)
-                                  ? 24
-                                  : (-(((-((var1
-                                          ? par2[(-(71))]
-                                          : 9223372032559808768))) +
-                                      (~(loc1))))))),
-                          (~((true ? loc0 : (false ? -75 : 33)))),
-                          Float32x4.zxwz,
-                          (false ? (15 * -83) : (var2--)),
-                          ((var7 !=
-                                  ((true ? var1 : false)
-                                      ? var7
-                                      : {
-                                          99: (true ? 'TobD' : var0),
-                                          59: (var4 ?? var4),
-                                          13: var4,
-                                          58: Uri.encodeFull(var4),
-                                          99: var7[loc1]
-                                        }))
-                              ? loc1
-                              : (var1
-                                  ? ((72 >> -15) ~/ (loc0--))
-                                  : -9223372030412324864)),
-                          32
-                        } ??
-                        par1));
-                  }
-                  break;
-                case 3807258592:
-                  {
-                    var1 ??= true;
-                    try {
-                      var7 = {9: (var1 ? 'ON' : 'f\u{1f600}b')};
-                      par2 = (true
-                          ? var5
-                          : [
-                              DateTime.january,
-                              (40 - (~(var2))),
-                              (var1 ? (--loc0) : 23),
-                              var5[(--var2)]
-                            ]);
-                    } catch (exception, stackTrace) {
-                      var3 /= 0.9998663372091022;
-                    } finally {
-                      par2 ??= ((var1
-                              ? false
-                              : (((par1 ??
-                                          {
-                                            -68,
-                                            86,
-                                            -33,
-                                            var5[(-9223372034707292159 - 90)],
-                                            (24 - (++var2)),
-                                            (-(var2)),
-                                            (loc1 * Int32x4.wyxx)
-                                          }))
-                                      .difference({
-                                    (var1 ? Float32x4.yzyw : (loc1 % loc0)),
-                                    6,
-                                    22,
-                                    91,
-                                    loc0,
-                                    (true ? loc1 : loc1)
-                                  }) ==
-                                  foo0()))
-                          ? par2
-                          : [
-                              (var2--),
-                              (-((++loc0))),
-                              ((-(var5[-52])) ~/
-                                  (true ? Int32x4.wyyy : (loc0--))),
-                              (var3).toInt()
-                            ]);
-                      var5[99] += (~(Float32x4.ywxw));
-                    }
-                  }
-                  break;
-              }
-              var5 = (par2 ??
-                  [
-                    ...[72],
-                    for (int loc2 in {Float32x4.xxwz, loc1})
-                      ((loc0--) ~/ (var2++)),
-                    par2[(++var2)],
-                    (-((--var2))),
-                    (var2++),
-                    -56,
-                    (~((~(loc0)))),
-                    for (int loc2 in {
-                      (-((~(17)))),
-                      Float32x4.zzzw,
-                      Float32x4.zyyz,
-                      (var2--),
-                      (Int32x4.wzwz % 78),
-                      loc0
-                    })
-                      Int32x4.xzzy
-                  ]);
-            }
-            {
-              int loc1 = 0;
-              do {
-                loc0 &= (-(4295000065));
-              } while (++loc1 < 94);
-            }
-          } finally {
-            var3 -= 0.020483900923215503;
-            try {
-              return [
-                ...[
-                  (loc0--),
-                  for (int loc1 in {Float32x4.yxyz})
-                    if (var1) (~(-35)) else loc0,
-                  (++loc0),
-                  for (int loc1 = 0; loc1 < 43; loc1++)
-                    (var5[var5[par2[var5[-9223372032559808384]]]] &
-                        Int32x4.yzxy),
-                  for (int loc1 = 0; loc1 < 98; loc1++) (-((~(Int32x4.xwwy)))),
-                  Float32x4.yzzz
-                ],
-                (-(Int32x4.xzxz))
-              ];
-            } catch (exception, stackTrace) {
-              for (int loc1
-                  in (((((!((((0.13101852551635873 == 0.4825498460563603)
-                                          ? var7
-                                          : var7) !=
-                                      var7)))
-                                  ? 1
-                                  : par2[var2]))
-                              .isEven
-                          ? {
-                              (var2++),
-                              (-48 | -54),
-                              (~(par2[loc0])),
-                              par2[var5[Int32x4.zyzz]],
-                              -2,
-                              (true ? (~((-(((!(false)) ? -11 : var2))))) : 73),
-                              if ((0.15992181539430828).isInfinite) (++var2)
-                            }
-                          : (false ? {-6} : {((++loc0) % 27), 92})) ??
-                      Set.identity())) {
-                var6 ??= foo0();
-              }
-              var5[(~(((true ? -10 : Float32x4.zzwy) -
-                  Duration.millisecondsPerSecond)))] = (~((var2--)));
-            }
-          }
-        }
-        par3.forEach((loc0, loc1) {
-          // Single-line comment.
-          var6 = (var6 ?? foo0());
-          par1 = {
-            if (('X2yPgV').endsWith('b'))
-              Float32x4.yxxy
-            else if (true)
-              Int32x4.xzyw
-            else
-              for (int loc2 = 0; loc2 < 9; loc2++) (++loc0),
-            (4294967551 ?? (-((loc0--)))),
-            (-69 ~/
-                ((!(false))
-                    ? ((((par2[Int32x4.zwzw]).isEven
-                                ? (var3).truncateToDouble()
-                                : 0.14035347150303745))
-                            .isInfinite
-                        ? Int32x4.yzxx
-                        : par2[loc0])
-                    : (var2++))),
-            ((loc0++) - ((++var2) >> (~(par2[(var2--)]))))
-          };
-        });
-      }
-      break;
-    case 4149672955:
-      {
-        par2[((var2 ^ (~((--var2)))) | -98)] *= -62;
-        {
-          int loc0 = 0;
-          do {
-            var0 = par3[(var5[4294967808] >> Float32x4.wwyx)];
-          } while (++loc0 < 46);
-        }
-      }
-      break;
-  }
-  var1 ??= (!((var3).isNaN));
-  return (var1
-      ? par2
-      : Uri.parseIPv6Address(
-          (var1 ? '' : '26DgiI'), (ZLibOption.maxMemLevel % 65), 68));
-}
-
-class X0 {
-  bool fld0_0 = true;
-  Set<int> fld0_1 = {
-    31,
-    if (true) ...{
-      -93,
-      -4294967041,
-      -4294934527,
-      if (false) 92,
-      if (true) 69
-    } else
-      85,
-    ...{
-      ...{73, 27},
-      for (int loc0 in {
-        for (int loc1 = 0; loc1 < 56; loc1++) -36,
-        -23,
-        -99,
-        20,
-        16,
-        11,
-        if (false) -24,
-        if (true) 14
-      })
-        if (false) 69,
-      -9223372032559808513,
-      -9223372036854775553,
-      -9223372036854774784,
-      -22
-    },
-    81,
-    ...{16, if (false) 67 else -30, if (true) 21 else -61, -84},
-    -69
-  };
-
-  List<int> foo0_0(dynamic par1) {
-    if ((var1 ? ((!(fld0_0)) ? true : false) : true)) {
-      return ((var4).trim()).codeUnits;
-    } else {
-      for (int loc0 in var6) {
-        fld0_0 ??= var1;
-        for (int loc1 = 0; loc1 < 57; loc1++) {
-          {
-            Map<int, String> loc2 = Map.identity();
-            par1 ??= Map.unmodifiable(Map.unmodifiable(Map.unmodifiable((true
-                ? loc2
-                : ((true
-                        ? loc2
-                        : foo1(
-                            [var5[-60], loc0, var5[-48], -80, var5[var5[37]]],
-                            var1)) ??
-                    {
-                      60: var0,
-                      93: ((false ? var0 : '') + 'r\u{1f600}2B#p')
-                    })))));
-            var4 = ' ';
-          }
-          try {
-            var5 = foo2(
-                ({loc0, 37, Float32x4.wwyw} ?? var6),
-                ((fld0_0
-                        ? [
-                            for (int loc2 = 0; loc2 < 1; loc2++)
-                              (~(Float32x4.zyzz)),
-                            (~((true
-                                ? (Float32x4.yyzw >> (48 - (-((var2--)))))
-                                : (~(loc0))))),
-                            ((var4 ==
-                                    String.fromEnvironment(
-                                        (var1 ? 'l9FM' : par1[var5[loc0]])))
-                                ? (++loc0)
-                                : 4),
-                            ...[
-                              (~((var5[-9223372032559808448] - (++var2)))),
-                              ...[
-                                for (int loc2 in [
-                                  ((-12 <= 55) ? 9223372032559841280 : loc0),
-                                  var5[var5[(~(var5[var5[loc1]]))]],
-                                  (var1 ? 67 : -74)
-                                ])
-                                  (var5[var2]).sign,
-                                var5[-65],
-                                if (fld0_0)
-                                  var5[(var5[var5[-90]] ~/ 22)]
-                                else
-                                  (-9223372036854775679 + var5[16]),
-                                76,
-                                7
-                              ],
-                              (++var2),
-                              -9223372034707292160,
-                              (var2--),
-                              var5[(var2--)]
-                            ],
-                            loc1,
-                            Float32x4.ywxz,
-                            ((++loc0) + (--loc0)),
-                            for (int loc2 in [
-                              for (int loc3 = 0; loc3 < 4; loc3++) loc1,
-                              ...[
-                                Float32x4.zxwy,
-                                Float32x4.xzwx,
-                                var2,
-                                (++var2),
-                                Int32x4.xzyy,
-                                (var5[loc1] | (true ? -97 : -93)),
-                                Float32x4.xwyz,
-                                ((true || var1)
-                                    ? (~((--loc0)))
-                                    : (~((var5[18] % (-55 + loc0)))))
-                              ],
-                              (~((++loc0))),
-                              -85,
-                              (~((var2++))),
-                              (true
-                                  ? ZLibOption.maxMemLevel
-                                  : var5[var5[var5[var5[var2]]]]),
-                              ((true
-                                      ? ((!((false
-                                              ? (true ? fld0_0 : (!(false)))
-                                              : fld0_0)))
-                                          ? fld0_0
-                                          : (({
-                                                96: var4,
-                                                60: '(0yBGn\u{1f600}',
-                                                57: var4,
-                                                73: var7[-43],
-                                                38: var0
-                                              }).isNotEmpty ||
-                                              ({
-                                                67: var4,
-                                                14: 'M\u{1f600}1HNbP',
-                                                6: 's',
-                                                85: 'uyq',
-                                                95: var7[(-(Int32x4.wwxw))],
-                                                33: ''
-                                              }).isNotEmpty))
-                                      : false)
-                                  ? var2
-                                  : (++var2))
-                            ]) ...[-27]
-                          ]
-                        : [
-                            for (int loc2 = 0; loc2 < 87; loc2++)
-                              (-47 * (~((((--var2) ^ loc0) ?? 78)))),
-                            (-(((({
-                                  14: (var3).toStringAsExponential(
-                                      (false ? var5[-62] : 33)),
-                                  16: '',
-                                  71: var4,
-                                  78: (([var5[(-(91))]] == var5) ? var4 : var0),
-                                  9: par1[loc1],
-                                  51: '-8ht',
-                                  26: ('(2l3\u2665h' ?? var0),
-                                  79: var4
-                                }).isNotEmpty
-                                    ? var5[(var2 % loc0)]
-                                    : var2) %
-                                ((!(NetworkInterface.listSupported))
-                                    ? -22
-                                    : ((var1
-                                            ? ([
-                                                  ZLibOption.STRATEGY_DEFAULT,
-                                                  21,
-                                                  loc1,
-                                                  loc1,
-                                                  loc0,
-                                                  5,
-                                                  loc0,
-                                                  98
-                                                ] ==
-                                                Uri.parseIPv4Address(
-                                                    var7[loc1]))
-                                            : var1)
-                                        ? (~((-20 %
-                                            (var5).removeAt(Float32x4.wyxw))))
-                                        : var5[var5[82]]))))),
-                            (-(Float32x4.wwwz)),
-                            Int32x4.wxxz,
-                            ...[
-                              (loc0++),
-                              ...[
-                                (--loc0),
-                                -2,
-                                ZLibOption.DEFAULT_WINDOW_BITS,
-                                -42,
-                                for (int loc2 = 0; loc2 < 2; loc2++) (-(-22)),
-                                (~(-81))
-                              ],
-                              (--var2)
-                            ],
-                            (++var2),
-                            ((!(false)) ? (--var2) : (((~(34)) >> 48) << 79)),
-                            loc1
-                          ]) +
-                    foo2(
-                        foo0(),
-                        ([
-                              (((~(var5[(-(var5[(87 % var5[(++var2)])]))])) ??
-                                      -11) ~/
-                                  (var2++)),
-                              ((((!(var1)) && true) ? loc1 : 98) <<
-                                  ((!((true != (var4 == par1[var5[(~(-83))]]))))
-                                      ? -44
-                                      : var5[88])),
-                              Float32x4.yyyz,
-                              -44,
-                              Int32x4.xzyx,
-                              (++loc0)
-                            ] ??
-                            [
-                              ((foo1([((!(var1)) ? 24 : 81), -93], true))
-                                      .isEmpty
-                                  ? 52
-                                  : (~(Int32x4.zyww))),
-                              Int32x4.xxwz,
-                              (-(-11)),
-                              (loc0--),
-                              ((!(bool.fromEnvironment('U\u2665')))
-                                  ? (loc0++)
-                                  : (++var2))
-                            ]),
-                        {
-                          70: var7[7],
-                          18: '\u2665(#&c\u{1f600}-',
-                          58: 'KuNr',
-                          96: '\u{1f600}2\u2665YY',
-                          94: var0,
-                          28: 'l-'
-                        })),
-                par1);
-            {
-              double loc2 = double.infinity;
-              /*
-               * Multi-line
-               * comment.
-               */
-              return ('a!wNh!').codeUnits;
-            }
-          } catch (exception, stackTrace) {
-            continue;
-          } finally {
-            fld0_0 = (!(fld0_0));
-            var5 ??= ((Uri.parseIPv4Address('H') ??
-                    (foo2({
-                          loc1,
-                          ([
-                                if (((true ? loc0 : (loc0++)) <
-                                    ((!(var1)) ? -90 : Int32x4.yyzx)))
-                                  (~(var2))
-                                else
-                                  for (int loc2 in {
-                                    if (SecurityContext.alpnSupported)
-                                      var2
-                                    else
-                                      Int32x4.wzzy,
-                                    -9223372036754112763,
-                                    (-((var1
-                                        ? var5[62]
-                                        : (-(Float32x4.wzwz))))),
-                                    (~(Float32x4.yxzy))
-                                  })
-                                    ((((true && (false ? fld0_0 : var1))
-                                                ? fld0_0
-                                                : false)
-                                            ? true
-                                            : (fld0_0 && var1))
-                                        ? (true ? (~(loc1)) : var5[-16])
-                                        : loc0),
-                                for (int loc2 = 0; loc2 < 1; loc2++)
-                                  ((false && var1) ? Float32x4.yzyy : 50)
-                              ][var2] *
-                              [
-                                ...[
-                                  (((-10 >> Int32x4.wxzw) *
-                                          ((0.42979687169554437 >=
-                                                  0.17848133910264385)
-                                              ? -4
-                                              : var5[-15])) |
-                                      var5[(loc0++)]),
-                                  ...[
-                                    (('@jcNl\u2665P')
-                                            .compareTo(var7[(loc0--)]) &
-                                        (~((~(loc0))))),
-                                    if ((!(((!(true)) && true)))) 2,
-                                    loc1,
-                                    ((var5[(loc0--)] | -38) & (loc0++)),
-                                    var2,
-                                    (~(-22)),
-                                    if (false) loc0 else 80,
-                                    (--loc0)
-                                  ],
-                                  ...[15],
-                                  ((~((~(-5)))) ^ Int32x4.xxxz),
-                                  79,
-                                  for (int loc2 in [
-                                    (fld0_0 ? -0 : (loc0++)),
-                                    -49,
-                                    for (int loc3 in [
-                                      -16,
-                                      (var2--),
-                                      35,
-                                      ((14 * -68) ~/ Int32x4.wwyy)
-                                    ])
-                                      var5[(fld0_0 ? 28 : (-41 ?? 19))],
-                                    loc0,
-                                    (var3).round(),
-                                    if ((!((!((!(false))))))) loc1,
-                                    (loc0++),
-                                    Int32x4.wyww
-                                  ])
-                                    ((--var2) * var5[(6 & var5[(~(-53))])]),
-                                  (loc0++),
-                                  Float32x4.xwxx
-                                ],
-                                Int32x4.ywyw,
-                                (-(ZLibOption.strategyFixed)),
-                                (80 % (loc0--)),
-                                var5[Int32x4.zxww]
-                              ][var5[50]]),
-                          (false ? -71 : 39),
-                          (var5[-61]).toSigned(loc0),
-                          -50,
-                          4294967296
-                        }, [
-                          (16 *
-                              (~(((var1 ? ZLibOption.STRATEGY_FIXED : -66) *
-                                  4)))),
-                          Float32x4.wwwx
-                        ], {
-                          63: var0,
-                          52: (fld0_0 ? 'uG\u2665V@4' : '62'),
-                          98: var7[var5[-83]],
-                          70: (false
-                              ? 'bSg'
-                              : base64UrlEncode(([
-                                    (~(var2)),
-                                    -52,
-                                    68,
-                                    [
-                                      10,
-                                      loc1,
-                                      92,
-                                      53,
-                                      Int32x4.zzyw,
-                                      (true ? 12 : 19),
-                                      (~(var5[(++var2)]))
-                                    ][-64],
-                                    (++loc0),
-                                    (loc0 << -26)
-                                  ] +
-                                  [
-                                    var5[(--loc0)],
-                                    (((var1 ? var5[var5[(var2--)]] : loc1) +
-                                            (--var2)) <<
-                                        Int32x4.wyyx)
-                                  ]))),
-                          16: 'YsD\u2665\u2665K',
-                          0: var0,
-                          93: var7[(-(var5[-43]))]
-                        }) ??
-                        var5)) ??
-                [
-                  if (fld0_0) -90,
-                  (--var2),
-                  ...[
-                    for (int loc2 in [
-                      (false ? (~(-9)) : -4294901760),
-                      (-(-7)),
-                      -51,
-                      (var1 ? -75 : [Float32x4.wwxw, Int32x4.zxyx][-7]),
-                      Float32x4.xyww,
-                      Int32x4.wwzx,
-                      (loc0++),
-                      (NetworkInterface.listSupported
-                          ? [1000][Float32x4.zzyx]
-                          : -71)
-                    ])
-                      -27,
-                    Float32x4.wyzy,
-                    (++var2)
-                  ]
-                ]);
-          }
-        }
-      }
-      throw Map.unmodifiable(foo1(
-          (MapBase.mapToString(foo1((false ? [var2] : var5), false))).codeUnits,
-          true));
-    }
-  }
-
-  void run() {}
-}
-
-class X1 extends X0 {
-  double fld1_0 = 0.47694301047645304;
-  bool fld1_1 = true;
-
-  Map<int, String> foo1_0(
-      Map<int, String> par1, Map<int, String> par2, double par3) {
-    // Single-line comment.
-    for (int loc0 = 0; loc0 < 91; loc0++) {
-      par2.forEach((loc1, loc2) {
-        {
-          bool loc3 = (fld1_1 || ('U\u2665').isEmpty);
-          var3 /= 0.8504341352135224;
-        }
-      });
-      {
-        int loc1 = 66;
-        while (--loc1 > 0) {
-          if (((!((true || fld1_1))) == true)) {
-            var0 ??= par2[var5[(~((false ? ((!(var1)) ? -95 : var2) : -37)))]];
-            /**
-             ** Multi-line
-             ** documentation comment.
-             */
-            return Map.unmodifiable({
-              55: var4,
-              73: 'c#',
-              17: (fld1_1
-                  ? '7\u{1f600}e'
-                  : ((!(var1)) ? '8E7AK2e' : 'Fm\u{1f600} F')),
-              40: 'mb(\u{1f600}\u2665l',
-              36: Uri.decodeFull((true ? par2[-32769] : var7[Float32x4.zyxz])),
-              51: ((false &&
-                      (((var1 ? true : true) || false)
-                          ? (var7[(var2--)]).isEmpty
-                          : true))
-                  ? (fld1_1
-                      ? (fld1_1 ? (var1).toString() : 'r9M')
-                      : ((true ? (0.2863696758528199 != par3) : false)
-                          ? (fld1_1 ? par1[Int32x4.zwyz] : var4)
-                          : var4))
-                  : var4),
-              8: '6G',
-              62: '+z@Gp'
-            });
-          } else {
-            var5[Int32x4.zzyy] ??= (-(var5[((!(false)) ? loc1 : -34)]));
-            {
-              int loc2 = (-(7));
-              var3 /= (true
-                  ? (-(((-9223372032459145467).isEven
-                      ? fld1_0
-                      : (-((-(0.7008573255099826)))))))
-                  : par3);
-            }
-          }
-          for (int loc2 in foo2(var6, var5, {
-            if (false) 11: par1[((var4).isEmpty ? 55 : -61)],
-            12: 'f5j2v\u{1f600}',
-            52: (((foo1(
-                            (((var1
-                                        ? {var5[-66], var2, 88, 12, 6, -96}
-                                        : (var1
-                                            ? {-25, 84, (var2--), var5[83]}
-                                            : {-36, var5[51], var2})) !=
-                                    {var5[(++var2)]})
-                                ? [-2147483648, 46, loc0, var5[loc0], -21]
-                                : foo2(
-                                    {var5[var5[loc0]]},
-                                    (true
-                                        ? var5
-                                        : [
-                                            -30,
-                                            var5[(-(-42))],
-                                            var2,
-                                            Float32x4.zywx,
-                                            loc1,
-                                            63,
-                                            -25,
-                                            -28
-                                          ]),
-                                    {30: 'j\u2665U', 98: var4})),
-                            false))
-                        .isNotEmpty
-                    ? (false ? fld1_0 : 0.3202297128057393)
-                    : 0.1301025669674245))
-                .toStringAsFixed(((fld1_1 ? 79 : -88) + Int32x4.xyzw)),
-            88: (false ? var7[(var2++)] : (var4 ?? '')),
-            31: (var1
-                ? (var1 ? par2[-87] : (true ? par2[-14] : var4))
-                : ((fld1_1 != true) ? '3nd9t&' : var4)),
-            22: ('(Czi' + '-Y')
-          })) {
-            var7[(loc2--)] = 's';
-          }
-        }
-      }
-    }
-    return par1;
-  }
-
-  String foo1_1(int par1) => var0;
-  Set<int> foo1_2(String par1) {
-    for (int loc0 = 0; loc0 < 58; loc0++) {
-      switch ((~(13))) {
-        case 746492976:
-          {
-            switch (Duration.millisecondsPerDay) {
-              case 3635015902:
-                {
-                  var7[var5[(var5[var2] * (-(var5[Float32x4.yxxz])))]] ??=
-                      (var7[-79] + '(O@');
-                  var7[loc0] ??= String.fromCharCode(var5[(true
-                      ? (var5[((var1 ? true : (false ? fld1_1 : var1))
-                              ? var5[Float32x4.wyyz]
-                              : 73)] ~/
-                          (-(84)))
-                      : -15)]);
-                }
-                break;
-              case 3635015905:
-                {
-                  var1 = (var1
-                      ? (foo1_0(
-                              (((!(false)) || fld1_1) ? var7 : var7),
-                              foo1_0(
-                                  {74: '\u2665e', 10: 'tw8jc0R'},
-                                  foo1_0(
-                                      var7,
-                                      foo1_0(
-                                          ({
-                                                17: var7[Int32x4.zyxy],
-                                                82: var7[64],
-                                                27: 'VEtj',
-                                                90: Uri.encodeQueryComponent(
-                                                    foo1_1(var2)),
-                                                68: 'wew0\u{1f600}'
-                                              } ??
-                                              foo1_0(var7, var7, var3)),
-                                          ({
-                                                65: 'mBeBfUj',
-                                                81: var4,
-                                                35: (var7[-43] + 'l'),
-                                                68: var4
-                                              } ??
-                                              {
-                                                33: ('N\u{1f600}xaY+' ?? par1),
-                                                44: var7[var5[var2]],
-                                                83: var4,
-                                                86: 'k'
-                                              }),
-                                          asin(0.4245871535895427)),
-                                      (-(0.2913717674787144))),
-                                  0.9439800024935644),
-                              (-((true
-                                  ? ((var1 ? false : var1)
-                                      ? 0.09441225978923817
-                                      : 0.42622157485045953)
-                                  : (-(0.29370792038584836)))))))
-                          .isNotEmpty
-                      : (false && true));
-                  var3 += (-(fld1_0));
-                }
-                break;
-            }
-          }
-          break;
-        case 746492979:
-          {
-            var4 = var0;
-            for (int loc1 = 0; loc1 < 88; loc1++) {
-              var2 += 32;
-            }
-          }
-          break;
-      }
-    }
-    {
-      int loc0 = 0;
-      do {
-        return foo0();
-      } while (++loc0 < 57);
-    }
-    return foo0();
-  }
-
-  String foo1_3() {
-    if ((0.42144855521066793).isNegative) {
-      print((false ? (-(fld1_0)) : (-((-((-(0.26854952952179667))))))));
-      switch (30) {
-        case 3830102525:
-          {
-            try {
-              var7.forEach((loc0, loc1) {
-                var1 = (!(true));
-                var6 = (foo1_2(var7[99]) ?? var6);
-              });
-              var6 ??= var6;
-            } catch (exception, stackTrace) {
-              var4 ??= ListBase.listToString([
-                (Duration.microsecondsPerSecond + -82),
-                (true
-                    ? var5[(var2 ~/ (false ? (~((var1 ? 46 : var2))) : var2))]
-                    : (-9223372034707292161 >> var5[var5[-86]])),
-                Float32x4.wxyx
-              ]);
-            } finally {
-              /**
-               ** Multi-line
-               ** documentation comment.
-               */
-              fld1_1 = (var5[var5[var2]]).isOdd;
-            }
-            /*
-           * Multi-line
-           * comment.
-           */
-            if ((SetBase.setToString((fld1_1
-                    ? {12, (fld1_1 ? (-(-22)) : (-(4395630341)))}
-                    : var6)))
-                .isNotEmpty) {
-              try {
-                {
-                  int loc0 = 86;
-                  while (--loc0 > 0) {
-                    {
-                      int loc1 = 0;
-                      do {
-                        var0 = var7[(-(((--var2) &
-                            ((var1 ? (fld1_0).isNaN : true)
-                                ? (-16 | -20)
-                                : ((0.7513819161190503).isNaN ? 45 : loc1)))))];
-
-                        /// Single-line documentation comment.
-                        var5[(true ? loc0 : Float32x4.zxzx)] %= loc0;
-                      } while (++loc1 < 17);
-                    }
-                    for (int loc1 = 0; loc1 < 25; loc1++) {
-                      var5[Float32x4.zywy] <<= Int32x4.ywwx;
-                    }
-                  }
-                }
-              } catch (exception, stackTrace) {
-                var7 = Map.from(foo1_0({
-                  81: (foo1_1(((++var2) * (-(var5[21])))) +
-                      (var7[8] + (var7[var5[53]] ?? var0))),
-                  for (int loc0 in [
-                    (true ? 58 : Float32x4.wyww),
-                    var5[(fld1_1 ? 46 : var2)]
-                  ])
-                    63: var7[(false
-                        ? var5[((24 >> -9223372036854710272) & var2)]
-                        : var5[(80 << var5[-31])])],
-                  67: var0,
-                  1: '3mlOA',
-                  30: ('OQbG').substring((var2--), (--var2)),
-                  93: ((var7[74] ?? var7[(++var2)])).toLowerCase(),
-                  ...{
-                    85: foo1_1(-21),
-                    if ((!((!(false))))) 86: var0,
-                    49: '62+v',
-                    59: foo1_1((--var2)),
-                    for (int loc0 in [
-                      -10,
-                      -65,
-                      (var2++),
-                      (var2++),
-                      ((({
-                                    ((var7[60] == var7[-30])
-                                        ? var5[(-((var2++)))]
-                                        : (var2--))
-                                  } ==
-                                  {var5[var2], -40, -81, (var2++), 93, 26})
-                              ? 38
-                              : (var1 ? var5[97] : -82)) *
-                          (--var2)),
-                      (~((true ? 5 : Float32x4.yxyy))),
-                      (var2++),
-                      ((++var2) << ((var2 % Int32x4.yxxw) >> (++var2)))
-                    ])
-                      54: (var0 + 'ANyqN'),
-                    94: (var1 ? '0T\u2665#w' : (var0).toUpperCase()),
-                    68: '@n',
-                    67: base64UrlEncode(((0.07857744084458451).isInfinite
-                        ? ([
-                              var2,
-                              var5[70],
-                              -32,
-                              Float32x4.yxwz,
-                              31,
-                              (~(var2)),
-                              (var2 ?? (-70 + 57)),
-                              -91
-                            ] +
-                            [
-                              var2,
-                              var5[((!(var1))
-                                  ? var5[(var2 ~/ Float32x4.zwyw)]
-                                  : var5[var5[(var5[(~(var2))] % var2)]])],
-                              (var2 | (false ? (-(var2)) : var5[80])),
-                              (var2--),
-                              DateTime.daysPerWeek,
-                              (var2 ~/ var2)
-                            ])
-                        : (var1 ? var5 : [(var2++)])))
-                  },
-                  if (false)
-                    if (false)
-                      26: (Uri.encodeComponent(foo1_1(var2)) + var7[var5[var2]])
-                    else ...{
-                      4: (double.negativeInfinity).toStringAsFixed(var2),
-                      46: Uri.decodeQueryComponent('bst3jz'),
-                      5: ((true
-                              ? (true ? '(-f' : var7[(-(Int32x4.yzxz))])
-                              : var7[(var5[(fld1_1 ? (var2--) : var2)] >>
-                                  (-((false ? 8589934591 : 33))))]) ??
-                          '4ov'),
-                      37: var7[var5[100663045]],
-                      13: '2B'
-                    }
-                }, {
-                  71: 'Hxbq',
-                  22: ('\u{1f600}Jtj').substring(
-                      (-36 | var5[(~((var2++)))]), 9223372032559874048)
-                }, 0.3710694748818374));
-                fld1_0 ??= 0.010604823956237519;
-              } finally {
-                for (int loc0 = 0; loc0 < 84; loc0++) {
-                  var5[Float32x4.xwwz] <<=
-                      ((((fld1_1 ? false : ('e\u{1f600}O+Vc').isNotEmpty) &&
-                                  (!(fld1_1)))
-                              ? (-73 | var5[Int32x4.yzwx])
-                              : Uint16List.bytesPerElement) ~/
-                          var2);
-                }
-              }
-            }
-          }
-          break;
-        case 3830102528:
-          {
-            fld1_1 ??= true;
-            throw (-((-17).ceilToDouble()));
-          }
-          break;
-      }
-    }
-    return var0;
-  }
-
-  void run() {
-    super.run();
-    {
-      int loc0 = 61;
-      while (--loc0 > 0) {
-        {
-          int loc1 = 77;
-          while (--loc1 > 0) {
-            {
-              int loc2 = 0;
-              do {
-                break;
-              } while (++loc2 < 84);
-            }
-          }
-        }
-        if (((var1 || fld1_1) && (!((!((!((!((!(true)))))))))))) {
-          switch (Int32x4.yyzx) {
-            case 900727295:
-              {
-                /// Single-line documentation comment.
-                fld1_1 ??= (!(true));
-                for (int loc1 in ((var5 ??
-                        Uri.parseIPv6Address(
-                            foo1_3(), var5[(loc0 + var5[4096])], -34)) ??
-                    var5)) {
-                  var7[(38 << (false ? (~(-58)) : Float32x4.yyxy))] =
-                      Uri.decodeFull(foo1_3());
-                  var5 ??= var5;
-                }
-              }
-              break;
-            case 900727304:
-              {
-                fld1_1 =
-                    (SecurityContext.alpnSupported ? (var3).isFinite : var1);
-                fld1_0 += 0.3154406798513474;
-              }
-              break;
-          }
-          var2 ^= var2;
-        } else {
-          if (((-(var3)) <= (-(fld1_0)))) {
-            var6 = foo1_2('0vsDWF9');
-          } else {
-            var6 ??= ((fld1_0 <= 0.16230005903410238)
-                ? ((!((0.5144029832155854 > (0.8199455895430549 / var3))))
-                    ? foo1_2('ken')
-                    : var6)
-                : (fld1_1 ? {56, 6442450945, 2} : {34}));
-          }
-          var5[Float32x4.zwzw] += (true ? var2 : (~(Float32x4.wyyx)));
-        }
-      }
-    }
-  }
-}
-
-class X2 extends X0 with X1 {
-  dynamic fld2_0 = {for (int loc0 = 0; loc0 < 60; loc0++) -56, 29};
-
-  bool foo2_0(int par1) => var1;
-  bool foo2_1(bool par1) {
-    for (int loc0 in var6) {
-      var2 ~/= ((((((fld2_0 ?? (true ? var6 : var6)) ?? fld2_0))
-                      .union({(~(-21)), 10}) !=
-                  {(var5[90] ~/ (-(-90)))})
-              ? par1
-              : (var7[(~(82))]).isNotEmpty)
-          ? ((~(loc0)) *
-              ((true ? (-4294966272 ?? -21) : var2) +
-                  Duration.millisecondsPerMinute))
-          : (-9223372032559807488 ~/ 4294968296));
-    }
-    if (('DeAm#f' ==
-        ((Uri.encodeQueryComponent((0.3687340601979223).toString()) ??
-                var7[-23]) ??
-            foo1_3()))) {
-      throw (([Float32x4.wyyz, -9223372036854743039])
-              .sublist((--var2), (--var2)) +
-          ((true ? var1 : (!(false)))
-              ? foo2(
-                  foo1_2('JLXt'),
-                  [
-                    var5[Int32x4.zxzx],
-                    Int32x4.xxwy,
-                    (var2++),
-                    Float32x4.yzxx,
-                    (var2++),
-                    -15
-                  ],
-                  foo1_0(var7, var7, 0.7904389283184639))
-              : (var1
-                  ? [Float32x4.yzyz, Int32x4.wxxy, var2, (~(var5[-47]))]
-                  : var5)));
-    } else {
-      var7[var2] ??= ((({
-            ...{
-              for (int loc0 = 0; loc0 < 19; loc0++)
-                36: (var7[var2] ?? (par1 ? ('ccb9z' + 'iM') : var0)),
-              3: ('1sG' + var0),
-              for (int loc0 in {
-                (-(var5[var2])),
-                if (var1) Int32x4.zxxx,
-                -4294967168,
-                -61,
-                (~((par1 ? (~(-70)) : (var2--)))),
-                (-(7)),
-                -96,
-                Uint32List.bytesPerElement
-              })
-                85: var4
-            },
-            if (foo2_0(-91)) 38: (var3).toString() else 30: 'uI\u2665\u{1f600}',
-            72: '@'
-          }[(par1 ? 14 : var2)])
-                  .trim())
-              .substring((36 ~/ var5[(++var2)]), var5[((-(25)) * -53)]) ??
-          foo1_3());
-      /*
-       * Multi-line
-       * comment.
-       */
-      {
-        int loc0 = 0;
-        do {
-          {
-            String loc1 = 'jG7t';
-            /**
-             ** Multi-line
-             ** documentation comment.
-             */
-            {
-              int loc2 = 57;
-              while (--loc2 > 0) {
-                print((var6 ??
-                    (foo1_2(var0)).union(foo1_2(('n' + var7[(++var2)])))));
-              }
-            }
-          }
-        } while (++loc0 < 69);
-      }
-    }
-    return (!(((!((par1 && false)))
-        ? (true && foo2_0(-9223372036854771712))
-        : (!(par1)))));
-  }
-
-  double foo2_2(Map<int, String> par1, int par2) {
-    switch (var2) {
-      case 3816231196:
-        {
-          throw (-(Int32x4.xxwx));
-        }
-        break;
-      case 3816231204:
-        {
-          var7.forEach((loc0, loc1) {
-            switch ((-43 ^ (-(Float32x4.wwxx)))) {
-              case 2839002105:
-                {
-                  var0 ??= (SetBase.setToString(((var1 ? var1 : (true || var1))
-                          ? fld2_0
-                          : {
-                              Int32x4.yyzw,
-                              Int32x4.yyxy,
-                              (2 >> Int32x4.ywzx),
-                              (var1
-                                  ? ((foo2_1(var1) ? 17 : loc0) ~/
-                                      (-(var5[var2])))
-                                  : par2),
-                              Float32x4.zwwx,
-                              par2,
-                              Int32x4.wzzz,
-                              Int32x4.zyzw
-                            })) ??
-                      (loc1 +
-                          var7[((true
-                                  ? (var1 &&
-                                      bool.fromEnvironment(var7[(var2--)]))
-                                  : foo2_1(false))
-                              ? 35
-                              : (-(66)))]));
-                  for (int loc2 = 0; loc2 < 23; loc2++) {
-                    switch ((-73 ^ (Int32x4.xyzz >> Float32x4.yzzz))) {
-                      case 1710454916:
-                        {
-                          var3 = 0.3372913861348876;
-                          print(((-(var3)) * var3));
-                        }
-                        break;
-                      case 1710454922:
-                        {
-                          var4 ??= ((false
-                                  ? (var1
-                                      ? var1
-                                      : (fld2_0 ==
-                                          {
-                                            (false ? -27 : (-(92))),
-                                            loc2,
-                                            var5[loc2],
-                                            (var1
-                                                ? Float32x4.yywy
-                                                : (false ? -74 : 2)),
-                                            ((-(-50)) ^ 32),
-                                            (var2++)
-                                          }))
-                                  : var1)
-                              ? base64UrlEncode([
-                                  for (int loc3 in {
-                                    (-(par2)),
-                                    loc0,
-                                    (-((par2++))),
-                                    Float32x4.yyyx
-                                  })
-                                    (par2--),
-                                  (-((-(var5[var5[var5[-41]]])))),
-                                  if (({
-                                        loc2,
-                                        Duration.microsecondsPerSecond,
-                                        (([
-                                                  (par2++),
-                                                  (-90 ^ -5),
-                                                  var5[(~(0))],
-                                                  loc2
-                                                ] !=
-                                                var5)
-                                            ? -9223372032559808512
-                                            : (par2++))
-                                      } ==
-                                      {
-                                        (var1 ? (-((loc2 % loc2))) : loc2),
-                                        -94,
-                                        -62
-                                      }))
-                                    (++var2),
-                                  loc2,
-                                  for (int loc3 in {
-                                    55,
-                                    (~(var5[var5[(++par2)]])),
-                                    ((var1
-                                            ? (-((++var2)))
-                                            : var5[(true ? var5[68] : 10)]) -
-                                        par2),
-                                    (-(Float32x4.wzxx))
-                                  })
-                                    (Int32x4.yxzy | var5[-1]),
-                                  (foo2_1(false) ? (-(32)) : loc0),
-                                  (--par2),
-                                  if ((!(false))) (var1 ? var5[loc0] : 30)
-                                ])
-                              : ('b1TKp3' ??
-                                  (var4 +
-                                      var7[(~(var5[
-                                          ((var1 ? var2 : loc2) - 72)]))])));
-                        }
-                        break;
-                    }
-                    fld2_0 = ((!((false
-                            ? false
-                            : (false ? (!((var7[-28] != ''))) : var1))))
-                        ? (((var1
-                                    ? (true ? Set.identity() : var6)
-                                    : {
-                                        -63,
-                                        Int32x4.xxyx,
-                                        var5[((var1
-                                                ? (var5[-9223372032559808496] >>
-                                                    59)
-                                                : Int32x4.wxxy) ~/
-                                            var5[var5[-48]])],
-                                        (par2 ?? par2),
-                                        44,
-                                        var5[(var1 ? -26 : (-(par2)))]
-                                      }) ??
-                                ({
-                                      loc2,
-                                      var2,
-                                      ZLibOption.defaultMemLevel,
-                                      (true ? Int32x4.wyzz : 40),
-                                      (false ? loc2 : var5[42]),
-                                      -16
-                                    } ??
-                                    var6)))
-                            .union({loc0, (var2++), (-1 * (~(var2)))})
-                        : (bool.fromEnvironment((var3)
-                                .toStringAsFixed(Uint64List.bytesPerElement))
-                            ? fld2_0
-                            : {
-                                (par2++),
-                                (var1 ? loc2 : (++var2)),
-                                ((false || false) ? Int32x4.xyyz : (++par2)),
-                                var5[-98],
-                                Float32x4.zwwy,
-                                var5[var5[62]],
-                                (~(Float32x4.ywww))
-                              }));
-                  }
-                }
-                break;
-              case 2839002106:
-                {
-                  for (int loc2 = 0; loc2 < 13; loc2++) {
-                    {
-                      int loc3 = 0;
-                      do {
-                        switch ((loc3 | -76)) {
-                          case 2164097105:
-                            {
-                              var4 ??= (var1).toString();
-                              var5 = ((!(((true || var1) !=
-                                      (false ? var1 : (!(foo2_1(var1)))))))
-                                  ? foo2(
-                                      ((var6).union(foo1_2(loc1))).toSet(),
-                                      [
-                                        -67,
-                                        if (((var1
-                                                ? 59
-                                                : (-((false ? -97 : par2)))) !=
-                                            (false
-                                                ? ((var1 || var1)
-                                                    ? (-((par2++)))
-                                                    : 4)
-                                                : (--var2)))) ...[
-                                          ((92 ~/ Int32x4.yzwx) << 70),
-                                          Float32x4.xxyz,
-                                          Int8List.bytesPerElement
-                                        ] else
-                                          69
-                                      ],
-                                      var7)
-                                  : foo2(foo0(), Uri.parseIPv4Address(var0),
-                                      var7));
-                            }
-                            break;
-                          case 2164097111:
-                            {
-                              var4 ??= var7[Float32x4.zxzw];
-                            }
-                            break;
-                        }
-                      } while (++loc3 < 96);
-                    }
-                    fld2_0 = var6;
-                  }
-                }
-                break;
-            }
-          });
-          for (int loc0 in (foo2_1((var5 !=
-                  (false
-                      ? [par2]
-                      : foo2(
-                          var6,
-                          [20],
-                          ({
-                                21: var0,
-                                68: foo1_3(),
-                                24: ('1MF' + '8s\u2665yx+ ')
-                              } ??
-                              {
-                                9: var7[var2],
-                                48: 'mB(wW\u{1f600}',
-                                74: 'ojEw\u{1f600}\u{1f600}',
-                                80: '\u26655E-hj\u{1f600}',
-                                10: (false ? 'W7i5\u2665YX' : '! Ed9&'),
-                                88: (false ? var0 : 'N0D9(H\u{1f600}'),
-                                5: 'QZ'
-                              })))))
-              ? foo1_2('XP')
-              : {
-                  if ((foo2_1(var1)
-                      ? (foo2_1((fld2_0).add(-9223372036854774784)) || var1)
-                      : var1))
-                    (~(Float32x4.zyww)),
-                  Float32x4.xwyw,
-                  ((((var1 ? true : var1) ? 0.3447071353935154 : var3) >=
-                          0.5995056331958718)
-                      ? ZLibOption.MAX_LEVEL
-                      : 16),
-                  9223372032559841279,
-                  Int32x4.zwyy
-                })) {
-            for (int loc1 = 0; loc1 < 19; loc1++) {
-              var1 = (!(bool.fromEnvironment(MapBase.mapToString({
-                1: '4',
-                56: var0,
-                85: var0,
-                51: var7[-4],
-                42: ((!((!(false)))) ? par1[72] : MapBase.mapToString(var7))
-              }))));
-            }
-          }
-        }
-        break;
-    }
-    print((((var1 ? 'kP' : (var1 ? 'irjF' : var7[var5[90]])) ??
-            ((!(false)) ? 'vWa\u{1f600}' : var0)) +
-        'xzpK'));
-    return var3;
-  }
-
-  void run() {
-    super.run();
-    {
-      int loc0 = (~(-24));
-      var0 ??= ((false
-              ? foo2_1((true
-                  ? (var1 && (var2).isOdd)
-                  : (('dTYR' ?? 'G\u{1f600}P14\u{1f600}a')).isEmpty))
-              : ((var1 && true) || (!(var1))))
-          ? (var4 ?? 'I')
-          : 'QO');
-    }
-  }
-}
-
-class X3 extends X1 {
-  dynamic fld3_0 = {
-    if (true)
-      if (false) 45: 'ynEn\u2665nG' else 70: 'c\u{1f600}mN4\u2665a',
-    if (true) 30: '6\u2665P!Pbi',
-    81: 't',
-    82: '17fx#!',
-    92: 'H',
-    if (true) 69: ')Ls'
-  };
-  Set<int> fld3_1 = {27};
-  int fld3_2 = 34;
-
-  String foo1_1(int par1) {
-    throw (ListBase.listToString(foo2({
-          -4294967169,
-          par1
-        }, [
-          -97,
-          (var5[(var1 ? var5[87] : Int32x4.yxxy)] * Int32x4.yyxx),
-          var2,
-          (false ? 10 : var5[var5[(par1++)]])
-        ], var7)) ??
-        'o');
-  }
-
-  bool foo3_0(double par1) {
-    {
-      Set<int> loc0 = (true ? fld3_1 : var6);
-      {
-        Set<int> loc1 = (false
-            ? foo0()
-            : {
-                for (int loc2 in [var2, (-(Float32x4.xzzw))])
-                  if (false) Float32x4.wxyz else (++fld3_2),
-                ((var1
-                        ? 5
-                        : var5[(((var5[(true ? fld3_2 : fld3_2)] ~/ 48) | 56) %
-                            var5[-4])]) ??
-                    (var2++))
-              });
-        for (int loc2 = 0; loc2 < 90; loc2++) {
-          {
-            int loc3 = 95;
-            while (--loc3 > 0) {
-              return (((0.7073184699576396).isNaN
-                      ? var7
-                      : (Map.of(Map.from(var7)) ??
-                          Map.unmodifiable(Map.identity()))))
-                  .isEmpty;
-            }
-          }
-          try {
-            var1 = (((12 >= Int32x4.ywxx) ? true : true)
-                ? false
-                : (((var1 ? fld3_0[Int32x4.wyxy] : '') ?? var7[Float32x4.xwwx]))
-                    .isEmpty);
-            var2 |= ((fld3_2++) ?? (fld3_2--));
-          } catch (exception, stackTrace) {
-            var5 ??= var5;
-          } finally {
-            var4 = 'A';
-            break;
-          }
-        }
-        {
-          double loc2 = (-(exp((acos(0.06129144867031855) ?? var3))));
-          fld3_0 = (((({Int32x4.ywxw, 6442450943}).union(foo0()))
-                      .add((++fld3_2))
-                  ? false
-                  : false)
-              ? foo1_0(
-                  (foo1([var5[var2], var5[75], 42], false) ?? var7), var7, loc2)
-              : (var1
-                  ? {
-                      for (int loc3 = 0; loc3 < 48; loc3++) 78: 'dWek8',
-                      40: fld3_0[(var5[-81] & Int32x4.xzyw)],
-                      73: (' )G\u2665-d(').substring(
-                          (NetworkInterface.listSupported
-                              ? (~(((++var2) ?? (fld3_2 * fld3_2))))
-                              : var5[-75]),
-                          fld3_2),
-                      74: ('k9O\u2665').trimLeft(),
-                      88: var7[(++var2)],
-                      for (int loc3 = 0; loc3 < 27; loc3++)
-                        60: ((false || var1) ? var7[46] : var0),
-                      99: ((var3).isNaN
-                          ? (Uri.decodeComponent(foo1_3()) + var4)
-                          : var7[-77]),
-                      92: (true
-                          ? ('').padLeft(82, '')
-                          : ('' ?? var7[(false ? 94 : 58)]))
-                    }
-                  : var7));
-
-          /// Single-line documentation comment.
-          fld3_1 ??= ((loc1 ?? foo1_2(fld3_0[(var2--)])) ?? foo1_2(foo1_3()));
-        }
-      }
-    }
-    return (var1 ? (!(var1)) : var1);
-  }
-
-  String foo3_1(int par1, String par2, String par3) {
-    switch (var2) {
-      case 3768780679:
-        {
-          {
-            int loc0 = (++par1);
-            var0 ??= ListBase.listToString(var5);
-            if (true) {
-              var5 = [
-                Float32x4.xyxz,
-                (var1
-                    ? ((!(false)) ? Float32x4.xyyw : (++fld3_2))
-                    : var5[fld3_2]),
-                par1,
-                (~(Float32x4.zxwy)),
-                if ((foo3_0(var3)
-                    ? ([
-                          (++fld3_2),
-                          ...[
-                            ...[
-                              var5[(true ? Float32x4.xxzx : (--fld3_2))],
-                              54,
-                              (-((((foo3_0(var3)
-                                          ? (!(false))
-                                          : ((var1 ? (~(-63)) : var5[-40]))
-                                              .isOdd)
-                                      ? ((0.8329420640871532 != var3) && var1)
-                                      : var1)
-                                  ? 43
-                                  : (Float32x4.zxxy - Float32x4.zxxw)))),
-                              Int32x4.zzwx
-                            ],
-                            ...[
-                              (var5[-48] * (fld3_2++)),
-                              Int32x4.wyyw,
-                              (~(-76)),
-                              ((par1).isEven ? (--par1) : -13),
-                              Float32x4.wxyx
-                            ],
-                            for (int loc1 in [
-                              (++fld3_2),
-                              -15,
-                              (SecurityContext.alpnSupported
-                                  ? Int32x4.yxyw
-                                  : Float32x4.yxxw),
-                              if (true) var5[(var1 ? -32768 : par1)],
-                              ((--var2) ^ (++fld3_2))
-                            ])
-                              (fld3_2--),
-                            93,
-                            (~((-(ZLibOption.minMemLevel)))),
-                            ((Float32x4.zyzx >> -14) & Float32x4.yxxw)
-                          ],
-                          (var1
-                              ? (++par1)
-                              : ((var3).isInfinite ? Float32x4.zwww : -84)),
-                          var2
-                        ] ==
-                        [
-                          9223372032559808639,
-                          -85,
-                          Float32x4.wzyy,
-                          loc0,
-                          [
-                            ((-(36)) <<
-                                ((var1
-                                        ? var1
-                                        : ({
-                                            45: 'ay',
-                                            7: par3,
-                                            69: Uri.decodeFull(
-                                                (foo1_3() + 'LX+'))
-                                          }).isEmpty)
-                                    ? (~((13 | 64)))
-                                    : (-(var2)))),
-                            (par1--),
-                            ((~((true ? (var2--) : -31))) >> 9),
-                            (-((35 % (~(var5[var5[39]]))))),
-                            4395630341,
-                            Int32x4.zxxy,
-                            if ((var1
-                                ? foo3_0(var3)
-                                : (0.6201792653929837).isInfinite)) ...[
-                              Int32x4.wxxx,
-                              (fld3_2 * (--fld3_2)),
-                              var5[((~(var5[var5[var5[(-(-23))]]])) +
-                                  (~(-4294966296)))],
-                              loc0,
-                              for (int loc1 in [var5[Float32x4.yzww]]) 17,
-                              (~(var5[(++par1)])),
-                              -58,
-                              ((!(('').isEmpty))
-                                  ? ((-(Float32x4.ywwx)) * (++par1))
-                                  : Int32x4.yxyz)
-                            ]
-                          ][((var1 ? var1 : var1) ? var5[0] : par1)],
-                          ((~(70)) +
-                              (par1 + (-77 | ZLibOption.MAX_WINDOW_BITS))),
-                          (-(Int32x4.zywy)),
-                          (~(Float32x4.zywz))
-                        ])
-                    : (var1 ? true : true)))
-                  fld3_2
-              ];
-            }
-          }
-          var3 *= ((var3 + 0.6761038672016147) ?? (-(double.minPositive)));
-        }
-        break;
-      case 3768780685:
-        {
-          {
-            int loc0 = 67;
-            while (--loc0 > 0) {
-              {
-                Map<int, String> loc1 = foo1(
-                    Uri.parseIPv4Address(('E Hu\u{1f600}' + '\u2665l&#!')),
-                    (!(false)));
-                var3 ??= var3;
-              }
-              var5 = (var5 +
-                  ((({
-                    79: (foo1_3() ?? 'eD'),
-                    73: (var1 ? par2 : ' xdXgW'),
-                    4: 'pUc(q',
-                    15: 'K\u{1f600}hmdZ\u2665',
-                    95: (var1 ? var4 : (var1 ? fld3_0[-45] : foo1_3()))
-                  }).isNotEmpty
-                          ? ((var1 ? var1 : (var1 ? var1 : foo3_0(var3))) ||
-                              foo3_0(var3))
-                          : (!(((false || true) ? var1 : false))))
-                      ? [
-                          (~((-61 ??
-                              (~((-(var5[(var1 ? fld3_2 : var5[34])]))))))),
-                          (var5[13] ^ (var1 ? 35 : -76)),
-                          (-(((~(-47)) ~/ (--par1))))
-                        ]
-                      : foo2({
-                          -36,
-                          ((0.3910802543332075).isNegative
-                              ? (~((var2++)))
-                              : (var2 &
-                                  (var1
-                                      ? [
-                                          -67,
-                                          (fld3_2++),
-                                          if ((!((!((var1
-                                              ? true
-                                              : (!(false))))))))
-                                            (false
-                                                ? (~(Float32x4.wyyy))
-                                                : (var1
-                                                    ? (1 ^ (-(16)))
-                                                    : var5[94])),
-                                          fld3_2,
-                                          var2,
-                                          67
-                                        ][-12]
-                                      : Float32x4.wwxw))),
-                          26,
-                          [
-                            (var1
-                                ? (--fld3_2)
-                                : (((!(var1))
-                                        ? (~((foo3_0(0.9959805940480148)
-                                            ? (33 ~/ loc0)
-                                            : Float32x4.xywx)))
-                                        : (15 % var5[var5[-47]])) <<
-                                    -86)),
-                            (-((~(RawSocketOption.levelIPv6))))
-                          ][var5[var5[(ZLibOption.maxMemLevel ^ -3)]]],
-                          -29
-                        }, [
-                          (var1 ? Float32x4.wxxw : (--par1)),
-                          ...[
-                            52,
-                            (-((true ? -12 : 44))),
-                            var5[((var5[34] * 30) >> 4294967360)],
-                            ((--var2) <<
-                                (true
-                                    ? var5[(-4 ~/ Int32x4.yyww)]
-                                    : (bool.fromEnvironment(var7[fld3_2])
-                                        ? (~((false ? loc0 : var5[(++par1)])))
-                                        : ((!(false))
-                                            ? (var5[var5[loc0]] ^ Int32x4.wxzz)
-                                            : par1)))),
-                            (((false ? var0 : '') !=
-                                    (true
-                                        ? MapBase.mapToString(({
-                                              7: 'WTT7\u{1f600}e3',
-                                              22: '',
-                                              36: (var1
-                                                  ? 'F'
-                                                  : (var1 ? fld3_0[var2] : '')),
-                                              37: 'l@a',
-                                              85: (var1 ? '' : par3),
-                                              82: 'eb',
-                                              37: '11',
-                                              41: var7[94]
-                                            } ??
-                                            var7))
-                                        : (var1 ? var4 : par2)))
-                                ? (~(var5[-71]))
-                                : 9),
-                            32,
-                            if (bool.fromEnvironment(
-                                fld3_0[var5[ZLibOption.MIN_MEM_LEVEL]]))
-                              var5[(--par1)],
-                            (par1--)
-                          ],
-                          for (int loc1 in {
-                            for (int loc2 in [
-                              ((!((Map.unmodifiable({
-                                        86: var4,
-                                        31: var0,
-                                        85: (par3 + ''),
-                                        91: (var1
-                                            ? fld3_0[4]
-                                            : '!M\u{1f600}!vOw'),
-                                        45: '7T',
-                                        19: 'fha+',
-                                        38: (false ? '' : fld3_0[70])
-                                      }) !=
-                                      {
-                                        92: '@4',
-                                        41: var7[loc0],
-                                        24: (foo3_0(0.06591134699771606)
-                                            ? '\u2665)\u2665NnO+'
-                                            : 'JM3Hn\u{1f600}'),
-                                        26: 'aQ51Yz',
-                                        64: var7[
-                                            (-((var5[18] & (36).bitLength)))]
-                                      })))
-                                  ? (89 ^
-                                      (((44 - par1) * -9223372034707292160) &
-                                          var5[128]))
-                                  : -46),
-                              (fld3_2++),
-                              ((([
-                                            -89,
-                                            var2,
-                                            (fld3_2++),
-                                            var5[-4294967264],
-                                            -25,
-                                            var2,
-                                            var5[((!(var1))
-                                                ? (var1 ? -3 : -81)
-                                                : var5[loc0])],
-                                            (var1
-                                                ? par1
-                                                : ((~((fld3_2++))) >>
-                                                    (-((-(-64))))))
-                                          ] ??
-                                          foo2(var6, [
-                                            4295032831
-                                          ], {
-                                            53: foo1_3(),
-                                            94: var7[13],
-                                            82: var7[-60],
-                                            30: fld3_0[-9223372032559742976],
-                                            98: foo1_3()
-                                          })) !=
-                                      var5)
-                                  ? (--par1)
-                                  : loc0),
-                              56,
-                              if (((var5[21]).isOdd ? true : false))
-                                ((++par1) -
-                                    (var1 ? var5[DateTime.january] : (par1--)))
-                              else
-                                fld3_2,
-                              if ((!(var1))) 74,
-                              (par1 ^ var5[26])
-                            ])
-                              (~(var2)),
-                            for (int loc2 in {
-                              6442450944,
-                              Float32x4.ywyw,
-                              -9223372032559804416,
-                              (~(var5[var5[26]])),
-                              Float32x4.xyxy,
-                              (--fld3_2),
-                              var5[98]
-                            })
-                              if (false) -26,
-                            (~((-((-((-48 - -9223372036854775680))))))),
-                            ...{
-                              (-((var2--))),
-                              if (true) -100663046 else var5[(~(par1))]
-                            },
-                            (~((~((fld3_2++))))),
-                            ...{
-                              ((List.filled(0, 26) ==
-                                      [
-                                        (-(-52)),
-                                        -29,
-                                        (--fld3_2),
-                                        (0.22302566014161784).floor(),
-                                        (par1 % -56)
-                                      ])
-                                  ? (var1
-                                      ? (var2++)
-                                      : ((!((!(true))))
-                                          ? ((var1 || foo3_0(var3)) ? 76 : par1)
-                                          : (-(-13))))
-                                  : ((foo1_0((var1 ? fld3_0 : var7), var7,
-                                              var3))
-                                          .isEmpty
-                                      ? 97
-                                      : (var1 ? var2 : -9223372036854774784))),
-                              (-(Float32x4.zyzw)),
-                              (--var2)
-                            }
-                          })
-                            ((var3 < (-(var3))) ? -9223372032559808000 : -71),
-                          -100663046,
-                          if ((var1
-                              ? bool.fromEnvironment('vV0')
-                              : (Map.from({
-                                  78: '',
-                                  49: '\u{1f600}\u{1f600}4Mz',
-                                  70: fld3_0[par1],
-                                  95: '\u{1f600}2tIYqE',
-                                  43: (true ? 'baf-\u2665' : var4),
-                                  30: var7[(-((-68 % ZLibOption.defaultLevel)))]
-                                })).isNotEmpty))
-                            -13
-                          else
-                            (var1 ? (-((-(var5[56])))) : (var2--)),
-                          (~((~((-((var2++)))))))
-                        ], {
-                          88: ('bV\u{1f600}iqO').toLowerCase(),
-                          42: '(hZ4S',
-                          37: var7[-79],
-                          36: var0
-                        })));
-            }
-          }
-          {
-            int loc0 = 0;
-            do {
-              try {
-                print(foo2(
-                    fld3_1,
-                    (fld3_0[var5[-12]]).codeUnits,
-                    (({
-                              36: var4,
-                              30: '0\u{1f600}EYWqr',
-                              66: 'S',
-                              3: '+J3Gj',
-                              71: '\u{1f600}-q',
-                              13: 'V3QN',
-                              34: ''
-                            } ??
-                            {
-                              54: fld3_0[(var2--)],
-                              74: (foo3_0(
-                                      ((-(var3)) * (0.8613045491468889 + var3)))
-                                  ? var7[78]
-                                  : (((var1 ? (47).isEven : var1) ? true : true)
-                                      ? (var4 ?? 'UzK')
-                                      : 'fH1smd')),
-                              12: '\u2665',
-                              18: 'V'
-                            }) ??
-                        var7)));
-              } catch (exception, stackTrace) {
-                fld3_1 = foo0();
-                for (int loc1 = 0; loc1 < 29; loc1++) {
-                  if (var1) {
-                    {
-                      int loc2 = 0;
-                      do {
-                        var5 = (foo3_0(var3)
-                            ? [
-                                ((--par1) ^ (~(93))),
-                                if ((var3).isFinite)
-                                  for (int loc3 in [
-                                    -5,
-                                    Int32x4.zxyy,
-                                    (true
-                                        ? var5[var5[(var1 ? -23 : var5[68])]]
-                                        : -99),
-                                    ((!(var1))
-                                        ? ((false
-                                                ? var1
-                                                : foo3_0(0.3133865362301862))
-                                            ? Float64List.bytesPerElement
-                                            : [
-                                                Float32x4.yxzx,
-                                                if (var1)
-                                                  (false ? 40 : 85)
-                                                else
-                                                  ((String.fromCharCode((foo3_0(
-                                                                  0.414460580942719)
-                                                              ? var5[-14]
-                                                              : var2)) ==
-                                                          'mII\u{1f600}zkM')
-                                                      ? var5[(~(-51))]
-                                                      : ((var1
-                                                              ? (!(var1))
-                                                              : var1)
-                                                          ? var5[0]
-                                                          : (-(var2))))
-                                              ][5])
-                                        : fld3_2),
-                                    (par1++),
-                                    -72,
-                                    Int32x4.zzxy
-                                  ])
-                                    Int32x4.zyww
-                                else
-                                  Int32x4.wxyz
-                              ]
-                            : [
-                                ...[
-                                  if ((false ? false : var1)) (-(52)),
-                                  (++par1),
-                                  (par1--),
-                                  (-((-([
-                                    (((var0 + fld3_0[(++var2)])).isNotEmpty
-                                        ? Float32x4.yzxw
-                                        : var5[35])
-                                  ][loc0])))),
-                                  (~(-17))
-                                ],
-                                38,
-                                ...[
-                                  (var1 ? (par1++) : -10),
-                                  if (true) -62 else var2,
-                                  if ((!((var3).isFinite)))
-                                    Int32x4.xxzz
-                                  else
-                                    -45
-                                ],
-                                if ((true || false)) (-(-93)),
-                                (--fld3_2),
-                                ([
-                                      (fld3_2--),
-                                      if ((base64UrlEncode(var5) == 'RY'))
-                                        (++fld3_2)
-                                      else
-                                        -9223372032559808383,
-                                      Float32x4.zyxy,
-                                      loc0,
-                                      -55,
-                                      if (('O \u{1f600}e\u2665').isNotEmpty)
-                                        if (var1)
-                                          (--var2)
-                                        else
-                                          for (int loc3 in {
-                                            loc0,
-                                            (~((--var2))),
-                                            (-(-35)),
-                                            Float32x4.xxyw,
-                                            65,
-                                            -4,
-                                            -4194304251,
-                                            -54
-                                          })
-                                            (((0.671280258888436 ==
-                                                        (0.16535430333243706 *
-                                                            0.18316039550464436)) ||
-                                                    var1)
-                                                ? var5[12]
-                                                : (~((--var2))))
-                                      else if (false)
-                                        if (var1) (-(Int32x4.zzwx)) else loc2
-                                      else
-                                        Int32x4.yzyw
-                                    ][loc1] *
-                                    (--par1)),
-                                (-71 * 38)
-                              ]);
-                      } while (++loc2 < 89);
-                    }
-                  } else {
-                    {
-                      int loc2 = 0;
-                      do {
-                        fld3_0 ??= ((((Map.unmodifiable(var7)).isEmpty ||
-                                    (!(({
-                                      11: 'v+MHeiB',
-                                      48: var7[(true
-                                          ? ((var2--) ?? fld3_2)
-                                          : var5[(fld3_2--)])],
-                                      52: '(('
-                                    }).isEmpty)))
-                                ? fld3_0
-                                : {
-                                    39: foo1_3(),
-                                    21: 'IXzJ+',
-                                    76: 'K2C#',
-                                    16: ('\u{1f600}Gh' + '#i'),
-                                    62: foo1_3(),
-                                    19: foo1_3(),
-                                    32: par3,
-                                    for (int loc3 in [
-                                      (par1--),
-                                      -66,
-                                      -96,
-                                      -35,
-                                      Float32x4.zzyz
-                                    ])
-                                      72: 'y vxi'
-                                  }) ??
-                            {13: par2});
-                        switch (4096) {
-                          case 3159134388:
-                            {
-                              /// Single-line documentation comment.
-                              {
-                                int loc3 = 0;
-                                do {
-                                  fld3_0 ??= foo1(
-                                      var5,
-                                      ((((true ? par2 : var7[var5[loc1]]))
-                                                  .isNotEmpty
-                                              ? 9
-                                              : -55) !=
-                                          var5[-36]));
-                                  fld3_1 = foo0();
-                                } while (++loc3 < 79);
-                              }
-                            }
-                            break;
-                          case 3159134393:
-                            {
-                              throw Int32x4.zxxw;
-                            }
-                            break;
-                        }
-                      } while (++loc2 < 77);
-                    }
-                  }
-                }
-              }
-            } while (++loc0 < 98);
-          }
-        }
-        break;
-    }
-    /*
-     * Multi-line
-     * comment.
-     */
-    return ((0.7728524536008519).isNaN ? 'BjzeSsJ' : foo1_3());
-  }
-
-  void run() {
-    super.run();
-    var5 ??= var5;
-    print({4294968296});
-  }
-}
-
-main() {
-  int count = 0;
-  try {
-    foo0();
-  } catch (e, st) {
-    count++;
-  }
-  try {
-    foo1(('  MQz').codeUnits, var1);
-  } catch (e, st) {
-    count++;
-  }
-  try {
-    foo2(
-        (var6).toSet(),
-        (var1
-            ? [-9223372036854775681, -66, 9223372032559874047, -3, 74]
-            : var5),
-        Map.identity());
-  } catch (e, st) {
-    count++;
-  }
-  try {
-    X0().foo0_0(var7);
-  } catch (e, st) {
-    count++;
-  }
-  try {
-    X1().foo1_0(
-        (false
-            ? {
-                7: 'QMNg',
-                12: 'wzc5-Iq',
-                63: '29an-z',
-                86: 'sF5',
-                59: '\u2665L',
-                43: 'k',
-                62: 'NvF\u{1f600}k',
-                84: 'ZW 1-o'
-              }
-            : var7),
-        {
-          28: '@smXqKl',
-          66: 'oL',
-          if (false) 74: 'B' else 81: 'X',
-          if (false) 18: 'j' else 25: 'N',
-          44: '\u{1f600}lrx8m',
-          20: 'hC',
-          73: 'q',
-          63: '\u{1f600}nE'
-        },
-        0.18875619647922648);
-  } catch (e, st) {
-    count++;
-  }
-  try {
-    X1().foo1_1((-((++var2))));
-  } catch (e, st) {
-    count++;
-  }
-  try {
-    X1().foo1_2((var1
-        ? (false
-            ? (true ? var7[((!(var1)) ? var5[Int32x4.xxyx] : 3)] : var4)
-            : Uri.encodeComponent(('yd' ?? (var0).padLeft(1, 'Q'))))
-        : var7[-2147483649]));
-  } catch (e, st) {
-    count++;
-  }
-  try {
-    X1().foo1_3();
-  } catch (e, st) {
-    count++;
-  }
-  try {
-    X2().foo2_0(Int32x4.xyyw);
-  } catch (e, st) {
-    count++;
-  }
-  try {
-    X2().foo2_1((!(((!(var1)) && (!((var1 ? false : var1)))))));
-  } catch (e, st) {
-    count++;
-  }
-  try {
-    X2().foo2_2(var7, ((-(var5[(--var2)])) << 98));
-  } catch (e, st) {
-    count++;
-  }
-  try {
-    X3().foo3_0(0.37767598562234317);
-  } catch (e, st) {
-    count++;
-  }
-  try {
-    X3().foo3_1(
-        -6, var0, (Uri.decodeComponent('yQg') + ((var4 ?? var4) + var0)));
-  } catch (e, st) {
-    count++;
-  }
-  try {
-    X3().foo1_0(
-        Map.unmodifiable({77: 'hG'}),
-        ((false
-                ? {
-                    88: 'Sv-EbnG',
-                    73: 'G',
-                    46: 'O#',
-                    16: 'm1nf(',
-                    91: 'F',
-                    11: 'Q+O@K',
-                    70: '3q\u2665BJ'
-                  }
-                : Map.identity()) ??
-            {
-              68: 'r',
-              56: 'IH&',
-              31: '9cqu',
-              49: '8ug',
-              84: 'mR2VyC',
-              41: 'gk&(asy'
-            }),
-        (var3 * sin(var3)));
-  } catch (e, st) {
-    count++;
-  }
-  try {
-    X3().run();
-  } catch (e, st) {
-    count++;
-  } finally {}
-  Expect.equals(-47639, var2);
-  Expect.equals(9, count);
-}
diff --git a/tests/language/vm/regression_38741_test.dart b/tests/language/vm/regression_38741.dart
similarity index 96%
rename from tests/language/vm/regression_38741_test.dart
rename to tests/language/vm/regression_38741.dart
index 246a7b9..2dd1223 100644
--- a/tests/language/vm/regression_38741_test.dart
+++ b/tests/language/vm/regression_38741.dart
@@ -10,7 +10,7 @@
 import 'package:expect/expect.dart';
 
 @pragma('vm:prefer-inline')
-bool foo(dynamic x) => x < 10;
+bool foo(int x) => x < 10;
 
 @pragma('vm:never-inline')
 bool bar(bool f) => f && foo(1);
diff --git a/tests/language/why_not_promoted/nullable_operator_call_error_test.dart b/tests/language/why_not_promoted/nullable_operator_call_error.dart
similarity index 100%
rename from tests/language/why_not_promoted/nullable_operator_call_error_test.dart
rename to tests/language/why_not_promoted/nullable_operator_call_error.dart
diff --git a/tests/language_2/function_subtype/null_test.dart b/tests/language_2/function_subtype/null.dart
similarity index 100%
rename from tests/language_2/function_subtype/null_test.dart
rename to tests/language_2/function_subtype/null.dart
diff --git a/tests/language_2/identifier/known_prefix_error_test.dart b/tests/language_2/identifier/known_prefix_error_test.dart
index 2cc7982..73a5e97 100644
--- a/tests/language_2/identifier/known_prefix_error_test.dart
+++ b/tests/language_2/identifier/known_prefix_error_test.dart
@@ -17,10 +17,6 @@
 import 'built_in_prefix_library_async.dart' as async;
 import 'built_in_prefix_library_await.dart' as await;
 import 'built_in_prefix_library_hide.dart' as hide;
-import 'built_in_prefix_library_library.dart' as library;
-//                                               ^^^^^^^
-// [analyzer] COMPILE_TIME_ERROR.BUILT_IN_IDENTIFIER_IN_DECLARATION
-// [cfe] Can't use 'library' as a name here.
 import 'built_in_prefix_library_of.dart' as of;
 import 'built_in_prefix_library_on.dart' as on;
 import 'built_in_prefix_library_show.dart' as show;
@@ -28,42 +24,42 @@
 import 'built_in_prefix_library_yield.dart' as yield;
 
 async<dynamic> _async = new async.A();
-// [error line 30, column 1, length 5]
+// [error line 26, column 1, length 5]
 // [analyzer] COMPILE_TIME_ERROR.NOT_A_TYPE
 // [cfe] 'async' isn't a type.
 // [cfe] Expected 0 type arguments.
 await<dynamic> _await = new await.A();
-// [error line 35, column 1, length 5]
+// [error line 31, column 1, length 5]
 // [analyzer] COMPILE_TIME_ERROR.NOT_A_TYPE
 // [cfe] 'await' isn't a type.
 // [cfe] Expected 0 type arguments.
 hide<dynamic> _hide = new hide.A();
-// [error line 40, column 1, length 4]
+// [error line 36, column 1, length 4]
 // [analyzer] COMPILE_TIME_ERROR.NOT_A_TYPE
 // [cfe] 'hide' isn't a type.
 // [cfe] Expected 0 type arguments.
 of<dynamic> _of = new of.A();
-// [error line 45, column 1, length 2]
+// [error line 41, column 1, length 2]
 // [analyzer] COMPILE_TIME_ERROR.NOT_A_TYPE
 // [cfe] 'of' isn't a type.
 // [cfe] Expected 0 type arguments.
 on<dynamic> _on = new on.A();
-// [error line 50, column 1, length 2]
+// [error line 46, column 1, length 2]
 // [analyzer] COMPILE_TIME_ERROR.NOT_A_TYPE
 // [cfe] 'on' isn't a type.
 // [cfe] Expected 0 type arguments.
 show<dynamic> _show = new show.A();
-// [error line 55, column 1, length 4]
+// [error line 51, column 1, length 4]
 // [analyzer] COMPILE_TIME_ERROR.NOT_A_TYPE
 // [cfe] 'show' isn't a type.
 // [cfe] Expected 0 type arguments.
 sync<dynamic> _sync = new sync.A();
-// [error line 60, column 1, length 4]
+// [error line 56, column 1, length 4]
 // [analyzer] COMPILE_TIME_ERROR.NOT_A_TYPE
 // [cfe] 'sync' isn't a type.
 // [cfe] Expected 0 type arguments.
 yield<dynamic> _yield = new yield.A();
-// [error line 65, column 1, length 5]
+// [error line 61, column 1, length 5]
 // [analyzer] COMPILE_TIME_ERROR.NOT_A_TYPE
 // [cfe] 'yield' isn't a type.
 // [cfe] Expected 0 type arguments.
diff --git a/tests/language_2/library/a.dart b/tests/language_2/library/a.dart
new file mode 100644
index 0000000..1b7fc61
--- /dev/null
+++ b/tests/language_2/library/a.dart
@@ -0,0 +1,12 @@
+// Copyright (c) 2011, 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
+
+library libraryA.dart;
+
+import "c.dart";
+
+var fooA = fooC;
diff --git a/tests/language_2/library/b.dart b/tests/language_2/library/b.dart
new file mode 100644
index 0000000..dfc7b36
--- /dev/null
+++ b/tests/language_2/library/b.dart
@@ -0,0 +1,12 @@
+// Copyright (c) 2011, 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
+
+library libraryB.dart;
+
+import "c.dart";
+
+var fooB = fooC;
diff --git a/tests/language_2/library/c.dart b/tests/language_2/library/c.dart
new file mode 100644
index 0000000..cc212ff
--- /dev/null
+++ b/tests/language_2/library/c.dart
@@ -0,0 +1,10 @@
+// Copyright (c) 2011, 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
+
+library libraryC.dart;
+
+var fooC = 10;
diff --git a/tests/language_2/library/d.dart b/tests/language_2/library/d.dart
new file mode 100644
index 0000000..25ec2a9
--- /dev/null
+++ b/tests/language_2/library/d.dart
@@ -0,0 +1,12 @@
+// Copyright (c) 2011, 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
+
+library libraryD.dart;
+
+import "f.dart";
+
+var fooD = fooC;
diff --git a/tests/language_2/library/e.dart b/tests/language_2/library/e.dart
new file mode 100644
index 0000000..c00631e
--- /dev/null
+++ b/tests/language_2/library/e.dart
@@ -0,0 +1,13 @@
+// Copyright (c) 2011, 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
+
+library libraryE.dart;
+
+import "c.dart";
+import "f.dart";
+
+var fooE = 0;
diff --git a/tests/language_2/library/f.dart b/tests/language_2/library/f.dart
new file mode 100644
index 0000000..085bea4
--- /dev/null
+++ b/tests/language_2/library/f.dart
@@ -0,0 +1,10 @@
+// Copyright (c) 2011, 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
+
+library libraryF.dart;
+
+var fooC = 10;
diff --git a/tests/language_2/library/library3.dart b/tests/language_2/library/library3.dart
new file mode 100644
index 0000000..96a979f
--- /dev/null
+++ b/tests/language_2/library/library3.dart
@@ -0,0 +1,10 @@
+// Copyright (c) 2011, 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
+
+library library3.dart;
+
+import "../library2.dart"; // defines "foo" and "foo1".
diff --git a/tests/language_2/library/library4.dart b/tests/language_2/library/library4.dart
new file mode 100644
index 0000000..f4d701e
--- /dev/null
+++ b/tests/language_2/library/library4.dart
@@ -0,0 +1,13 @@
+// Copyright (c) 2011, 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
+
+library library4.dart;
+
+import "../library2.dart"; // defines "foo" and "foo1".
+
+var foo;
+var foo1 = 0;
diff --git a/tests/language_2/library/library6_test.dart b/tests/language_2/library/library6.dart
similarity index 100%
rename from tests/language_2/library/library6_test.dart
rename to tests/language_2/library/library6.dart
diff --git a/tests/language_2/nosuchmethod_forwarding/abstract_override_with_different_type_test.dart b/tests/language_2/nosuchmethod_forwarding/abstract_override_with_different_type.dart
similarity index 100%
rename from tests/language_2/nosuchmethod_forwarding/abstract_override_with_different_type_test.dart
rename to tests/language_2/nosuchmethod_forwarding/abstract_override_with_different_type.dart
diff --git a/tests/language_2/prefix/new_test.dart b/tests/language_2/prefix/new_test.dart
index 8eac176..a056bdf 100644
--- a/tests/language_2/prefix/new_test.dart
+++ b/tests/language_2/prefix/new_test.dart
@@ -7,7 +7,7 @@
 library PrefixTest;
 
 import "package:expect/expect.dart";
-import "new_test1.dart";
+import "test1.dart";
 
 main() {
   Expect.equals(Prefix.getSource(), Prefix.getImport() + 1);
diff --git a/tests/language_2/prefix/new_test1.dart b/tests/language_2/prefix/new_test1.dart
index 05681ee..98c0e76 100644
--- a/tests/language_2/prefix/new_test1.dart
+++ b/tests/language_2/prefix/new_test1.dart
@@ -6,7 +6,7 @@
 
 library PrefixTest1;
 
-import "new_test2.dart" as test2;
+import "test2.dart" as test2;
 
 class Prefix {
   static const int foo = 43;
diff --git a/tests/language_2/regress/regress22976_test.dart b/tests/language_2/regress/regress22976_test.dart
index 4a954e6..dc9a53f 100644
--- a/tests/language_2/regress/regress22976_test.dart
+++ b/tests/language_2/regress/regress22976_test.dart
@@ -11,7 +11,7 @@
 class B<T> implements A<T> {}
 
 class C<S, T> implements B<S>, A<T> {}
-// [error line 13, column 1, length 38]
+// [error line 13, column 7, length 1]
 // [analyzer] COMPILE_TIME_ERROR.CONFLICTING_GENERIC_INTERFACES
 //    ^
 // [cfe] 'C' can't implement both 'A<S>' and 'A<T>'
diff --git a/tests/language_2/regress/regress34091_test.dart b/tests/language_2/regress/regress34091.dart
similarity index 100%
rename from tests/language_2/regress/regress34091_test.dart
rename to tests/language_2/regress/regress34091.dart
diff --git a/tests/language_2/script/source.dart b/tests/language_2/script/source.dart
new file mode 100644
index 0000000..b9861c7
--- /dev/null
+++ b/tests/language_2/script/source.dart
@@ -0,0 +1,9 @@
+// Copyright (c) 2011, 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
+
+// A perfectly legal dart source file for use with script and library tests.
+
+const int script_source = 1;
diff --git a/tests/language_2/string/overflow_test.dart b/tests/language_2/string/overflow.dart
similarity index 84%
rename from tests/language_2/string/overflow_test.dart
rename to tests/language_2/string/overflow.dart
index ad4a332..ad58981 100644
--- a/tests/language_2/string/overflow_test.dart
+++ b/tests/language_2/string/overflow.dart
@@ -11,15 +11,13 @@
 
 main() {
   String a = "a";
+  for (; a.length < 256 * 1024 * 1024;) a = a + a;
 
   var exception_thrown = false;
   try {
-    while (true) {
-      a = "$a$a";
-    }
+    var concat = "$a$a$a$a$a$a$a$a";
   } on OutOfMemoryError catch (exc) {
     exception_thrown = true;
   }
   Expect.isTrue(exception_thrown);
-  Expect.isTrue(a.startsWith('aaaaa') && a.length > 1024);
 }
diff --git a/tests/language_2/top_level/file3.dart b/tests/language_2/top_level/file3.dart
new file mode 100644
index 0000000..d9ffab6
--- /dev/null
+++ b/tests/language_2/top_level/file3.dart
@@ -0,0 +1,9 @@
+// Copyright (c) 2011, 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
+
+main() {
+  Expect.equals(42, prefix.topLevelVar);
+}
diff --git a/tests/language_2/unsorted/unevaluated_field_test.dart b/tests/language_2/unsorted/unevaluated_field.dart
similarity index 100%
rename from tests/language_2/unsorted/unevaluated_field_test.dart
rename to tests/language_2/unsorted/unevaluated_field.dart
diff --git a/tests/language_2/vm/regression_38412_test.dart b/tests/language_2/vm/regression_38412.dart
similarity index 100%
rename from tests/language_2/vm/regression_38412_test.dart
rename to tests/language_2/vm/regression_38412.dart
diff --git a/tests/language_2/vm/regression_38436_test.dart b/tests/language_2/vm/regression_38436.dart
similarity index 98%
copy from tests/language_2/vm/regression_38436_test.dart
copy to tests/language_2/vm/regression_38436.dart
index bda53da..f350f6c 100644
--- a/tests/language_2/vm/regression_38436_test.dart
+++ b/tests/language_2/vm/regression_38436.dart
@@ -530,7 +530,8 @@
                                                 57: var4,
                                                 73: var7[-43],
                                                 38: var0
-                                              }).isNotEmpty ||
+                                              })
+                                                  .isNotEmpty ||
                                               ({
                                                 67: var4,
                                                 14: 'M\u{1f600}1HNbP',
@@ -538,7 +539,8 @@
                                                 85: 'uyq',
                                                 95: var7[(-(Int32x4.wwxw))],
                                                 33: ''
-                                              }).isNotEmpty))
+                                              })
+                                                  .isNotEmpty))
                                       : false)
                                   ? var2
                                   : (++var2))
@@ -557,7 +559,8 @@
                                   51: '-8ht',
                                   26: ('(2l3\u2665h' ?? var0),
                                   79: var4
-                                }).isNotEmpty
+                                })
+                                        .isNotEmpty
                                     ? var5[(var2 % loc0)]
                                     : var2) %
                                 ((!(NetworkInterface.listSupported))
@@ -1565,8 +1568,7 @@
 
 class X3 extends X1 {
   Map<int, String> fld3_0 = {
-    if (true)
-      if (false) 45: 'ynEn\u2665nG' else 70: 'c\u{1f600}mN4\u2665a',
+    if (true) if (false) 45: 'ynEn\u2665nG' else 70: 'c\u{1f600}mN4\u2665a',
     if (true) 30: '6\u2665P!Pbi',
     81: 't',
     82: '17fx#!',
@@ -1738,7 +1740,8 @@
                                             7: par3,
                                             69: Uri.decodeFull(
                                                 (foo1_3() + 'LX+'))
-                                          }).isEmpty)
+                                          })
+                                            .isEmpty)
                                     ? (~((13 | 64)))
                                     : (-(var2)))),
                             (par1--),
@@ -1793,7 +1796,8 @@
                     4: 'pUc(q',
                     15: 'K\u{1f600}hmdZ\u2665',
                     95: (var1 ? var4 : (var1 ? fld3_0[-45] : foo1_3()))
-                  }).isNotEmpty
+                  })
+                              .isNotEmpty
                           ? ((var1 ? var1 : (var1 ? var1 : foo3_0(var3))) ||
                               foo3_0(var3))
                           : (!(((false || true) ? var1 : false))))
@@ -1991,7 +1995,8 @@
                                   95: '\u{1f600}2tIYqE',
                                   43: (true ? 'baf-\u2665' : var4),
                                   30: var7[(-((-68 % ZLibOption.defaultLevel)))]
-                                })).isNotEmpty))
+                                }))
+                                  .isNotEmpty))
                             -13
                           else
                             (var1 ? (-((-(var5[56])))) : (var2--)),
@@ -2153,7 +2158,8 @@
                                           ? ((var2--) ?? fld3_2)
                                           : var5[(fld3_2--)])],
                                       52: '(('
-                                    }).isEmpty)))
+                                    })
+                                        .isEmpty)))
                                 ? fld3_0
                                 : {
                                     39: foo1_3(),
diff --git a/tests/language_2/vm/regression_38741_test.dart b/tests/language_2/vm/regression_38741.dart
similarity index 100%
rename from tests/language_2/vm/regression_38741_test.dart
rename to tests/language_2/vm/regression_38741.dart
diff --git a/tools/VERSION b/tools/VERSION
index 83dfa8e..b2d68f0 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 14
 PATCH 0
-PRERELEASE 125
+PRERELEASE 126
 PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/tools/bots/test_matrix.json b/tools/bots/test_matrix.json
index bc961e1..83064f4 100644
--- a/tools/bots/test_matrix.json
+++ b/tools/bots/test_matrix.json
@@ -3105,6 +3105,14 @@
           ]
         },
         {
+          "name": "analyze runtime/tests/concurrency/run_stress_test_shards.dart",
+          "script": "out/ReleaseX64/dart-sdk/bin/dart",
+          "arguments": [
+            "analyze",
+            "runtime/tests/concurrency/run_stress_test_shards.dart"
+          ]
+        },
+        {
           "name": "analyze pkg/analysis_server",
           "script": "out/ReleaseX64/dart-sdk/bin/dart",
           "arguments": [
diff --git a/tools/package_deps/bin/package_deps.dart b/tools/package_deps/bin/package_deps.dart
index ad73069..eab4201 100644
--- a/tools/package_deps/bin/package_deps.dart
+++ b/tools/package_deps/bin/package_deps.dart
@@ -247,9 +247,9 @@
 
     var extraDevDeclarations = Set<String>.from(_declaredDevDependencies)
       ..removeAll(devdeps);
-    // Remove package:pedantic as it is often declared as a dev dependency in
-    // order to bring in its analysis_options.yaml file.
-    extraDevDeclarations.remove('pedantic');
+    // Remove package:pedantic and package:lints as they are often declared as
+    // dev dependencies in order to bring in their analysis_options.yaml files.
+    extraDevDeclarations.removeAll(['lints', 'pedantic']);
     if (extraDevDeclarations.isNotEmpty) {
       out('  ${_printSet(extraDevDeclarations)} declared in '
           "'dev_dependencies:' but not used in dev dirs.");