Expand description
ツリーウォーク評価器。
- スコープは
Rc<RefCell<Scope>>のチェーン(関数呼出ごとに新スコープ。Phase 1 では ブロックスコープは作らず関数スコープ共有)。 - 例外は
Result<_, Value>(Errが throw された値)で伝播。 - 制御フローは
Completion。 - ステップ予算と再帰深度上限で無限ループ/暴走から OS を守る。超過時は
abortedを立て、catch では捕捉せず最上位まで巻き戻す。
Modules§
- calls 🔒
- dom_
props 🔒 - eval_
expr 🔒 - exec 🔒
- iter_
gen 🔒 - operators 🔒
- promise_
loop 🔒 - properties 🔒
Structs§
- GenReplay 🔒
- generator 本体の replay 実行中に保持する一時状態。
- Interp
- 1 回の評価セッションの実行器(ステップ予算等を保持)。
- JsRuntime
- ページ単位で永続するランタイム状態。
- Module
Record - 登録済み ES モジュール 1 件。
exportsが None なら未評価。 評価開始時に空の共有マップを先に入れておくことで循環 import に耐える (再入時は評価途中の部分マップが返る)。 - Scope
- 変数スコープ。
Enums§
- Call
Kind 🔒 - Completion 🔒
- 文の完了種別。
Break/ContinueのOption<String>はラベル(break label;等)。 - DomDisp 🔒
- DOM プロキシの種別(借用を跨がないよう kind を取り出した結果)。
Constants§
- DEFAULT_
MAX_ 🔒DEPTH - DEFAULT_
MAX_ 🔒STEPS - MODULE_
EXPORTS_ 🔒KEY - モジュール本体の評価スコープで export 収集オブジェクトを束縛する番兵キー。 通常の識別子と衝突しない制御文字を含める。
Functions§
- aria_
attr_ 🔒name - ARIA 反映 IDL 属性(
element.role/.ariaLabel/.ariaValueNow等)の プロパティ名 → 実際の content 属性名の対応表。aria-valuenowのように 複合語内部にハイフンを持たない属性が多いため、datasetと同じ単純な camelCase⇄kebab-case 変換は使えず、固定表で引く(丸ごと未対応だった)。 ここに無いaria*プロパティは対象外(低頻度のものは既知の未対応のまま)。 - camel_
to_ 🔒data_ attr datasetのキー(camelCase)をdata-kebab-case属性名へ変換。userId→data-user-id。- camel_
to_ 🔒kebab - camelCase を kebab-case へ変換。
backgroundColor→background-color。 既に kebab(-含む)や小文字のみならほぼそのまま。 - cmp 🔒
- cmp_f64 🔒
- 2 つの f64 を比較。NaN が絡むと None。
- infer_
function_ 🔒name - NamedEvaluation(ES2015 13.15.2 等)の簡易実装:
vが無名関数(fd.nameが空) ならnameを継承させる。const f = function(){}等、単純な識別子への代入経路 でのみ対応(object literal のプロパティ/デフォルト引数値としての NamedEvaluation は 非対応の簡略化)。既に名前を持つ関数(function foo(){}等)は上書きしない。 - iterable_
values - イテラブル(配列/文字列/Set/Map)を Value 列へ展開する。スプレッド・for-of 共通。
- loose_
eq 🔒 - powf 🔒
- scope_
assign 🔒 - 既存変数へ代入(最も近い定義スコープ)。未定義なら false。
- scope_
declare 🔒 - scope_
get 🔒 - shift_
amount 🔒 - BigInt のシフト量を i64 に変換する。f64 経由で安全範囲(|n| < 2^31)に収まるもののみ Some。 過大なシフトは現実的なメモリ上限を超えるため None を返して呼び出し側でエラーにする。
- to_i32 🔒
- to_
property_ 🔒key - to_u32 🔒
Type Aliases§
- Eval
Result 🔒 - Module
Registry - 指定子 → モジュール記録のレジストリ(ランタイムと実行器で共有)。