Index: runtime/vm/parser.cc |
=================================================================== |
--- runtime/vm/parser.cc (revision 41096) |
+++ runtime/vm/parser.cc (working copy) |
@@ -5877,6 +5877,7 @@ |
CloseBlock(); |
closure_body->scope()->LookupVariable(Symbols::AwaitJumpVar(), false); |
+ closure_body->scope()->LookupVariable(Symbols::AwaitContextVar(), false); |
closure_body->scope()->CaptureVariable(Symbols::AsyncCompleter()); |
// Create and return a new future that executes a closure with the current |
@@ -5916,6 +5917,14 @@ |
completer_constructor_node); |
current_block_->statements->Add(store_completer); |
+ // :await_jump_var = -1; |
+ LocalVariable* jump_var = current_block_->scope->LookupVariable( |
+ Symbols::AwaitJumpVar(), false); |
+ LiteralNode* init_value = |
+ new(I) LiteralNode(Scanner::kNoSourcePos, Smi::ZoneHandle(Smi::New(-1))); |
+ current_block_->statements->Add( |
+ new (I) StoreLocalNode(Scanner::kNoSourcePos, jump_var, init_value)); |
+ |
// Add to AST: |
// :async_op = <closure>; (containing the original body) |
LocalVariable* async_op_var = current_block_->scope->LookupVariable( |