7.3.22 GetFunctionRealm ( obj )
带参数 obj 的抽象操作 GetFunctionRealm 执行以下步骤:
- 断言:obj 是一个可调用的对象。
- 如果 obj 有一个 [[Realm]] 内置插槽,那么
a. 返回 obj.[[Realm]]。 3.如果 obj 是一个 Bound Function 异常对象,那么
a. 使 target 变为 obj.[[BoundTargetFunction]]。
b. 返回 ? GetFunctionRealm(target)。
- 如果 obj 是一个 Proxy 异常对象,那么
a. 如果 obj.[[ProxyHandler]] 为 null,则抛出一个 TypeError 错误。
b. 使 proxyTarget 变为 obj.[[ProxyTarget]]。
c. 返回 ? GetFunctionRealm(proxyTarget)。
5.返回 the current Realm Record。
注意:只有当 target 是不具有 [[Realm]] 内部插槽的非标准异常函数对象时,才会达到步骤 5。