术语
Binding(绑定)
在作用域内被赋值/绑定的值。
Binding type(绑定类型)
绑定的类型:导入的值、赋值(let/const/var)、导出、函数/类声明、函数/方法参数等。
Scope(作用域)
绑定可以存在的代码块;任何被 {} 包围的片段——如类、函数、方法、回调、if/else 等——都会形成作用域。作用域之间有层级(父与子),同名时子作用域会遮蔽父作用域。
Scope flags(作用域标志)
关于当前作用域的元数据(非继承树上的上级作用域):例如函数、构造函数、顶层(program)等。
Symbol(符号)
包装的绑定,记录在源文件中该绑定每一次使用/调用位置的引用;按扫描顺序分配 ID,各引用凭该 ID 指向符号。
Symbol flags(符号标志)
关于符号/绑定的元数据。
Reference(引用)
对符号的一次使用(从而也是对绑定);按扫描顺序分配 ID;引用被标记为读、写或读写兼有。
Span(源码区间)
节点在源代码中的起始/结束偏移量。