{"action":"created","issue":{"url":"https://api.github.com/repos/dart-lang/async_await/issues/84","labels_url":"https://api.github.com/repos/dart-lang/async_await/issues/84/labels{/name}","comments_url":"https://api.github.com/repos/dart-lang/async_await/issues/84/comments","events_url":"https://api.github.com/repos/dart-lang/async_await/issues/84/events","html_url":"https://github.com/dart-lang/async_await/issues/84","id":58714349,"number":84,"title":"Too many await cause an error","user":{"login":"jorat1346","id":5124513,"avatar_url":"https://avatars.githubusercontent.com/u/5124513?v=3","gravatar_id":"","url":"https://api.github.com/users/jorat1346","html_url":"https://github.com/jorat1346","followers_url":"https://api.github.com/users/jorat1346/followers","following_url":"https://api.github.com/users/jorat1346/following{/other_user}","gists_url":"https://api.github.com/users/jorat1346/gists{/gist_id}","starred_url":"https://api.github.com/users/jorat1346/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jorat1346/subscriptions","organizations_url":"https://api.github.com/users/jorat1346/orgs","repos_url":"https://api.github.com/users/jorat1346/repos","events_url":"https://api.github.com/users/jorat1346/events{/privacy}","received_events_url":"https://api.github.com/users/jorat1346/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-02-24T09:42:24Z","updated_at":"2015-02-24T12:33:38Z","closed_at":null,"body":"Having too many await in a function cause the compiler to crash, limit seen to be about 800:\r\n```\r\nC:\\Users\\admin\\dart\\test_for_var>pub build --trace --mode debug\r\nLoading source assets...\r\nBuilding test_for_var...\r\n[Info from Dart2JS]:\r\nCompiling test_for_var|web/main.dart...\r\n[Error from Dart2JS]:\r\nweb\\main.dart:\r\nThe compiler crashed when compiling this element.\r\nThe compiler is broken.\r\n\r\nWhen compiling the above element, the compiler crashed. It is not\r\npossible to tell if this is caused by a problem in your program or\r\nnot. Regardless, the compiler should not crash.\r\n\r\nThe Dart team would greatly appreciate if you would take a moment to\r\nreport this problem at http://dartbug.com/new.\r\n\r\nPlease include the following information:\r\n\r\n* the name and version of your operating system,\r\n\r\n* the Dart SDK build number (build number could not be determined), and\r\n\r\n* the entire message you see here (including the full stack trace\r\n  below as well as the source location above).\r\n\r\nCouldn't parse VM stack trace line '#3      _CustomZone.runUnary (dart:async/zone.dart)'.\r\nStack trace:\r\n#0      StackZoneSpecification._run (package:stack_trace/src/stack_zone_specification.dart:211)\r\n#1      registerUnaryCallback.<anonymous closure> (package:stack_trace/src/stack_zone_specification.dart:134)\r\n#2      _rootRunUnary (dart:async/zone.dart:902)\r\n#3      _CustomZone.runUnary (dart:async/zone.dart)\r\n#4      _Future._propagateToListeners.handleError (dart:async/future_impl.dart:515)\r\n...\r\n...\r\n#5      registerUnaryCallback.<anonymous closure>.<anonymous closure> (package:stack_trace/src/stack_zone_specification.dart:134)\r\n#6      StackZoneSpecification._run (package:stack_trace/src/stack_zone_specification.da#7      _Future._propagateToListeners (dart:async/future_impl.dart:570)\r\n#8      _Future._completeWithValue (dart:async/future_impl.dart:358)\r\n#9      _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:412)\r\n#10     StackZoneSpecification._run (package:stack_trace/src/stack_zone_specification.dart:210)\r\n#11     registerCallback.<anonymous closure> (package:stack_trace/src/stack_zone_specification.dart:124)\r\n#12     _rootRun (dart:async/zone.dart:895)\r\n#13     _CustomZone.run (dart:async/zone.dart:796)\r\n#14     _CustomZone.runGuarded (dart:async/zone.dart:704)\r\n#15     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:729)\r\n#16     _asyncRunCallbackLoop (dart:async/schedule_microtask.dart:41)\r\n#17     _asyncRunCallback (dart:async/schedule_microtask.dart:48)\r\n#18     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:96)\r\n#19     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:143)\r\npackage:stack_trace/src/chain.dart 148                                                                         Chain.terse\r\npackage:barback/src/errors.dart 128                                                                            _WrappedException.toString\r\ndart:core                                                                                                      _StringBase._interpolate\r\ne:\\b\\build\\slave\\dart-editor-win-dev\\build\\dart\\sdk\\lib\\_internal\\pub_generated\\lib\\src\\command\\build.dart 64  BuildCommand.onRunTransformerCommand.<fn>.<fn>.<fn>\r\ndart:async                                                                                                     _BroadcastStreamController.add\r\npackage:barback/src/graph/asset_cascade.dart 209                                                               AssetCascade.reportError\r\npackage:barback/src/graph/transform_node.dart 656                                                              TransformNode._runApply.<fn>\r\ndart:isolate                                                                                                   _RawReceivePortImpl._handleMessage\r\n===== asynchronous gap ===========================\r\ndart:async                                                                                                     _StreamImpl.listen\r\ne:\\b\\build\\slave\\dart-editor-win-dev\\build\\dart\\sdk\\lib\\_internal\\pub_generated\\lib\\src\\command\\build.dart 63  BuildCommand.onRunTransformerCommand.<fn>.<fn>\r\ndart:isolate                                                                                                   _RawReceivePortImpl._handleMessage\r\n===== asynchronous gap ===========================\r\ndart:async                                                                                                     _Future.then\r\ne:\\b\\build\\slave\\dart-editor-win-dev\\build\\dart\\sdk\\lib\\_internal\\pub_generated\\lib\\src\\command\\build.dart 62  BuildCommand.onRunTransformerCommand.<fn>\r\ndart:isolate                                                                                                   _RawReceivePortImpl._handleMessage\r\n===== asynchronous gap ===========================\r\ndart:async                                                                                                       scheduleMicrotask\r\ne:\\b\\build\\slave\\dart-editor-win-dev\\build\\dart\\sdk\\lib\\_internal\\pub_generated\\lib\\src\\command\\build.dart 53    BuildCommand.onRunTransformerCommand\r\ne:\\b\\build\\slave\\dart-editor-win-dev\\build\\dart\\sdk\\lib\\_internal\\pub_generated\\lib\\src\\command\\barback.dart 61  BarbackCommand.run\r\npackage:args/command_runner.dart 179                                                                             CommandRunner.runCommand.<fn>\r\ndart:async                                                                                                       Future.Future.sync\r\npackage:args/command_runner.dart 132                                                                             CommandRunner.runCommand\r\ne:\\b\\build\\slave\\dart-editor-win-dev\\build\\dart\\sdk\\lib\\_internal\\pub_generated\\lib\\src\\command_runner.dart 196  PubCommandRunner.runCommand.<fn>.join0.join1.break0.<fn>.<fn>\r\ndart:async                                                                                                       Future.Future.sync\r\ne:\\b\\build\\slave\\dart-editor-win-dev\\build\\dart\\sdk\\lib\\_internal\\pub_generated\\lib\\src\\utils.dart 98            captureErrors.<fn>\r\npackage:stack_trace/src/chain.dart 78                                                                            Chain.capture\r\ne:\\b\\build\\slave\\dart-editor-win-dev\\build\\dart\\sdk\\lib\\_internal\\pub_generated\\lib\\src\\utils.dart 112           captureErrors\r\ne:\\b\\build\\slave\\dart-editor-win-dev\\build\\dart\\sdk\\lib\\_internal\\pub_generated\\lib\\src\\command_runner.dart 195  PubCommandRunner.runCommand.<fn>.join0.join1.break0.<fn>\r\ndart:isolate                                                                                                     _RawReceivePortImpl._handleMessage\r\n---- Log transcript ----\r\nFINE: Pub 1.9.0-dev.8.0\r\nIO  : Spawning \"cmd /c ver\" in C:\\Users\\darkangel\\dart\\test_for_var\\.\r\nIO  : Finished ver. Exit code 0.\r\n    | stdout:\r\n    | |\r\n    | | Microsoft Windows [Version 6.2.9200]\r\n    | Nothing output on stderr.\r\nIO  : Deleting directory build.\r\nFINE: Loading asset environment...\r\nFINE: Loading package graph...\r\nFINE: Loading package graph finished (0.1s).\r\nFINE: Initializing barback...\r\nFINE: Serving packages on localhost:0.\r\nMSG : Loading source assets...\r\nFINE: Providing sources for test_for_var|lib.\r\nFINE: Loading source assets finished (0.0s).\r\nFINE: Provided sources.\r\nFINE: Loading transformers...\r\nFINE: Transformer dependencies:\r\nFINE: Loading transformers finished (0.0s).\r\nFINE: Initializing barback finished (0.0s).\r\nFINE: Loading asset environment finished (0.2s).\r\nMSG : Building test_for_var...\r\nFINE: Providing sources for test_for_var|web.\r\nFINE: Bound \"web\" to localhost:0.\r\nMSG : [Info from Dart2JS]:\r\n    | Compiling test_for_var|web/main.dart...\r\nERR : [Error from Dart2JS]:\r\n    | web\\main.dart:\r\n    | The compiler crashed when compiling this element.\r\nERR : Couldn't parse VM stack trace line '#3      _CustomZone.runUnary (dart:async/zone.dart)'.\r\n    | Stack trace:\r\n    | #0      StackZoneSpecification._run (package:stack_trace/src/stack_zone_specification.dart:211)\r\n    | #1      registerUnaryCallback.<anonymous closure> (package:stack_trace/src/stack_zone_specification.dart:134)\r\n    | #2      _rootRunUnary (dart:async/zone.dart:902)\r\n    | #3      _CustomZone.runUnary (dart:async/zone.dart)\r\n    | #4      _Future._propagateToListeners.handleError (dart:async/future_impl.dart:515)\r\n    | ...\r\n    | ...\r\n    | #5      registerUnaryCallback.<anonymous closure>.<anonymous closure> (package:stack_trace/src/stack_zone_specification.dart:134)\r\n    | #6      StackZoneSpecification._run (package:stack_trace/src/stack_zone_specification.da#7      _Future._propagateToListeners (dart:async/future_impl.dart:570)\r\n    | #8      _Future._completeWithValue (dart:async/future_impl.dart:358)\r\n    | #9      _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:412)\r\n    | #10     StackZoneSpecification._run (package:stack_trace/src/stack_zone_specification.dart:210)\r\n    | #11     registerCallback.<anonymous closure> (package:stack_trace/src/stack_zone_specification.dart:124)\r\n    | #12     _rootRun (dart:async/zone.dart:895)\r\n    | #13     _CustomZone.run (dart:async/zone.dart:796)\r\n    | #14     _CustomZone.runGuarded (dart:async/zone.dart:704)\r\n    | #15     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:729)\r\n    | #16     _asyncRunCallbackLoop (dart:async/schedule_microtask.dart:41)\r\n    | #17     _asyncRunCallback (dart:async/schedule_microtask.dart:48)\r\n    | #18     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:96)\r\n    | #19     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:143)\r\nFINE: Exception type: FormatException\r\nERR : package:stack_trace/src/chain.dart 148                                                                         Chain.terse\r\n    | package:barback/src/errors.dart 128                                                                            _WrappedException.toString\r\n    | dart:core                                                                                                      _StringBase._interpolate\r\n    | e:\\b\\build\\slave\\dart-editor-win-dev\\build\\dart\\sdk\\lib\\_internal\\pub_generated\\lib\\src\\command\\build.dart 64  BuildCommand.onRunTransformerCommand.<fn>.<fn>.<fn>\r\n    | dart:async                                                                                                     _BroadcastStreamController.add\r\n    | package:barback/src/graph/asset_cascade.dart 209                                                               AssetCascade.reportError\r\n    | package:barback/src/graph/transform_node.dart 656                                                              TransformNode._runApply.<fn>\r\n    | dart:isolate                                                                                                   _RawReceivePortImpl._handleMessage\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                                                                     _StreamImpl.listen\r\n    | e:\\b\\build\\slave\\dart-editor-win-dev\\build\\dart\\sdk\\lib\\_internal\\pub_generated\\lib\\src\\command\\build.dart 63  BuildCommand.onRunTransformerCommand.<fn>.<fn>\r\n    | dart:isolate                                                                                                   _RawReceivePortImpl._handleMessage\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                                                                     _Future.then\r\n    | e:\\b\\build\\slave\\dart-editor-win-dev\\build\\dart\\sdk\\lib\\_internal\\pub_generated\\lib\\src\\command\\build.dart 62  BuildCommand.onRunTransformerCommand.<fn>\r\n    | dart:isolate                                                                                                   _RawReceivePortImpl._handleMessage\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                                                                       scheduleMicrotask\r\n    | e:\\b\\build\\slave\\dart-editor-win-dev\\build\\dart\\sdk\\lib\\_internal\\pub_generated\\lib\\src\\command\\build.dart 53    BuildCommand.onRunTransformerCommand\r\n    | e:\\b\\build\\slave\\dart-editor-win-dev\\build\\dart\\sdk\\lib\\_internal\\pub_generated\\lib\\src\\command\\barback.dart 61  BarbackCommand.run\r\n    | package:args/command_runner.dart 179                                                                             CommandRunner.runCommand.<fn>\r\n    | dart:async                                                                                                       Future.Future.sync\r\n    | package:args/command_runner.dart 132                                                                             CommandRunner.runCommand\r\n    | e:\\b\\build\\slave\\dart-editor-win-dev\\build\\dart\\sdk\\lib\\_internal\\pub_generated\\lib\\src\\command_runner.dart 196  PubCommandRunner.runCommand.<fn>.join0.join1.break0.<fn>.<fn>\r\n\r\n    | dart:async                                                                                                       Future.Future.sync\r\n    | e:\\b\\build\\slave\\dart-editor-win-dev\\build\\dart\\sdk\\lib\\_internal\\pub_generated\\lib\\src\\utils.dart 98            captureErrors.<fn>\r\n    | package:stack_trace/src/chain.dart 78                                                                            Chain.capture\r\n    | e:\\b\\build\\slave\\dart-editor-win-dev\\build\\dart\\sdk\\lib\\_internal\\pub_generated\\lib\\src\\utils.dart 112           captureErrors\r\n    | e:\\b\\build\\slave\\dart-editor-win-dev\\build\\dart\\sdk\\lib\\_internal\\pub_generated\\lib\\src\\command_runner.dart 195  PubCommandRunner.runCommand.<fn>.join0.join1.break0.<fn>\r\n    | dart:isolate                                                                                                     _RawReceivePortImpl._handleMessage\r\n---- End log transcript ----\r\n```\r\n\r\nCode:\r\n\r\n```dart\r\n// Copyright (c) 2015, <your name>. All rights reserved. Use of this source code\r\n// is governed by a BSD-style license that can be found in the LICENSE file.\r\n\r\nimport 'dart:async';\r\n\r\nFuture<dynamic> f() {\r\n  return new Future.value();\r\n}\r\n\r\nint func(a) async {\r\n  await f();\r\n  print(a);\r\n  return a+1;\r\n}\r\n\r\nmain() async {\r\n  print('Hello world');\r\n  var a = await func(0);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n  a = await func(a);\r\n}\r\n```"},"comment":{"url":"https://api.github.com/repos/dart-lang/async_await/issues/comments/75748380","html_url":"https://github.com/dart-lang/async_await/issues/84#issuecomment-75748380","issue_url":"https://api.github.com/repos/dart-lang/async_await/issues/84","id":75748380,"user":{"login":"kmillikin","id":1971137,"avatar_url":"https://avatars.githubusercontent.com/u/1971137?v=3","gravatar_id":"","url":"https://api.github.com/users/kmillikin","html_url":"https://github.com/kmillikin","followers_url":"https://api.github.com/users/kmillikin/followers","following_url":"https://api.github.com/users/kmillikin/following{/other_user}","gists_url":"https://api.github.com/users/kmillikin/gists{/gist_id}","starred_url":"https://api.github.com/users/kmillikin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kmillikin/subscriptions","organizations_url":"https://api.github.com/users/kmillikin/orgs","repos_url":"https://api.github.com/users/kmillikin/repos","events_url":"https://api.github.com/users/kmillikin/events{/privacy}","received_events_url":"https://api.github.com/users/kmillikin/received_events","type":"User","site_admin":false},"created_at":"2015-02-24T12:33:38Z","updated_at":"2015-02-24T12:33:38Z","body":"That's because the translator is implemented in continuation-passing style.  It is (indirectly) recursive even for a sequence of statements.  All the major Dart implementations (the VM and dart2js) should soon have native support, so we're unlikely to change the translation at this point.\r\n\r\nAs a workaround, you can split the function up or (in the test case above) await in a loop :)"}}