From 12972bee14ed68e7c1f850b497484100b37490a7 Mon Sep 17 00:00:00 2001 From: ExE Boss <3889017+ExE-Boss@users.noreply.github.com> Date: Thu, 22 Jul 2021 10:48:05 -0700 Subject: [PATCH] =?UTF-8?q?Editorial:=20Fix=C2=A0`internalSlotsList`=C2=A0?= =?UTF-8?q?parameter=20of=C2=A0`CreateBuiltinFunction`=20(#2115)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spec.html | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/spec.html b/spec.html index 5643c54ab97..38a4b443398 100644 --- a/spec.html +++ b/spec.html @@ -13416,12 +13416,12 @@
The built-in function objects defined in this specification may be implemented as either ECMAScript function objects (
If a built-in function object is implemented as an exotic object it must have the ordinary object behaviour specified in
If a built-in function object is implemented as an ECMAScript function object, it must have all the internal slots described in
If a built-in function object is implemented as an exotic object, it must have the ordinary object behaviour specified in
Unless otherwise specified every built-in function object has the %Function.prototype% object as the initial value of its [[Prototype]] internal slot.
The behaviour specified for each built-in function via algorithm steps or other means is the specification of the function body behaviour for both [[Call]] and [[Construct]] invocations of the function. However, [[Construct]] invocation is not supported by all built-in functions. For each built-in function, when invoked with [[Call]], the [[Call]] _thisArgument_ provides the *this* value, the [[Call]] _argumentsList_ provides the named parameters, and the NewTarget value is *undefined*. When invoked with [[Construct]], the *this* value is uninitialized, the [[Construct]] _argumentsList_ provides the named parameters, and the [[Construct]] _newTarget_ parameter provides the NewTarget value. If the built-in function is implemented as an ECMAScript function object then this specified behaviour must be implemented by the ECMAScript code that is the body of the function. Built-in functions that are ECMAScript function objects must be strict functions. If a built-in constructor has any [[Call]] behaviour other than throwing a *TypeError* exception, an ECMAScript implementation of the function must be done in a manner that does not cause the function's [[IsClassConstructor]] internal slot to have the value *true*.
Built-in function objects that are not identified as constructors do not implement the [[Construct]] internal method unless otherwise specified in the description of a particular function. When a built-in constructor is called as part of a `new` expression the _argumentsList_ parameter of the invoked [[Construct]] internal method provides the values for the built-in constructor's named parameters.
Built-in functions that are not constructors do not have a *"prototype"* property unless otherwise specified in the description of a particular function.
-Built-in functions have an [[InitialName]] internal slot.
If a built-in function object is not implemented as an ECMAScript function it must provide [[Call]] and [[Construct]] internal methods that conform to the following definitions: