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

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

CanDeclareGlobalFunction ( N )

Конкретный метод CanDeclareGlobalFunction(Может объявить глобальную функцию), глобальной записи среды envRec принимает аргумент N (строку). Он определяет, будет ли соответствующий вызов CreateGlobalFunctionBinding успешным, если он будет вызван для того же аргумента N. При вызове он выполняет следующие шаги:

1. Пусть ObjRec будет envRec.[[ObjectRecord]].
2. Пусть globalObject будет ObjRec.[[BindingObject]].
3. Пусть existingProp будет ? globalObject.[[GetOwnProperty]](N).
4. Если existingProp является undefined, вернуть ? IsExtensible(globalObject).
5. Если existingProp.[[Configurable]] является true, вернуть true.
6. Если IsDataDescriptor(existingProp) является true и existingProp имеет значения атрибута { [[Writable]]: true, [[Enumerable]]: true }, вернуть true.
7. Вернуть false.

 

Информационные ссылки

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.16 CanDeclareGlobalFunction ( N )» — https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#sec-candeclareglobalfunction