diff --git a/packages/_flutter_web_build_script/lib/build_script.dart b/packages/_flutter_web_build_script/lib/build_script.dart
index d0c4f5d..3635df9 100644
--- a/packages/_flutter_web_build_script/lib/build_script.dart
+++ b/packages/_flutter_web_build_script/lib/build_script.dart
@@ -5,9 +5,6 @@
 // ignore_for_file: implementation_imports
 import 'dart:isolate';
 
-import 'package:analyzer/dart/analysis/results.dart';
-import 'package:analyzer/dart/analysis/utilities.dart';
-import 'package:analyzer/dart/ast/ast.dart';
 import 'package:build/build.dart';
 import 'package:build_config/build_config.dart';
 import 'package:build_modules/build_modules.dart';
@@ -76,27 +73,6 @@
     ),
   ),
   core.apply(
-    'flutter_tools:shell',
-    <BuilderFactory>[
-      (BuilderOptions options) {
-        final bool hasPlugins = options.config['hasPlugins'] == true;
-        final bool initializePlatform = options.config['initializePlatform'] == true;
-        return FlutterWebShellBuilder(
-          hasPlugins: hasPlugins,
-          initializePlatform: initializePlatform,
-        );
-      },
-    ],
-    core.toRoot(),
-    hideOutput: true,
-    defaultGenerateFor: const InputSet(
-      include: <String>[
-        'lib/**',
-        'web/**',
-      ],
-    ),
-  ),
-  core.apply(
       'flutter_tools:module_library',
       <Builder Function(BuilderOptions)>[moduleLibraryBuilder],
       core.toAllPackages(),
@@ -127,6 +103,7 @@
               kernelTargetName: 'ddc',
               useIncrementalCompiler: true,
               trackUnusedInputs: true,
+              experiments: <String>['non-nullable'], // ignore: deprecated_member_use
             ),
         (BuilderOptions builderOptions) => DevCompilerBuilder(
               useIncrementalCompiler: true,
@@ -134,6 +111,7 @@
               platform: flutterWebPlatform,
               platformSdk: builderOptions.config['flutterWebSdk'] as String,
               sdkKernelPath: path.url.join('kernel', 'flutter_ddc_sdk.dill'),
+              experiments: <String>['non-nullable'],
               librariesPath: path.absolute(path.join(builderOptions.config['flutterWebSdk'] as String, 'libraries.json')),
             ),
       ],
@@ -142,23 +120,6 @@
       hideOutput: true,
       appliesBuilders: <String>['flutter_tools:ddc_modules']),
   core.apply(
-    'flutter_tools:entrypoint',
-    <BuilderFactory>[
-      (BuilderOptions options) => FlutterWebEntrypointBuilder(
-          options.config[kReleaseFlag] as bool ?? false,
-          options.config[kProfileFlag] as bool ?? false,
-          options.config['flutterWebSdk'] as String,
-      ),
-    ],
-    core.toRoot(),
-    hideOutput: true,
-    defaultGenerateFor: const InputSet(
-      include: <String>[
-        'lib/**_web_entrypoint.dart',
-      ],
-    ),
-  ),
-  core.apply(
     'flutter_tools:test_entrypoint',
     <BuilderFactory>[
       (BuilderOptions options) => const FlutterWebTestEntrypointBuilder(),
@@ -208,35 +169,6 @@
   }
 }
 
-/// A ddc-only entry point builder that respects the Flutter target flag.
-class FlutterWebEntrypointBuilder implements Builder {
-  const FlutterWebEntrypointBuilder(this.release, this.profile, this.flutterWebSdk);
-
-  final bool release;
-  final bool profile;
-  final String flutterWebSdk;
-
-  @override
-  Map<String, List<String>> get buildExtensions => const <String, List<String>>{
-    '.dart': <String>[
-      ddcBootstrapExtension,
-      jsEntrypointExtension,
-      jsEntrypointSourceMapExtension,
-      jsEntrypointArchiveExtension,
-      digestsEntrypointExtension,
-    ],
-  };
-
-  @override
-  Future<void> build(BuildStep buildStep) async {
-    await bootstrapDdc(
-      buildStep,
-      platform: flutterWebPlatform,
-      skipPlatformCheck: true,
-    );
-  }
-}
-
 /// Bootstraps the test entry point.
 class FlutterWebTestBootstrapBuilder implements Builder {
   const FlutterWebTestBootstrapBuilder();
@@ -334,86 +266,3 @@
     }
   }
 }
-
-/// A shell builder which generates the web specific entry point.
-class FlutterWebShellBuilder implements Builder {
-  const FlutterWebShellBuilder({this.hasPlugins = false, this.initializePlatform = true});
-
-  final bool hasPlugins;
-
-  /// Whether to call webOnlyInitializePlatform.
-  final bool initializePlatform;
-
-  @override
-  Future<void> build(BuildStep buildStep) async {
-    final AssetId dartEntrypointId = buildStep.inputId;
-    final bool isAppEntrypoint = await _isAppEntryPoint(dartEntrypointId, buildStep);
-    if (!isAppEntrypoint) {
-      return;
-    }
-    final AssetId outputId = buildStep.inputId.changeExtension('_web_entrypoint.dart');
-    final String pluginRegistrantPath = _getPluginRegistrantPath(dartEntrypointId.path);
-    if (hasPlugins) {
-      await buildStep.writeAsString(outputId, '''
-import 'dart:ui' as ui;
-
-import 'package:flutter_web_plugins/flutter_web_plugins.dart';
-
-import '$pluginRegistrantPath';
-import "${path.url.basename(buildStep.inputId.path)}" as entrypoint;
-
-Future<void> main() async {
-  registerPlugins(webPluginRegistry);
-  if ($initializePlatform) {
-    await ui.webOnlyInitializePlatform();
-  }
-  entrypoint.main();
-}
-''');
-    } else {
-      await buildStep.writeAsString(outputId, '''
-import 'dart:ui' as ui;
-
-import "${path.url.basename(buildStep.inputId.path)}" as entrypoint;
-
-Future<void> main() async {
-  if ($initializePlatform) {
-    await ui.webOnlyInitializePlatform();
-  }
-  entrypoint.main();
-}
-''');
-    }
-  }
-
-  /// Gets the relative path to the generated plugin registrant from the app
-  /// app entrypoint.
-  String _getPluginRegistrantPath(String entrypoint) {
-    return path.url.relative('lib/generated_plugin_registrant.dart',
-        from: path.url.dirname(entrypoint));
-  }
-
-  @override
-  Map<String, List<String>> get buildExtensions => const <String, List<String>>{
-    '.dart': <String>['_web_entrypoint.dart'],
-  };
-}
-
-/// Returns whether or not [dartId] is an app entry point (basically, whether
-/// or not it has a `main` function).
-Future<bool> _isAppEntryPoint(AssetId dartId, AssetReader reader) async {
-  assert(dartId.extension == '.dart');
-  // Skip reporting errors here, dartdevc will report them later with nicer
-  // formatting.
-  final ParseStringResult result = parseString(
-    content: await reader.readAsString(dartId),
-    throwIfDiagnostics: false,
-  );
-  // Allow two or fewer arguments so that entrypoints intended for use with
-  // [spawnUri] get counted.
-  return result.unit.declarations.any((CompilationUnitMember node) {
-    return node is FunctionDeclaration &&
-        node.name.name == 'main' &&
-        node.functionExpression.parameters.parameters.length <= 2;
-  });
-}
diff --git a/packages/flutter/test/foundation/print_test.dart b/packages/flutter/test/foundation/print_test.dart
index efbcb45..e20e8ed 100644
--- a/packages/flutter/test/foundation/print_test.dart
+++ b/packages/flutter/test/foundation/print_test.dart
@@ -2,14 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// @dart = 2.8
-
+// @dart = 2.10
 import 'package:flutter/foundation.dart';
 import 'package:fake_async/fake_async.dart';
 import '../flutter_test_alternative.dart';
 
 import 'capture_output.dart';
 
+String? foo;
+
 void main() {
   test('debugPrint', () {
     expect(
diff --git a/packages/flutter_driver/test/common.dart b/packages/flutter_driver/test/common.dart
index e5987b0..8e78458 100644
--- a/packages/flutter_driver/test/common.dart
+++ b/packages/flutter_driver/test/common.dart
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// @dart = 2.8
+
 import 'dart:io';
 
 import 'package:flutter_driver/src/common/error.dart';
diff --git a/packages/flutter_driver/test/flutter_driver_test.dart b/packages/flutter_driver/test/flutter_driver_test.dart
index 95bfba7..339e562 100644
--- a/packages/flutter_driver/test/flutter_driver_test.dart
+++ b/packages/flutter_driver/test/flutter_driver_test.dart
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// @dart = 2.8
+
 import 'dart:async';
 import 'dart:convert';
 
diff --git a/packages/flutter_driver/test/src/web_tests/web_extension_test.dart b/packages/flutter_driver/test/src/web_tests/web_extension_test.dart
index 4da772e..6cdb0c8 100644
--- a/packages/flutter_driver/test/src/web_tests/web_extension_test.dart
+++ b/packages/flutter_driver/test/src/web_tests/web_extension_test.dart
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// @dart = 2.8
 import 'dart:js' as js;
 
 import 'package:flutter_driver/src/extension/_extension_web.dart';
diff --git a/packages/flutter_driver/test_driver/failure.dart b/packages/flutter_driver/test_driver/failure.dart
index c2d4131..a0c717e 100644
--- a/packages/flutter_driver/test_driver/failure.dart
+++ b/packages/flutter_driver/test_driver/failure.dart
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// @dart = 2.8
+
 void main() {
   // Dummy. Only needed because driver needs an entry point.
 }
diff --git a/packages/flutter_driver/test_driver/failure_test.dart b/packages/flutter_driver/test_driver/failure_test.dart
index 0701284..919bbb3 100644
--- a/packages/flutter_driver/test_driver/failure_test.dart
+++ b/packages/flutter_driver/test_driver/failure_test.dart
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// @dart = 2.8
+
 void main() {
   // Intentionally fail the test. We want to see driver return a non-zero exit
   // code when this happens.
diff --git a/packages/flutter_tools/lib/src/isolated/web_compilation_delegate.dart b/packages/flutter_tools/lib/src/isolated/web_compilation_delegate.dart
index fe5b734..5e226fa 100644
--- a/packages/flutter_tools/lib/src/isolated/web_compilation_delegate.dart
+++ b/packages/flutter_tools/lib/src/isolated/web_compilation_delegate.dart
@@ -226,12 +226,6 @@
       '--enable-experiment=non-nullable',
       '--skip-build-script-check',
       '--define', 'flutter_tools:ddc=flutterWebSdk=$flutterWebSdk',
-      '--define', 'flutter_tools:entrypoint=flutterWebSdk=$flutterWebSdk',
-      '--define', 'flutter_tools:entrypoint=release=$release',
-      '--define', 'flutter_tools:entrypoint=profile=$profile',
-      '--define', 'flutter_tools:shell=flutterWebSdk=$flutterWebSdk',
-      '--define', 'flutter_tools:shell=hasPlugins=$hasPlugins',
-      '--define', 'flutter_tools:shell=initializePlatform=$initializePlatform',
       // The following will cause build runner to only build tests that were requested.
       if (testTargets != null && testTargets.hasBuildFilters)
         for (final String buildFilter in testTargets.buildFilters)
diff --git a/packages/flutter_web_plugins/lib/flutter_web_plugins.dart b/packages/flutter_web_plugins/lib/flutter_web_plugins.dart
index f6bad0d..9459dfc 100644
--- a/packages/flutter_web_plugins/lib/flutter_web_plugins.dart
+++ b/packages/flutter_web_plugins/lib/flutter_web_plugins.dart
@@ -2,5 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// @dart = 2.8
+
 export 'src/plugin_event_channel.dart';
 export 'src/plugin_registry.dart';
diff --git a/packages/flutter_web_plugins/lib/src/plugin_event_channel.dart b/packages/flutter_web_plugins/lib/src/plugin_event_channel.dart
index 86497fe..d52d249 100644
--- a/packages/flutter_web_plugins/lib/src/plugin_event_channel.dart
+++ b/packages/flutter_web_plugins/lib/src/plugin_event_channel.dart
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// @dart = 2.8
+
 import 'dart:async';
 
 import 'package:flutter/services.dart';
diff --git a/packages/flutter_web_plugins/lib/src/plugin_registry.dart b/packages/flutter_web_plugins/lib/src/plugin_registry.dart
index 88bac5e..00eaf85 100644
--- a/packages/flutter_web_plugins/lib/src/plugin_registry.dart
+++ b/packages/flutter_web_plugins/lib/src/plugin_registry.dart
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// @dart = 2.8
+
 import 'dart:async';
 import 'dart:ui' as ui;
 
diff --git a/packages/flutter_web_plugins/test/plugin_event_channel_test.dart b/packages/flutter_web_plugins/test/plugin_event_channel_test.dart
index 35eeb3e..6d62b12 100644
--- a/packages/flutter_web_plugins/test/plugin_event_channel_test.dart
+++ b/packages/flutter_web_plugins/test/plugin_event_channel_test.dart
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// @dart = 2.8
+
 @TestOn('chrome') // Uses web-only Flutter SDK
 
 import 'dart:async';
diff --git a/packages/flutter_web_plugins/test/plugin_registry_test.dart b/packages/flutter_web_plugins/test/plugin_registry_test.dart
index ac6016f..1088e28 100644
--- a/packages/flutter_web_plugins/test/plugin_registry_test.dart
+++ b/packages/flutter_web_plugins/test/plugin_registry_test.dart
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// @dart = 2.8
+
 @TestOn('chrome') // Uses web-only Flutter SDK
 
 import 'dart:ui' as ui;
