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

Unified Diff: runtime/vm/ast_transformer.cc

Issue 2603383004: Sane asynchronous debugging and stack traces (Closed)
Patch Set: rebase Created 3 years, 11 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
Index: runtime/vm/ast_transformer.cc
diff --git a/runtime/vm/ast_transformer.cc b/runtime/vm/ast_transformer.cc
index fa1028d7e629ad3567833bcb143ac3ff29359ff5..30dd4305395c0ef2c2b923837e0a99dcb578e6f9 100644
--- a/runtime/vm/ast_transformer.cc
+++ b/runtime/vm/ast_transformer.cc
@@ -129,7 +129,10 @@ void AwaitTransformer::VisitAwaitNode(AwaitNode* node) {
// :await_temp_var_X = <expr>;
// AwaitMarker(kNewContinuationState);
// :result_param = _awaitHelper(
- // :await_temp_var_X, :async_then_callback, :async_catch_error_callback);
+ // :await_temp_var_X,
+ // :async_then_callback,
+ // :async_catch_error_callback,
+ // :async_op);
// return; // (return_type() == kContinuationTarget)
//
// :saved_try_ctx_var = :await_saved_try_ctx_var_y;
@@ -158,7 +161,10 @@ void AwaitTransformer::VisitAwaitNode(AwaitNode* node) {
preamble_->Add(await_marker);
// :result_param = _awaitHelper(
- // :await_temp, :async_then_callback, :async_catch_error_callback)
+ // :await_temp,
+ // :async_then_callback,
+ // :async_catch_error_callback,
+ // :async_op)
const Library& async_lib = Library::Handle(Library::AsyncLibrary());
const Function& async_await_helper = Function::ZoneHandle(
Z, async_lib.LookupFunctionAllowPrivate(Symbols::AsyncAwaitHelper()));
@@ -170,6 +176,7 @@ void AwaitTransformer::VisitAwaitNode(AwaitNode* node) {
new (Z) LoadLocalNode(token_pos, async_then_callback));
async_await_helper_args->Add(
new (Z) LoadLocalNode(token_pos, async_catch_error_callback));
+ async_await_helper_args->Add(new (Z) LoadLocalNode(token_pos, async_op));
StaticCallNode* await_helper_call = new (Z) StaticCallNode(
node->token_pos(), async_await_helper, async_await_helper_args);
« no previous file with comments | « runtime/observatory/tests/observatory_ui/mocks/repositories/target.dart ('k') | runtime/vm/bootstrap_natives.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698