Version 2.15.0-228.0.dev

Merge commit '70479beea51ca045a4489d0fd61cd12c4075e9a4' into 'dev'
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index 4d344ed..d8d2ac7 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -80,7 +80,7 @@
 /// TODO(scheglov) Clean up the list of implicitly analyzed files.
 class AnalysisDriver implements AnalysisDriverGeneric {
   /// The version of data format, should be incremented on every format change.
-  static const int DATA_VERSION = 188;
+  static const int DATA_VERSION = 189;
 
   /// The number of exception contexts allowed to write. Once this field is
   /// zero, we stop writing any new exception contexts in this process.
diff --git a/pkg/analyzer/lib/src/dart/constant/evaluation.dart b/pkg/analyzer/lib/src/dart/constant/evaluation.dart
index 54d5c5d..e146cf2 100644
--- a/pkg/analyzer/lib/src/dart/constant/evaluation.dart
+++ b/pkg/analyzer/lib/src/dart/constant/evaluation.dart
@@ -610,10 +610,15 @@
     if (conditionResult == null) {
       return conditionResult;
     }
-    if (conditionResult.toBoolValue() == true) {
+
+    var conditionResultBool = conditionResult.toBoolValue();
+    if (conditionResultBool == null) {
+      node.thenExpression.accept(this);
+      node.elseExpression.accept(this);
+    } else if (conditionResultBool == true) {
       _reportNotPotentialConstants(node.elseExpression);
       return node.thenExpression.accept(this);
-    } else if (conditionResult.toBoolValue() == false) {
+    } else if (conditionResultBool == false) {
       _reportNotPotentialConstants(node.thenExpression);
       return node.elseExpression.accept(this);
     }
diff --git a/pkg/analyzer/lib/src/dart/resolver/ast_rewrite.dart b/pkg/analyzer/lib/src/dart/resolver/ast_rewrite.dart
index 1b78dc9..875fa4b 100644
--- a/pkg/analyzer/lib/src/dart/resolver/ast_rewrite.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/ast_rewrite.dart
@@ -282,11 +282,6 @@
       return node;
     }
     var receiver = node.target!;
-    var propertyName = node.propertyName;
-    if (propertyName.isSynthetic) {
-      // This isn't a constructor reference.
-      return node;
-    }
 
     Identifier receiverIdentifier;
     TypeArgumentList? typeArguments;
diff --git a/pkg/analyzer/lib/src/dart/resolver/constructor_reference_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/constructor_reference_resolver.dart
index a9fd9af..ceecf70 100644
--- a/pkg/analyzer/lib/src/dart/resolver/constructor_reference_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/constructor_reference_resolver.dart
@@ -70,7 +70,7 @@
             node,
             [name.name],
           );
-        } else {
+        } else if (!name.isSynthetic) {
           _resolver.errorReporter.reportErrorForNode(
             CompileTimeErrorCode.CLASS_INSTANTIATION_ACCESS_TO_UNKNOWN_MEMBER,
             node,
diff --git a/pkg/analyzer/test/src/dart/constant/evaluation_test.dart b/pkg/analyzer/test/src/dart/constant/evaluation_test.dart
index 33de914..d756acf 100644
--- a/pkg/analyzer/test/src/dart/constant/evaluation_test.dart
+++ b/pkg/analyzer/test/src/dart/constant/evaluation_test.dart
@@ -1393,6 +1393,22 @@
         errorCodes: [CompileTimeErrorCode.INVALID_CONSTANT]);
   }
 
+  test_visitConditionalExpression_lazy_unknown_int_invalid() async {
+    await resolveTestCode('''
+const c = identical(0, 0.0) ? 1 : new Object();
+''');
+    _evaluateConstantOrNull('c',
+        errorCodes: [CompileTimeErrorCode.INVALID_CONSTANT]);
+  }
+
+  test_visitConditionalExpression_lazy_unknown_invalid_int() async {
+    await resolveTestCode('''
+const c = identical(0, 0.0) ? 1 : new Object();
+''');
+    _evaluateConstantOrNull('c',
+        errorCodes: [CompileTimeErrorCode.INVALID_CONSTANT]);
+  }
+
   test_visitIntegerLiteral() async {
     await resolveTestCode('''
 const double d = 3;
diff --git a/pkg/analyzer/test/src/dart/resolution/constructor_reference_test.dart b/pkg/analyzer/test/src/dart/resolution/constructor_reference_test.dart
index eac6bb7..b9c66d7 100644
--- a/pkg/analyzer/test/src/dart/resolution/constructor_reference_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/constructor_reference_test.dart
@@ -307,6 +307,28 @@
     );
   }
 
+  test_class_generic_nothing_hasNamedConstructor() async {
+    await assertErrorsInCode('''
+class A<T> {
+  A.foo();
+}
+
+void bar() {
+  A<int>.;
+}
+''', [
+      error(ParserErrorCode.MISSING_IDENTIFIER, 49, 1),
+    ]);
+
+    var classElement = findElement.class_('A');
+    assertConstructorReference(
+      findNode.constructorReference('A<int>.;'),
+      null,
+      classElement,
+      'dynamic',
+    );
+  }
+
   test_class_generic_unnamed() async {
     await assertNoErrorsInCode('''
 class A<T> {
diff --git a/pkg/analyzer/test/src/diagnostics/class_instantiation_access_to_member_test.dart b/pkg/analyzer/test/src/diagnostics/class_instantiation_access_to_member_test.dart
index a996659..a797cfa 100644
--- a/pkg/analyzer/test/src/diagnostics/class_instantiation_access_to_member_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/class_instantiation_access_to_member_test.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 'package:analyzer/src/dart/error/syntactic_errors.dart';
 import 'package:analyzer/src/error/codes.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
@@ -100,4 +101,16 @@
           60, 8),
     ]);
   }
+
+  test_syntheticIdentifier() async {
+    await assertErrorsInCode('''
+class A<T> {
+  A.foo();
+}
+
+var x = A<int>.;
+''', [
+      error(ParserErrorCode.MISSING_IDENTIFIER, 42, 1),
+    ]);
+  }
 }
diff --git a/pkg/compiler/lib/src/kernel/loader.dart b/pkg/compiler/lib/src/kernel/loader.dart
index 30e4d8e..79e95d4 100644
--- a/pkg/compiler/lib/src/kernel/loader.dart
+++ b/pkg/compiler/lib/src/kernel/loader.dart
@@ -90,12 +90,8 @@
       // We defer selecting the platform until we've resolved the null safety
       // mode.
       String getPlatformFilename() {
-        String platform = targetName;
-        if (!_options.useLegacySubtyping) {
-          platform += "_nnbd_strong";
-        }
-        platform += "_platform.dill";
-        return platform;
+        String unsoundMarker = _options.useLegacySubtyping ? "_unsound" : "";
+        return "${targetName}_platform$unsoundMarker.dill";
       }
 
       var resolvedUri = _options.compilationTarget;
diff --git a/pkg/compiler/test/end_to_end/dill_loader_test.dart b/pkg/compiler/test/end_to_end/dill_loader_test.dart
index f5529d55..7bf0330 100644
--- a/pkg/compiler/test/end_to_end/dill_loader_test.dart
+++ b/pkg/compiler/test/end_to_end/dill_loader_test.dart
@@ -13,9 +13,7 @@
 import 'package:compiler/src/kernel/dart2js_target.dart';
 import 'package:compiler/src/kernel/loader.dart';
 import 'package:expect/expect.dart';
-import 'package:front_end/src/api_prototype/front_end.dart';
-import 'package:front_end/src/compute_platform_binaries_location.dart'
-    show computePlatformBinariesLocation;
+import 'package:front_end/src/api_unstable/dart2js.dart';
 import 'package:front_end/src/fasta/kernel/utils.dart' show serializeComponent;
 import 'package:kernel/target/targets.dart' show TargetFlags;
 
@@ -23,13 +21,14 @@
 /// than just string source files.
 main() {
   asyncTest(() async {
-    String filename = 'tests/corelib_2/list_literal_test.dart';
+    String filename = 'tests/corelib/list_literal_test.dart';
     Uri uri = Uri.base.resolve(filename);
-    DiagnosticCollector diagnostics = new DiagnosticCollector();
-    OutputCollector output = new OutputCollector();
+    DiagnosticCollector diagnostics = DiagnosticCollector();
+    OutputCollector output = OutputCollector();
 
-    var options = new CompilerOptions()
-      ..target = new Dart2jsTarget("dart2js", new TargetFlags())
+    var options = CompilerOptions()
+      ..target = Dart2jsTarget("dart2js", TargetFlags(enableNullSafety: true))
+      ..nnbdMode = NnbdMode.Strong
       ..packagesFileUri = Uri.base.resolve('.packages')
       ..additionalDills = <Uri>[
         computePlatformBinariesLocation().resolve("dart2js_platform.dill"),
diff --git a/pkg/compiler/test/end_to_end/modular_loader_test.dart b/pkg/compiler/test/end_to_end/modular_loader_test.dart
index ae9a5b8..35c1066 100644
--- a/pkg/compiler/test/end_to_end/modular_loader_test.dart
+++ b/pkg/compiler/test/end_to_end/modular_loader_test.dart
@@ -13,13 +13,10 @@
 import 'package:compiler/src/kernel/dart2js_target.dart';
 import 'package:compiler/src/kernel/loader.dart';
 import 'package:expect/expect.dart';
-import 'package:front_end/src/api_prototype/experimental_flags.dart'
-    show ExperimentalFlag;
 import 'package:front_end/src/api_prototype/front_end.dart';
 import 'package:front_end/src/api_prototype/memory_file_system.dart';
 import 'package:front_end/src/api_prototype/standard_file_system.dart';
-import 'package:front_end/src/compute_platform_binaries_location.dart'
-    show computePlatformBinariesLocation;
+import 'package:front_end/src/api_unstable/dart2js.dart';
 import 'package:front_end/src/fasta/kernel/utils.dart' show serializeComponent;
 import 'package:kernel/ast.dart';
 import 'package:kernel/target/targets.dart' show TargetFlags;
@@ -35,8 +32,8 @@
         ['c2.dart'], {'c2.dart': sourceC, 'a.dill': aDill, 'b.dill': bDill},
         deps: ['a.dill', 'b.dill']);
 
-    DiagnosticCollector diagnostics = new DiagnosticCollector();
-    OutputCollector output = new OutputCollector();
+    DiagnosticCollector diagnostics = DiagnosticCollector();
+    OutputCollector output = OutputCollector();
     Uri entryPoint = Uri.parse('org-dartlang-test:///c2.dart');
     CompilerImpl compiler = compilerFor(
         entryPoint: entryPoint,
@@ -68,7 +65,7 @@
 /// Generate a component for a modular complation unit.
 Future<List<int>> compileUnit(List<String> inputs, Map<String, dynamic> sources,
     {List<String> deps: const []}) async {
-  var fs = new MemoryFileSystem(_defaultDir);
+  var fs = MemoryFileSystem(_defaultDir);
   sources.forEach((name, data) {
     var entity = fs.entityForUri(toTestUri(name));
     if (data is String) {
@@ -81,9 +78,10 @@
     computePlatformBinariesLocation().resolve("dart2js_platform.dill"),
   ]..addAll(deps.map(toTestUri));
   fs.entityForUri(toTestUri('.packages')).writeAsStringSync('');
-  var options = new CompilerOptions()
-    ..target = new Dart2jsTarget("dart2js", new TargetFlags())
-    ..fileSystem = new TestFileSystem(fs)
+  var options = CompilerOptions()
+    ..target = Dart2jsTarget("dart2js", TargetFlags(enableNullSafety: true))
+    ..fileSystem = TestFileSystem(fs)
+    ..nnbdMode = NnbdMode.Strong
     ..additionalDills = additionalDills
     ..packagesFileUri = toTestUri('.packages')
     ..explicitExperimentalFlags = {ExperimentalFlag.nonNullable: true};
@@ -118,30 +116,27 @@
 }
 
 const sourceA = '''
-// @dart=2.7
 class A0 {
-  StringBuffer buffer = new StringBuffer();
+  StringBuffer buffer = StringBuffer();
 }
 ''';
 
 const sourceB = '''
-// @dart=2.7
 import 'a0.dart';
 
 class B1 extends A0 {
-  A0 get foo => null;
+  A0? get foo => null;
 }
 
-A0 createA0() => new A0();
+A0 createA0() => A0();
 ''';
 
 const sourceC = '''
-// @dart=2.7
 import 'b1.dart';
 
 class C2 extends B1 {
   final foo = createA0();
 }
 
-main() => print(new C2().foo.buffer.toString());
+main() => print(C2().foo.buffer.toString());
 ''';
diff --git a/pkg/compiler/tool/modular_test_suite.dart b/pkg/compiler/tool/modular_test_suite.dart
index c2054cb..6195548 100644
--- a/pkg/compiler/tool/modular_test_suite.dart
+++ b/pkg/compiler/tool/modular_test_suite.dart
@@ -186,8 +186,8 @@
       // When no flags are passed, we can skip compilation and reuse the
       // platform.dill created by build.py.
       if (flags.isEmpty) {
-        var platform =
-            computePlatformBinariesLocation().resolve("dart2js_platform.dill");
+        var platform = computePlatformBinariesLocation()
+            .resolve("dart2js_platform_unsound.dill");
         var destination = root.resolveUri(toUri(module, dillId));
         if (_options.verbose) {
           print('command:\ncp $platform $destination');
diff --git a/pkg/front_end/lib/src/compute_platform_binaries_location.dart b/pkg/front_end/lib/src/compute_platform_binaries_location.dart
index 96039c4..c849e08 100644
--- a/pkg/front_end/lib/src/compute_platform_binaries_location.dart
+++ b/pkg/front_end/lib/src/compute_platform_binaries_location.dart
@@ -41,9 +41,9 @@
     case 'dart2js':
       switch (nnbdMode) {
         case NnbdMode.Strong:
-          return 'dart2js_nnbd_strong_platform.dill';
-        case NnbdMode.Weak:
           return 'dart2js_platform.dill';
+        case NnbdMode.Weak:
+          return 'dart2js_platform_unsound.dill';
         case NnbdMode.Agnostic:
           break;
       }
@@ -51,9 +51,9 @@
     case 'dart2js_server':
       switch (nnbdMode) {
         case NnbdMode.Strong:
-          return 'dart2js_server_nnbd_strong_platform.dill';
-        case NnbdMode.Weak:
           return 'dart2js_server_platform.dill';
+        case NnbdMode.Weak:
+          return 'dart2js_server_platform_unsound.dill';
         case NnbdMode.Agnostic:
           break;
       }
diff --git a/runtime/vm/compiler/backend/il_arm64.cc b/runtime/vm/compiler/backend/il_arm64.cc
index 7432fad..aa96c5a 100644
--- a/runtime/vm/compiler/backend/il_arm64.cc
+++ b/runtime/vm/compiler/backend/il_arm64.cc
@@ -3964,13 +3964,12 @@
     if (ValueFitsSmi()) {
       return;
     }
-    __ cmp(out, compiler::Operand(value, LSL, 1));
+    __ cmpw(value, compiler::Operand(out, ASR, 1));
     __ b(&done, EQ);  // Jump if the sbfiz instruction didn't lose info.
   } else {
     ASSERT(from_representation() == kUnboxedUint32);
     // A 32 bit positive Smi has one tag bit and one unused sign bit,
     // leaving only 30 bits for the payload.
-    // __ ubfiz(out, value, kSmiTagSize, compiler::target::kSmiBits);
     __ LslImmediate(out, value, kSmiTagSize, compiler::kFourBytes);
     if (ValueFitsSmi()) {
       return;
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index 849f375..2b4fa76 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -68,9 +68,9 @@
 # ......_internal/
 # ........strong.sum
 # ........dart2js_platform.dill
+# ........dart2js_platform_unsound.dill
 # ........dart2js_server_platform.dill
-# ........dart2js_platform_strong.dill
-# ........dart2js_server_platform_strong.dill
+# ........dart2js_server_platform_unsound.dill
 # ........vm_platform_strong.dill
 # ........dev_compiler/
 # ......async/
@@ -513,16 +513,16 @@
   visibility = [ ":create_full_sdk" ]
   deps = [
     ":copy_libraries",
-    "../utils/compiler:compile_dart2js_nnbd_strong_platform",
     "../utils/compiler:compile_dart2js_platform",
-    "../utils/compiler:compile_dart2js_server_nnbd_strong_platform",
+    "../utils/compiler:compile_dart2js_platform_unsound",
     "../utils/compiler:compile_dart2js_server_platform",
+    "../utils/compiler:compile_dart2js_server_platform_unsound",
   ]
   sources = [
-    "$root_out_dir/dart2js_nnbd_strong_platform.dill",
     "$root_out_dir/dart2js_platform.dill",
-    "$root_out_dir/dart2js_server_nnbd_strong_platform.dill",
+    "$root_out_dir/dart2js_platform_unsound.dill",
     "$root_out_dir/dart2js_server_platform.dill",
+    "$root_out_dir/dart2js_server_platform_unsound.dill",
   ]
   outputs =
       [ "$root_out_dir/$dart_sdk_output/lib/_internal/{{source_file_part}}" ]
diff --git a/sdk/lib/io/platform.dart b/sdk/lib/io/platform.dart
index bca141d..72053f5 100644
--- a/sdk/lib/io/platform.dart
+++ b/sdk/lib/io/platform.dart
@@ -115,6 +115,14 @@
   static String get operatingSystemVersion => _operatingSystemVersion;
 
   /// The local hostname for the system.
+  ///
+  /// For example:
+  ///   "mycomputer.corp.example.com"
+  ///   "mycomputer"
+  ///
+  /// Uses the platform
+  /// [`gethostname`](https://pubs.opengroup.org/onlinepubs/9699919799/)
+  /// implementation.
   static String get localHostname => _localHostname;
 
   /// Whether the operating system is a version of
diff --git a/tools/VERSION b/tools/VERSION
index caa0e82..1cfe599 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 15
 PATCH 0
-PRERELEASE 227
+PRERELEASE 228
 PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/tools/bots/test_matrix.json b/tools/bots/test_matrix.json
index 8c911b1..f1079d2 100644
--- a/tools/bots/test_matrix.json
+++ b/tools/bots/test_matrix.json
@@ -102,10 +102,10 @@
       ".dart_tool/package_config.json",
       "out/ReleaseIA32/dart",
       "out/ReleaseIA32/dart2js_platform.dill",
-      "out/ReleaseIA32/dart2js_platform_strong.dill",
+      "out/ReleaseIA32/dart2js_platform_unsound.dill",
       "out/ReleaseX64/dart",
       "out/ReleaseX64/dart2js_platform.dill",
-      "out/ReleaseX64/dart2js_platform_strong.dill",
+      "out/ReleaseX64/dart2js_platform_unsound.dill",
       "pkg/",
       "runtime/tests/",
       "samples-dev/",
@@ -143,18 +143,17 @@
       "tools/",
       "xcodebuild/ReleaseIA32/dart",
       "xcodebuild/ReleaseIA32/dart2js_platform.dill",
-      "xcodebuild/ReleaseIA32/dart2js_platform_strong.dill",
+      "xcodebuild/ReleaseIA32/dart2js_platform_unsound.dill",
       "xcodebuild/ReleaseX64/dart",
       "xcodebuild/ReleaseX64/dart2js_platform.dill",
-      "xcodebuild/ReleaseX64/dart2js_platform_strong.dill"
+      "xcodebuild/ReleaseX64/dart2js_platform_unsound.dill"
     ],
     "web_platform_hostasserts_nnbd": [
       ".packages",
       ".dart_tool/package_config.json",
       "out/ReleaseX64/dart",
       "out/ReleaseX64/dart2js_platform.dill",
-      "out/ReleaseX64/dart2js_nnbd_strong_platform.dill",
-      "out/ReleaseX64/dart2js_platform_strong.dill",
+      "out/ReleaseX64/dart2js_platform_unsound.dill",
       "pkg/",
       "runtime/tests/",
       "samples-dev/",
@@ -184,8 +183,7 @@
       "tools/",
       "xcodebuild/ReleaseX64/dart",
       "xcodebuild/ReleaseX64/dart2js_platform.dill",
-      "xcodebuild/ReleaseX64/dart2js_nnbd_strong_platform.dill",
-      "xcodebuild/ReleaseX64/dart2js_platform_strong.dill"
+      "xcodebuild/ReleaseX64/dart2js_platform_unsound.dill"
     ],
     "front-end": [
       ".packages",
@@ -3639,7 +3637,7 @@
             "create_sdk",
             "runtime",
             "dart2js_platform.dill",
-            "dart2js_nnbd_strong_platform.dill",
+            "dart2js_platform_unsound.dill",
             "kernel-service.dart.snapshot"
           ]
         },
@@ -3675,7 +3673,7 @@
             "gen_snapshot",
             "dart_precompiled_runtime",
             "dart2js_platform.dill",
-            "dart2js_nnbd_strong_platform.dill",
+            "dart2js_platform_unsound.dill",
             "kernel-service.dart.snapshot",
             "dartdevc_test"
           ]
diff --git a/tools/bots/try_benchmarks.sh b/tools/bots/try_benchmarks.sh
index 7d4d5c8..75f7375 100755
--- a/tools/bots/try_benchmarks.sh
+++ b/tools/bots/try_benchmarks.sh
@@ -75,7 +75,7 @@
     rm -f linux-x64_profile.tar.gz
   elif [ "$command" = linux-ia32-build ]; then
     # NOTE: These are duplicated in tools/bots/test_matrix.json, keep in sync.
-    ./tools/build.py --mode=release --arch=ia32 create_sdk runtime dart2js_platform.dill dart2js_nnbd_strong_platform.dill kernel-service.dart.snapshot
+    ./tools/build.py --mode=release --arch=ia32 create_sdk runtime dart2js_platform.dill dart2js_platform_unsound.dill kernel-service.dart.snapshot
   elif [ "$command" = linux-ia32-archive ]; then
     strip -w \
       -K 'kDartVmSnapshotData' \
@@ -142,13 +142,13 @@
       --exclude pkg/front_end/testcases \
       -- \
       out/ReleaseIA32/dart2js_platform.dill \
+      out/ReleaseIA32/dart2js_platform_unsound.dill \
       out/ReleaseIA32/vm_outline_strong.dill \
       out/ReleaseIA32/vm_platform_strong.dill \
       out/ReleaseIA32/gen/kernel_service.dill \
       out/ReleaseIA32/dart-sdk \
       out/ReleaseIA32/dart \
       out/ReleaseIA32/gen_snapshot \
-      out/ReleaseIA32/dart2js_nnbd_strong_platform.dill \
       out/ReleaseIA32/kernel-service.dart.snapshot \
       out/ReleaseIA32/run_vm_tests \
       sdk \
@@ -196,7 +196,7 @@
     rm -rf tmp
   elif [ "$command" = linux-x64-build ]; then
     # NOTE: These are duplicated in tools/bots/test_matrix.json, keep in sync.
-    ./tools/build.py --mode=release --arch=x64 create_sdk runtime gen_snapshot dart_precompiled_runtime dart2js_platform.dill dart2js_nnbd_strong_platform.dill kernel-service.dart.snapshot dartdevc_test
+    ./tools/build.py --mode=release --arch=x64 create_sdk runtime gen_snapshot dart_precompiled_runtime dart2js_platform.dill dart2js_platform_unsound.dill kernel-service.dart.snapshot dartdevc_test
   elif [ "$command" = linux-x64-archive ]; then
     strip -w \
       -K 'kDartVmSnapshotData' \
@@ -282,13 +282,13 @@
       --exclude pkg/front_end/testcases \
       -- \
       out/ReleaseX64/dart2js_platform.dill \
+      out/ReleaseX64/dart2js_platform_unsound.dill \
       out/ReleaseX64/vm_outline_strong.dill \
       out/ReleaseX64/vm_platform_strong.dill \
       out/ReleaseX64/gen/kernel_service.dill \
       out/ReleaseX64/dart-sdk \
       out/ReleaseX64/dart \
       out/ReleaseX64/gen_snapshot \
-      out/ReleaseX64/dart2js_nnbd_strong_platform.dill \
       out/ReleaseX64/kernel-service.dart.snapshot \
       out/ReleaseX64/run_vm_tests \
       third_party/d8/linux/x64 \
diff --git a/utils/compiler/BUILD.gn b/utils/compiler/BUILD.gn
index 90190b8..a3366fa 100644
--- a/utils/compiler/BUILD.gn
+++ b/utils/compiler/BUILD.gn
@@ -50,15 +50,15 @@
 
 application_snapshot("dart2js") {
   deps = [
-    ":compile_dart2js_nnbd_strong_platform",
     ":compile_dart2js_platform",
+    ":compile_dart2js_platform_unsound",
     ":dart2js_create_snapshot_entry",
   ]
   inputs = [
     "$root_out_dir/dart2js_platform.dill",
+    "$root_out_dir/dart2js_platform_unsound.dill",
     "$root_out_dir/dart2js_outline.dill",
-    "$root_out_dir/dart2js_nnbd_strong_platform.dill",
-    "$root_out_dir/dart2js_nnbd_strong_outline.dill",
+    "$root_out_dir/dart2js_outline_unsound.dill",
   ]
   vm_args = []
   main_dart = "$target_gen_dir/dart2js.dart"
@@ -73,6 +73,22 @@
   ]
 }
 
+compile_platform("compile_dart2js_platform_unsound") {
+  single_root_scheme = "org-dartlang-sdk"
+  single_root_base = rebase_path("$sdk_root/")
+  libraries_specification_uri = "org-dartlang-sdk:///lib/libraries.json"
+
+  outputs = [
+    "$root_out_dir/dart2js_platform_unsound.dill",
+    "$root_out_dir/dart2js_outline_unsound.dill",
+  ]
+
+  args = [
+    "--target=dart2js",
+    "--no-defines",
+    "dart:core",
+  ]
+}
 compile_platform("compile_dart2js_platform") {
   single_root_scheme = "org-dartlang-sdk"
   single_root_base = rebase_path("$sdk_root/")
@@ -87,23 +103,23 @@
     "--target=dart2js",
     "--no-defines",
     "dart:core",
+    "--nnbd-strong",
   ]
 }
-compile_platform("compile_dart2js_nnbd_strong_platform") {
+compile_platform("compile_dart2js_server_platform_unsound") {
   single_root_scheme = "org-dartlang-sdk"
   single_root_base = rebase_path("$sdk_root/")
   libraries_specification_uri = "org-dartlang-sdk:///lib/libraries.json"
 
   outputs = [
-    "$root_out_dir/dart2js_nnbd_strong_platform.dill",
-    "$root_out_dir/dart2js_nnbd_strong_outline.dill",
+    "$root_out_dir/dart2js_server_platform_unsound.dill",
+    "$root_out_dir/dart2js_server_outline_unsound.dill",
   ]
 
   args = [
-    "--target=dart2js",
+    "--target=dart2js_server",
     "--no-defines",
     "dart:core",
-    "--nnbd-strong",
   ]
 }
 compile_platform("compile_dart2js_server_platform") {
@@ -120,22 +136,6 @@
     "--target=dart2js_server",
     "--no-defines",
     "dart:core",
-  ]
-}
-compile_platform("compile_dart2js_server_nnbd_strong_platform") {
-  single_root_scheme = "org-dartlang-sdk"
-  single_root_base = rebase_path("$sdk_root/")
-  libraries_specification_uri = "org-dartlang-sdk:///lib/libraries.json"
-
-  outputs = [
-    "$root_out_dir/dart2js_server_nnbd_strong_platform.dill",
-    "$root_out_dir/dart2js_server_nnbd_strong_outline.dill",
-  ]
-
-  args = [
-    "--target=dart2js_server",
-    "--no-defines",
-    "dart:core",
     "--nnbd-strong",
   ]
 }