return GetThisEnvironment().[[FunctionObject]].[[GetPrototypeOf]]()
example
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/super : super([arguments]) // calls the parent constructor.
return GetThisEnvironment().[[FunctionObject]].[[GetPrototypeOf]]()
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/super : super([arguments]) // calls the parent constructor.
There are following basic rules of semicolon insertion:
However, there is an additional overriding condition on the preceding rules: a semicolon is never inserted automatically if the semicolon would then be parsed as an empty statement or if that semicolon would become one of the two semicolons in the header of a for-statement
The source
return a + bis transformed by automatic semicolon insertion into the following:
return; a + b;
according to rule 2 and `return [no LineTerminator here] Expression`
IdentifierName can be devided into ReservedWord and Identifier.
A keyword is a token that matches IdentifierName, but also has a syntactic use.
Many keywords are reserved words, but some are reserved only in certain contexts. contextual keywords(await and yield) belong to ReservedWord but sometimes can be used as identifiers.
Followings belong to Identifier but not intepreted as so under certain syntactic productions:
A proxy object is an exotic object whose essential internal methods are partially implemented using ECMAScript code. Every proxy object has an internal slot called [[ProxyHandler]]. The value of [[ProxyHandler]] is an object, called the proxy's handler object, or null. Every proxy object also has an internal slot called [[ProxyTarget]] whose value is either an object or the null value. This object is called the proxy's target object.
When a handler method is called to provide the implementation of a proxy object internal method, the handler method is passed the proxy's target object as a parameter. Invoking an internal method on the proxy results in the invocation of the corresponding internal method on the proxy's target object if the handler object does not have a method corresponding to the internal trap.
[[GetPrototypeOf]] ( )
[[SetPrototypeOf]] ( V )
Most ECMAScript functions make an arguments object available to their code. Depending upon the characteristics of the function definition, its arguments object is either an ordinary object or an arguments exotic object.
An arguments exotic object is an exotic object whose array index properties map to the formal parameters bindings.
Arguments exotic objects have a [[ParameterMap]] internal slot. Ordinary arguments objects also have a [[ParameterMap]] internal slot whose value is always undefined.
[[GetOwnProperty]] ( P )
[[DefineOwnProperty]] ( P, Desc )
Set newArgDesc to a copy of Desc except newArgDesc.[[Value]] as Get(map, P)
PrepareForOrdinaryCall( F, newTarget ) where F is a function object and newTarget is Undefined or Object: