8.1.1.4.17 CreateGlobalVarBinding ( N, D )
用于全局环境记录的具体 Environment Record 方法 CreateGlobalVarBinding 在关联对象 Environment Record 中创建和初始化一个可变绑定,并在关联的 [[VarNames]] 列表中记录绑定的名称。 如果绑定已经存在,则它被重用并假设被初始化。
- 使 envRec 变为调用该方法的全局环境记录。
- 使 ObjRec 变为 envRec.[[ObjectRecord]]。
- 使 globalObject 变为 ObjRe 的绑定对象。
- 使 hasProperty 变为? HasOwnProperty(globalObject, N)。
- 使 extensible 变为? IsExtensible(globalObject)。
- 如果 hasProperty 为 false 并且 extensible 为 true,那么
a. 执行 ? ObjRec.CreateMutableBinding(N, D)。 b. 执行 ? ObjRec.InitializeBinding(N, undefined)。
7.使 varDeclaredNames 变为envRec.[[VarNames]]。
8.如果 varDeclaredNames 不包含 N,那么
a. 添加 N 到 varDeclaredNames 上。
9.返回 NormalCompletion(empty)。