CreateGlobalVarBinding ( N, D )
Конкретный метод CreateGlobalVarBinding(Создать привязку глобальной переменной), глобальной записи среды envRec принимает аргументы N (строка) и D (логическое значение). Он создает и инициализирует изменяемую привязку в связанной записи среды объекта и записывает связанное имя в связанный список [[VarNames]]. Если привязка уже существует, она используется повторно и считается инициализированной. При вызове он выполняет следующие шаги:
1. Пусть ObjRec будет envRec.[[ObjectRecord]]. 2. Пусть globalObject будет ObjRec.[[BindingObject]]. 3. Пусть hasProperty будет ? HasOwnProperty(globalObject, N). 4. Пусть extensible будет ? IsExtensible(globalObject). 5. Если hasProperty является false и extensible является true, тогда a. Выполнить ? ObjRec.CreateMutableBinding(N, D). b. Выполнить ? ObjRec.InitializeBinding(N, undefined). 6. Пусть varDeclaredNames будет envRec.[[VarNames]]. 7. Если varDeclaredNames не содержит N, то a. Добавьте N к varDeclaredNames. 8. Вернуть NormalCompletion(empty).
Информационные ссылки
ECMAScript | Глобальные записи среды
Стандарт ECMAScript — Раздел «9.1.1.4 Global Environment Records» — https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#sec-global-environment-records
Стандарт ECMAScript — Раздел «9.1.1.4.17 CreateGlobalVarBinding ( N, D )» — https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#sec-createglobalvarbinding