Pass FLUTTER_TOOL_ARGS to snapshot command. (#29938)

diff --git a/bin/flutter b/bin/flutter
index 178994f..dc9425d 100755
--- a/bin/flutter
+++ b/bin/flutter
@@ -121,7 +121,7 @@
 
     retry_upgrade
 
-    "$DART" --snapshot="$SNAPSHOT_PATH" --snapshot-kind=app-jit --packages="$FLUTTER_TOOLS_DIR/.packages" "$SCRIPT_PATH" training
+    "$DART" $FLUTTER_TOOL_ARGS --snapshot="$SNAPSHOT_PATH" --snapshot-kind=app-jit --packages="$FLUTTER_TOOLS_DIR/.packages" "$SCRIPT_PATH" training
     echo "$revision" > "$STAMP_PATH"
   fi
   # The exit here is duplicitous since the function is run in a subshell,
diff --git a/bin/flutter.bat b/bin/flutter.bat
index 7aa7020..3ee58af 100644
--- a/bin/flutter.bat
+++ b/bin/flutter.bat
@@ -152,7 +152,11 @@
 
     POPD
 
-    "%dart%" --snapshot="%snapshot_path%" --snapshot-kind=app-jit --packages="%flutter_tools_dir%\.packages" "%script_path%"
+    IF "%FLUTTER_TOOL_ARGS%" == "" (
+      "%dart%" --snapshot="%snapshot_path%" --snapshot-kind=app-jit --packages="%flutter_tools_dir%\.packages" "%script_path%"
+    ) else (
+      "%dart%" "%FLUTTER_TOOL_ARGS%" --snapshot="%snapshot_path%" --snapshot-kind=app-jit --packages="%flutter_tools_dir%\.packages" "%script_path%"
+    )
     IF "%ERRORLEVEL%" NEQ "0" (
       ECHO Error: Unable to create dart snapshot for flutter tool.
       SET exit_code=%ERRORLEVEL%
diff --git a/dev/bots/test.dart b/dev/bots/test.dart
index 60a54b8..5b92184 100644
--- a/dev/bots/test.dart
+++ b/dev/bots/test.dart
@@ -180,16 +180,24 @@
   final bq.BigqueryApi bigqueryApi = await _getBigqueryApi();
   await _runSmokeTests();
 
+  // The flutter_tool will currently be snapshotted without asserts. We need
+  // to force it to be regenerated with them enabled.
+  if (!Platform.isWindows) {
+    File(path.join(flutterRoot, 'bin', 'cache', 'flutter_tools.snapshot')).deleteSync();
+    File(path.join(flutterRoot, 'bin', 'cache', 'flutter_tools.stamp')).deleteSync();
+  }
   if (noUseBuildRunner) {
     await _pubRunTest(
       path.join(flutterRoot, 'packages', 'flutter_tools'),
       tableData: bigqueryApi?.tabledata,
+      enableFlutterToolAsserts: !Platform.isWindows,
     );
   } else {
     await _buildRunnerTest(
       path.join(flutterRoot, 'packages', 'flutter_tools'),
       flutterRoot,
       tableData: bigqueryApi?.tabledata,
+      enableFlutterToolAsserts: !Platform.isWindows,
     );
   }