Skip to content

用語

バインディング

スコープ内で割り当て/バインドされている値。

バインディング型

バインディングのタイプ:インポートされた値、割り当てられた値(let/const/var)、エクスポートされた値、関数/クラス宣言、関数/メソッド引数など。

スコープ

バインディングが存在可能なブロック。ブロックとは、{}で囲まれた任意のコードを指す。クラス、関数、メソッド、コールバック、if/else 等が該当する。スコープは階層構造を持ち、親スコープに子スコープが存在する(常にとは限らない)が、子スコープは親スコープに属する。同じ名前のバインディングがある場合、子スコープ内のバインディングは親スコープ内のバインディングをシャドー(隠蔽)する。

スコープフラグ

現在のスコープに関するメタデータ(継承された階層スコープではない):関数、コンストラクタ、トップレベル(プログラム)、など。

シンボル

現在のソーステキスト内におけるバインドされた変数の各使用/呼び出しサイトへの参照を持つバインディングラッパー。シンボルはスキャン順にIDが割り当てられ、参照ポイントはそのIDによってシンボルに到達する。

シンボルフラグ

シンボル/バインディングに関するメタデータ。

参照

シンボル参照とは、シンボル(そしてその結果としてのバインディング)の使用を指し、スキャン順にIDが割り当てられる。各参照は読み取り、書き込み、または両方のフラグが付与される。

スパン

ノードがソーステキスト内の開始/終了オフセット。