Use `-O2` optimization for DevTools wasm build. (#8814)

diff --git a/tool/build_release.sh b/tool/build_release.sh
index 31c6963..2a3cd79 100755
--- a/tool/build_release.sh
+++ b/tool/build_release.sh
@@ -82,6 +82,8 @@
 flutter build web \
   --source-maps \
   --wasm \
+  -O2 \
+  --dart2js-optimization=O4 \
   --pwa-strategy=offline-first \
   --release \
   --no-tree-shake-icons
diff --git a/tool/lib/commands/build.dart b/tool/lib/commands/build.dart
index 63abe12..68efce7 100644
--- a/tool/lib/commands/build.dart
+++ b/tool/lib/commands/build.dart
@@ -108,7 +108,13 @@
           ] else ...[
             // Do not minify stack traces in debug mode.
             if (buildMode == 'debug') '--dart2js-optimization=O1',
-            if (buildMode != 'debug') '--$buildMode',
+            if (buildMode != 'debug') ...[
+              '--$buildMode',
+              // Use -O2 optimization by default (sound dart) but override for
+              // dart2js with -O4 (it's too slow otherwise).
+              '-O2',
+              '--dart2js-optimization=O4',
+            ],
           ],
           '--pwa-strategy=offline-first',
           '--no-tree-shake-icons',