commit | 6efd3b3654f11f60065da41bf40b4577adda2233 | [log] [tgz] |
---|---|---|
author | Stephen Adams <sra@google.com> | Wed May 09 18:22:07 2018 +0000 |
committer | commit-bot@chromium.org <commit-bot@chromium.org> | Wed May 09 18:22:07 2018 +0000 |
tree | fa3961eb5577583288c95863ae4b60832f859fb8 | |
parent | e67222a92b681231f39128024dfa8bfb5ac00324 [diff] |
Refactor output code for generators sync*/async/async* generators have two parts: an entry, which does checks and computes the element type of the result, and a body, which is transformed after lowering to JavaScript. The split ensures that the code for checks is done at function call time, rather than e.g. in the moveNext method of a sync* iterator. A following CL with optimize the split to generate one function when there are no checks and the type argument is simple enough for textual substitution. Change-Id: I5414109ca851f9267871aa113a2e29b16236986d Reviewed-on: https://dart-review.googlesource.com/54308 Commit-Queue: Stephen Adams <sra@google.com> Reviewed-by: Sigmund Cherem <sigmund@google.com> Reviewed-by: Johnni Winther <johnniwinther@google.com>
Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.
Visit the dartlang.org to learn more about the language, tools, getting started, and more.
Browse pub.dartlang.org for more packages and libraries contributed by the community and the Dart team.
If you want to build Dart yourself, here is a guide to getting the source, preparing your machine to build the SDK, and building.
There are more documents on our wiki.
The easiest way to contribute to Dart is to file issues.
You can also contribute patches, as described in Contributing.