8.1.2.4 NewFunctionEnvironment ( F, newTarget )
当使用参数 F 和 newTarget 调用抽象操作 NewFunctionEnvironment 时,将执行以下步骤:
- 断言:F 是一个 ECMAScript 函数。
- 断言:Type(newTarget) 为 Undefined 类型或 Object 类型。
- 使 env 变为 一个新的词法环境。
- 让 envRec 是一个不包含绑定的新的声明性环境记录。
- 设置 envRec.[[FunctionObject]] 为 F。
- 如果 F.[[ThisMode]] 为lexical,设置 envRec.[[ThisBindingStatus]] to "lexical"。
- 否则,设置 envRec.[[ThisBindingStatus]] 为 "uninitialized"。
- 使 home 变为 F.[[HomeObject]]。
- 设置 envRec.[[HomeObject]] 为 home。
- 设置 envRec.[[NewTarget]] 为 newTarget。
- 设置 env's _EnvironmentRecord 为 _envRec。
- 将 env 的外部词法环境引用设置为 F. [[Environment]]。
- 返回 env。