dart-lang/async_await — pull request #73 by kmillikin (2014-12-02 10:02:17+00:00)
Title: Fix a bug in the translation of nested loops.

When falling off the body of a loop, we used:

trampoline = continue;

and relied on an outer trampoline loop. However it's possible to
reach the end of the body without being nested inside such a loop.
This happens in the case that there is an await from an inner
loop.

(An await in a loop will normally restore the loop in the .then
callback. An await in an inner loop will only restore that innermost
loop in the .then callback.)

Instead, when falling off the body of the loop we need the full
trampoline:

trampoline = continue;
do trampoline(); while (trampoline != null);