8.5 InitializeHostDefinedRealm ( )
抽象操作 InitializeHostDefinedRealm 执行以下步骤:
- 使 realm 变为 CreateRealm()。
- 使 newContext 变为一个新的执行上下文。
- 设置 newContext 的 Function 为 null。
- 设置 newContext 的 Realm 为 realm。
- 设置 newContext 的 ScriptOrModule 为 null。
- 将 newContext 推送到执行上下文堆栈; newContext 现在是运行的执行上下文。
- 如果主机需要使用异常对象作为领域的全局对象,则让全局是以内置系统定义的方式创建的对象。 否则,让全局为 undefined,指示一个普通对象应该被创建为全局对象。
- 如果主机要求领域的全局范围中的 this 绑定返回一个非全局对象的对象,使 thisValue 是一个以实现定义方式创建的对象。 否则,让 thisValue 为 undefined,指示领域的全局此绑定应该是全局对象。
- 执行 SetRealmGlobalObject(realm, global, thisValue)。
- 使 globalObj 变为 ? SetDefaultGlobalBindings(realm)。
- 在 globalObj 上创建任何内置系统定义的全局对象属性。