Turn support for sync-async on in Flutter. (#16543)

* Turn support for sync-async on in Flutter. With this feature
execution of async functions starts immediately instead of it
being delayed by one microtask tick.

* Address review comments.

* Adjust some stack trace expectations which are slightly different with
--sync-async turned on.
diff --git a/dev/automated_tests/flutter_test/exception_handling_expectation.txt b/dev/automated_tests/flutter_test/exception_handling_expectation.txt
index 4c0fb6e..9e1affd 100644
--- a/dev/automated_tests/flutter_test/exception_handling_expectation.txt
+++ b/dev/automated_tests/flutter_test/exception_handling_expectation.txt
@@ -43,7 +43,7 @@
 
 When the exception was thrown, this was the stack:
 #[0-9]+ +main.<anonymous closure> \(.+[/\\]dev[/\\]automated_tests[/\\]flutter_test[/\\]exception_handling_test\.dart:16:9\)
-#[0-9]+ +main.<anonymous closure> \(.+[/\\]dev[/\\]automated_tests[/\\]flutter_test[/\\]exception_handling_test\.dart:15:77\)
+<<skip until matching line>>
 #[0-9]+ +.+ \(package:flutter_test[/\\]src[/\\]widget_tester\.dart:[0-9]+:[0-9]+\)
 <<skip until matching line>>
 ^\(elided [0-9]+ .+\)$
diff --git a/dev/automated_tests/flutter_test/test_async_utils_guarded_expectation.txt b/dev/automated_tests/flutter_test/test_async_utils_guarded_expectation.txt
index 6cb6a93..6c8afe8 100644
--- a/dev/automated_tests/flutter_test/test_async_utils_guarded_expectation.txt
+++ b/dev/automated_tests/flutter_test/test_async_utils_guarded_expectation.txt
@@ -18,6 +18,10 @@
 The test description was:
 TestAsyncUtils - custom guarded sections
 ════════════════════════════════════════════════════════════════════════════════════════════════════
+══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
+The following message was thrown:
+Multiple exceptions \(2\) were detected during the running of the current test, and at least one was unexpected.
+════════════════════════════════════════════════════════════════════════════════════════════════════
 .*(this line has more of the test framework's output)?
   Test failed\. See exception logs above\.
   The test description was: TestAsyncUtils - custom guarded sections
diff --git a/packages/flutter_tools/lib/src/compile.dart b/packages/flutter_tools/lib/src/compile.dart
index 4e3d3ba..658cf78 100644
--- a/packages/flutter_tools/lib/src/compile.dart
+++ b/packages/flutter_tools/lib/src/compile.dart
@@ -90,6 +90,7 @@
     '--sdk-root',
     sdkRoot,
     '--strong',
+    '--sync-async',
     '--target=flutter',
   ];
   if (trackWidgetCreation)
@@ -215,6 +216,7 @@
       _sdkRoot,
       '--incremental',
       '--strong',
+      '--sync-async',
       '--target=flutter',
     ];
     if (outputPath != null) {