Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1181)

Unified Diff: runtime/vm/parser.cc

Issue 2786503003: Fix a couple of bugs with async stack traces (Closed)
Patch Set: update dartk service test status Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/debugger.cc ('k') | tests/language/language.status » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/parser.cc
diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc
index 79097a3243e4c09ba60f7b8eded9e2406e59e7e3..be022404f418f6e92583dcd0f55281e73b040b04 100644
--- a/runtime/vm/parser.cc
+++ b/runtime/vm/parser.cc
@@ -6637,7 +6637,7 @@ SequenceNode* Parser::CloseAsyncGeneratorTryBlock(SequenceNode* body) {
current_block_->statements->Add(new (Z) InstanceCallNode(
try_end_pos, new (Z) LoadLocalNode(TokenPosition::kNoSource, controller),
Symbols::AddError(), args));
- ReturnNode* return_node = new (Z) ReturnNode(TokenPosition::kNoSource);
+ ReturnNode* return_node = new (Z) ReturnNode(try_end_pos);
AddNodeForFinallyInlining(return_node);
current_block_->statements->Add(return_node);
AstNode* catch_block = CloseBlock();
@@ -6787,7 +6787,7 @@ SequenceNode* Parser::CloseAsyncTryBlock(SequenceNode* try_block,
func_end_pos,
new (Z) LoadLocalNode(TokenPosition::kNoSource, async_completer),
Symbols::CompleterCompleteError(), completer_args));
- ReturnNode* return_node = new (Z) ReturnNode(TokenPosition::kNoSource);
+ ReturnNode* return_node = new (Z) ReturnNode(func_end_pos);
// Behavior like a continuation return, i.e,. don't call a completer.
return_node->set_return_type(ReturnNode::kContinuation);
current_block_->statements->Add(return_node);
@@ -9365,7 +9365,7 @@ AstNode* Parser::ParseAwaitForStatement(String* label_name) {
ArgumentListNode* no_args =
new (Z) ArgumentListNode(TokenPosition::kNoSource);
current_block_->statements->Add(new (Z) InstanceCallNode(
- TokenPosition::kNoSource,
+ ST(await_for_pos),
new (Z) LoadLocalNode(TokenPosition::kNoSource, iterator_var),
Symbols::Cancel(), no_args));
finally_clause = CloseBlock();
« no previous file with comments | « runtime/vm/debugger.cc ('k') | tests/language/language.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698