JavaScriptにおけるasync/await呼び出しのスタックトレースの困難と実装 – Speaker Deck

通常の関数呼び出し function foo() { bar(); } function bar() { throw new Error(“oops”);

} foo(); fooに対応するバイトコード(イメージ) [ 0] enter … [ 17] call_ignore_result callee:loc5, argc:1, argv:12 [ 22] ret value:Undefined(const0) 通常の関数呼び出しにおける位置情報の取得の例 barでErrorが作成されたと き、コールスタックは foo, bar。 このとき、fooの呼び出しに 対応するスタックフレーム は、foo内でのpc(=17)の情 報を持っている。 通常の関数呼び出しでは、 このpcから位置情報を取得 する。




元の記事を確認する

関連記事