The Reflect object is the %Reflect% intrinsic object and the initial value of the Reflect
property of the
global object.The Reflect object is an ordinary object.
The value of the [[Prototype]] internal slot of the Reflect object is the intrinsic object %ObjectPrototype% (19.1.3).
The Reflect object is not a function object. It does not have a [[Construct]] internal method; it is not possible to use
the Reflect object as a constructor with the new
operator. The Reflect object also does not have a [[Call]]
internal method; it is not possible to invoke the Reflect object as a function.
When the apply
function is called with arguments target, thisArgument, and argumentsList the following steps are taken:
When the construct
function is called with arguments target,
argumentsList, and newTarget the following steps are taken:
The length
property of the construct
function is 2.
When the defineProperty
function is called with arguments target, propertyKey, and attributes the following steps are taken:
When the deleteProperty
function is called with arguments target and propertyKey, the following steps are taken:
When the enumerate
function is called with argument target the following
steps are taken:
When the get
function is called with arguments target, propertyKey, and receiver the following steps are taken:
The length
property of the get
function is 2.
When the getOwnPropertyDescriptor
function is called with arguments target and propertyKey, the following steps are taken:
When the getPrototypeOf
function is called with argument target the
following steps are taken:
When the has
function is called with arguments target and propertyKey, the following steps are taken:
When the isExtensible
function is called with argument target the following
steps are taken:
When the ownKeys
function is called with argument target the following steps
are taken:
When the preventExtensions
function is called with argument target, the
following steps are taken:
When the set
function is called with arguments target, V, propertyKey, and receiver the following steps are taken:
The length
property of the set
function is 3.
When the setPrototypeOf
function is called with arguments target and propertyKey, the following steps are taken:
The Proxy constructor is the %Proxy% intrinsic object and the initial value of the Proxy
property of the
global object. When called as a constructor it creates and initializes a new proxy exotic object. Proxy
is
not intended to be called as a function and will throw an exception when called in that manner.
When Proxy
is called with arguments target and handler performs
the following steps:
The value of the [[Prototype]] internal slot of the
Proxy
constructor is the intrinsic object %FunctionPrototype% (19.2.3).
The Proxy
constructor does not have a prototype
property because proxy exotic objects do not
have a [[Prototype]] internal slot that requires
initialization.
Besides the length
property (whose value is 2), the Proxy
constructor has the
following properties:
The Proxy.revocable
function is used to create a revocable Proxy object. When
Proxy.revocable
is called with arguments target and handler the following steps are
taken:
"proxy"
,
p)."revoke"
,
revoker).A Proxy revocation function is an anonymous function that has the ability to invalidate a specific Proxy object.
Each Proxy revocation function has a [[RevocableProxy]] internal slot.
When a Proxy revocation function, F, is called the following steps are taken:
A Module Namespace Object is a module namespace exotic object that provides runtime property-based access to a module's exported bindings. There is no constructor function for Module Namespace Objects. Instead, such an object is created for each module that is imported by an ImportDeclaration that includes a NameSpaceImport (See 15.2.2).
In addition to the properties specified in 9.4.6 each Module Namespace Object has the own following properties:
The initial value of the @@toStringTag property is the String value "Module"
.
This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }.
When the @@iterator method is called with no arguments, the following steps are taken:
The value of the name
property of this function is "[Symbol.iterator]"
.