diff --git a/packages/flutter_tools/lib/src/build_system/targets/web.dart b/packages/flutter_tools/lib/src/build_system/targets/web.dart index 2b66ffaf5b2..f9c240f34b0 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/web.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/web.dart @@ -258,6 +258,7 @@ class Dart2WasmTarget extends Dart2WebTarget { decodeDartDefines(environment.defines, kDartDefines), ); + assert(buildMode == BuildMode.release || buildMode == BuildMode.profile); final List compilationArgs = [ artifacts.getArtifactPath(Artifact.engineDartBinary, platform: TargetPlatform.web_javascript), 'compile', @@ -265,6 +266,8 @@ class Dart2WasmTarget extends Dart2WebTarget { '--packages=.dart_tool/package_config.json', '--extra-compiler-option=--dart-sdk=$dartSdkPath', '--extra-compiler-option=--platform=$platformFilePath', + '--extra-compiler-option=--delete-tostring-package-uri=dart:ui', + '--extra-compiler-option=--delete-tostring-package-uri=package:flutter', if (compilerConfig.renderer == WebRendererMode.skwasm) ...[ '--extra-compiler-option=--import-shared-memory', '--extra-compiler-option=--shared-memory-max-pages=32768', diff --git a/packages/flutter_tools/lib/src/compile.dart b/packages/flutter_tools/lib/src/compile.dart index 15d209367f1..1a68a4d3092 100644 --- a/packages/flutter_tools/lib/src/compile.dart +++ b/packages/flutter_tools/lib/src/compile.dart @@ -183,11 +183,15 @@ List buildModeOptions(BuildMode mode, List dartDefines) => '-Ddart.vm.profile=true', if (!dartDefines.any((String define) => define.startsWith('dart.vm.product'))) '-Ddart.vm.product=false', + '--delete-tostring-package-uri=dart:ui', + '--delete-tostring-package-uri=package:flutter', ...kDartCompilerExperiments, ], BuildMode.release => [ '-Ddart.vm.profile=false', '-Ddart.vm.product=true', + '--delete-tostring-package-uri=dart:ui', + '--delete-tostring-package-uri=package:flutter', ...kDartCompilerExperiments, ], _ => throw Exception('Unknown BuildMode: $mode') diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/web_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/web_test.dart index 4c2bd93d438..4b39bf6e48d 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/web_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/web_test.dart @@ -36,6 +36,8 @@ const List _kDart2WasmLinuxArgs = [ '--packages=.dart_tool/package_config.json', '--extra-compiler-option=--dart-sdk=Artifact.engineDartSdkPath.TargetPlatform.web_javascript', '--extra-compiler-option=--platform=HostArtifact.webPlatformKernelFolder/dart2wasm_platform.dill', + '--extra-compiler-option=--delete-tostring-package-uri=dart:ui', + '--extra-compiler-option=--delete-tostring-package-uri=package:flutter', ]; void main() { diff --git a/packages/flutter_tools/test/general.shard/compile_batch_test.dart b/packages/flutter_tools/test/general.shard/compile_batch_test.dart index 9d2ad2a8868..9d0ee764e30 100644 --- a/packages/flutter_tools/test/general.shard/compile_batch_test.dart +++ b/packages/flutter_tools/test/general.shard/compile_batch_test.dart @@ -200,6 +200,8 @@ void main() { '--no-print-incremental-dependencies', '-Ddart.vm.profile=true', '-Ddart.vm.product=false', + '--delete-tostring-package-uri=dart:ui', + '--delete-tostring-package-uri=package:flutter', '--no-link-platform', '--aot', '--tfa', @@ -248,6 +250,8 @@ void main() { '--no-print-incremental-dependencies', '-Ddart.vm.profile=false', '-Ddart.vm.product=true', + '--delete-tostring-package-uri=dart:ui', + '--delete-tostring-package-uri=package:flutter', '--no-link-platform', '--aot', '--tfa', diff --git a/packages/flutter_tools/test/general.shard/compile_test.dart b/packages/flutter_tools/test/general.shard/compile_test.dart index 28442b625bf..a0db3b8d604 100644 --- a/packages/flutter_tools/test/general.shard/compile_test.dart +++ b/packages/flutter_tools/test/general.shard/compile_test.dart @@ -105,11 +105,15 @@ void main() { testWithoutContext('buildModeOptions removes matching profile define in profile mode', () { expect(buildModeOptions(BuildMode.profile, ['dart.vm.profile=true']), [ '-Ddart.vm.product=false', + '--delete-tostring-package-uri=dart:ui', + '--delete-tostring-package-uri=package:flutter', ]); }); testWithoutContext('buildModeOptions removes both matching profile and release define in profile mode', () { expect(buildModeOptions(BuildMode.profile, ['dart.vm.profile=false', 'dart.vm.product=true']), [ + '--delete-tostring-package-uri=dart:ui', + '--delete-tostring-package-uri=package:flutter', ]); }); }