28.2 Proxy Objects
28.2.1 The Proxy Constructor
The Proxy
- is %Proxy%.
- is the initial value of the
"Proxy" property of theglobal object . - creates and initializes a new Proxy object when called as a
constructor . - is not intended to be called as a function and will throw an exception when called in that manner.
28.2.1.1 Proxy ( target, handler )
This function performs the following steps when called:
- If NewTarget is
undefined , throw aTypeError exception. - Return ?
ProxyCreate (target, handler).
28.2.2 Properties of the Proxy Constructor
The Proxy
- has a [[Prototype]] internal slot whose value is
%Function.prototype% . - does not have a
"prototype" property because Proxy objects do not have a [[Prototype]] internal slot that requires initialization. - has the following properties:
28.2.2.1 Proxy.revocable ( target, handler )
This function creates a revocable Proxy object.
It performs the following steps when called:
- Let proxy be ?
ProxyCreate (target, handler). - Let revokerClosure be a new
Abstract Closure with no parameters that captures nothing and performs the following steps when called:- Let F be the
active function object . - Let p be F.[[RevocableProxy]].
- If p is
null , returnundefined . - Set F.[[RevocableProxy]] to
null . Assert : p is aProxy exotic object .- Set p.[[ProxyTarget]] to
null . - Set p.[[ProxyHandler]] to
null . - Return
undefined .
- Let F be the
- Let revoker be
CreateBuiltinFunction (revokerClosure, 0,"" , « [[RevocableProxy]] »). - Set revoker.[[RevocableProxy]] to proxy.
- Let result be
OrdinaryObjectCreate (%Object.prototype% ). - Perform !
CreateDataPropertyOrThrow (result,"proxy" , proxy). - Perform !
CreateDataPropertyOrThrow (result,"revoke" , revoker). - Return result.