Monday, December 12, 2022

NewFunctionEnvironment

NewFunctionEnvironment ( F, newTarget )

NewFunctionEnvironment ( F, newTarget ):

  1. Assert: Type(newTarget) is Undefined or Object.
  2. Let envRec be a new function Environment Record containing no bindings.
  3. Set envRec.[[FunctionObject]] to F.
  4. If F.[[ThisMode]] is lexical, set envRec.[[ThisBindingStatus]] to lexical.
  5. Else, set envRec.[[ThisBindingStatus]] to uninitialized.
  6. Set envRec.[[HomeObject]] to F.[[HomeObject]].
  7. Set envRec.[[NewTarget]] to newTarget.
  8. Return a new Lexical Environment who's EnvironmentRecord is envRec and outer lexical environment is F.[[Environment]].

No comments:

Post a Comment