Функция инициализации области, определяемой хостом
Абстрактная операция InitializeHostDefinedRealm не принимает аргументов. При вызове она выполняет следующие шаги:
1. Пусть область realm будет CreateRealm(). 2. Пусть newContext будет новым контекстом выполнения. 3. Установите для функции (Function) из newContext значение null. 4. Установите для области (Realm) из newContext равным realm. 5. Задайте для скрипта или модуля (ScriptOrModule) из newContext значение null. 6. Поместите newContext в стек контекста выполнения; newContext теперь является текущим контекстом выполнения. 7. Если хост требует использования экзотического объекта в качестве глобального объекта области realm, пусть global будет таким объектом, созданным способом, определяемым хостом. В противном случае пусть global будет undefined, указывая, что обычный объект должен быть создан как глобальный объект. 8. Если хост требует, чтобы привязка this в "глобальной области видимости" области realm возвращала объект, отличный от глобального объекта, пусть thisValue будет таким объектом, созданным способом, определяемым хостом. В противном случае оставьте thisValue равным undefined, указывая, что глобальная привязка this области realm должна быть глобальным объектом. 9. Выполните SetRealmGlobalObject(realm, global, thisValue). 10. Пусть globalObj будет ? SetDefaultGlobalBindings(realm). 11. Создайте любые определяемые хостом свойства глобального объекта в globalObj. 12. Верните NormalCompletion(empty).
Информационные ссылки
Предыдущая тема — ECMAScript | Задания и операции хоста для постановки Заданий в очередь
Стандарт ECMAScript — Раздел «9.5 InitializeHostDefinedRealm ( )» — https://tc39.es/ecma262/#sec-initializehostdefinedrealm