From b0b2c0077a56e313cb00a9c5285e4bf4fb43f3b0 Mon Sep 17 00:00:00 2001 From: Siva Date: Mon, 16 Apr 2018 08:44:38 -0700 Subject: [PATCH] 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. --- .../flutter_test/exception_handling_expectation.txt | 2 +- .../flutter_test/test_async_utils_guarded_expectation.txt | 4 ++++ packages/flutter_tools/lib/src/compile.dart | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/dev/automated_tests/flutter_test/exception_handling_expectation.txt b/dev/automated_tests/flutter_test/exception_handling_expectation.txt index 4c0fb6e5239..9e1affd2afc 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 @@ Who lives, who dies, who tells your story\? When the exception was thrown, this was the stack: #[0-9]+ +main. \(.+[/\\]dev[/\\]automated_tests[/\\]flutter_test[/\\]exception_handling_test\.dart:16:9\) -#[0-9]+ +main. \(.+[/\\]dev[/\\]automated_tests[/\\]flutter_test[/\\]exception_handling_test\.dart:15:77\) +<> #[0-9]+ +.+ \(package:flutter_test[/\\]src[/\\]widget_tester\.dart:[0-9]+:[0-9]+\) <> ^\(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 6cb6a93b633..6c8afe8dc7d 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 @@ When the exception was thrown, this was the stack: 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 4e3d3baf4a0..658cf787fe0 100644 --- a/packages/flutter_tools/lib/src/compile.dart +++ b/packages/flutter_tools/lib/src/compile.dart @@ -90,6 +90,7 @@ Future compile( '--sdk-root', sdkRoot, '--strong', + '--sync-async', '--target=flutter', ]; if (trackWidgetCreation) @@ -215,6 +216,7 @@ class ResidentCompiler { _sdkRoot, '--incremental', '--strong', + '--sync-async', '--target=flutter', ]; if (outputPath != null) {