JavaScript execution context stack

JavaScript execution context stack

仕様書

演算

[3] コールバックを走らせる準備約束コールバックを実行JavaScript実行文脈が上に push されます。

[4] コールバックを走らせた後の片付け約束コールバックを実行JavaScript実行文脈が削除されます。

[5] イベントループのスピンスタック全体が複製されたり、 空にされたり、 複製した状態に戻されたりします。

[9] イベントハンドラーpush や削除を行います。

[7] 走っているスクリプトの中断で空にされます。

[6] コールバックを走らせた後の片付けscript 終了タグ構文解析器の処理で、 スタックが空かどうかが検査されます。

[10] 新しいJavaScript realmの作成でも操作されます。

歴史

スクリプト設定群オブジェクトのスタック

[1] 現職スクリプト引数スクリプト設定群オブジェクトとして再編され、 スクリプト設定群オブジェクトのスタックHTML Standard 仕様書上の概念として導入されました。

環境設定群オブジェクトの歴史の項も参照。

[40] 関連する類似起源閲覧文脈の単位ごとに1つ、 スクリプト設定群オブジェクトのスタック (stack of script settings objects) があります。 >>39

[54] Web IDL では現職スクリプト群のスタック (stack of incumbent scripts) となっています。

[41] このスタックは、環境設定群オブジェクトを追加 (push) したり削除 (pop) したりできるものです。このスタックは、初期状態では空でなければなりません >>39。 このスタックに含まれる各項目 (環境設定群オブジェクト) には、 「候補入口設定群オブジェクト (candidate entry settings object) 」 というフラグをつけることができます >>39

[58] コード入口点に飛ぶ手順では、 JavaScript コードの実行の直前にスタックpush され、直後に pop されます。

[55] コールバック関数の呼び出しでは、 JavaScript 関数の呼び出しの直前にスクリプト現職スクリプトのスタックpush され、直後に pop されます。

[56] 最も直近に push されたものを、現職設定群オブジェクトといいます。

[57] 最も直近に push された候補入口設定群オブジェクトフラグ付きのものを、 入口設定群オブジェクトといいます。

実行文脈スタック

[2] Rewrite script execution on top of ES · whatwg/html@4891d18 ( 版) <https://github.com/whatwg/html/commit/4891d18aaf2df1d40aa61f467a5a10cfc19dd85d>

[8] Merge pull request #113 from domenic/modernize-invoke ( (bzbarsky著, )) <https://github.com/heycam/webidl/commit/09c011d8de1077fe5991ceded97838650e376f6c>

[11] Pop execution context off the stack after InitializeHostDefinedRealm · Issue #3784 · whatwg/html () <https://github.com/whatwg/html/issues/3784>

[12] Fix calls to InitializeHostDefinedRealm by TimothyGu · Pull Request #3838 · whatwg/html () <https://github.com/whatwg/html/pull/3838>