ECMAScript | Глобальная Запись Среды | Метод CreateGlobalVarBinding ( N, D )

ECMAScript | Глобальная Запись Среды | Метод CreateGlobalVarBinding ( N, D )

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