2.1.8 [ECMA-262/6] Section 9.4.1 Bound Function Exotic Objects
V0037: The arguments and caller own properties for bound functions are not inherited from Function.prototype
The specification states:
-
9.4.1 Bound Function Exotic Objects A bound function is an exotic object that wraps another function object. A bound function is callable (it has a [[Call]] internal method and may have a [[Construct]] internal method). Calling a bound function generally results in a call of its wrapped function. Bound function objects do not have the internal slots of ECMAScript function objects defined in Table 27. Instead they have the internal slots defined in Table 28. Table 28 — Internal Slots of Exotic Bound Function Objects Internal Slot | Type | Description ------------------------|-----------------|------------------------------------------ [[BoundTargetFunction]] | Callable Object | The wrapped function object. [[BoundThis]] | Any | The value that is always passed as the | | this value when calling the wrapped | | function. [[BoundArguments]] | List of Any | A list of values whose elements are used | | as the first arguments to any call to the | | wrapped function. Unlike ECMAScript function objects, bound function objects do not use an alternative definition of the [[GetOwnProperty]] internal methods. Bound function objects provide all of the essential internal methods as specified in 9.1. However, they use the following definitions for the essential internal methods of function objects.
IE11 Mode, IE10 Mode, IE9 Mode, IE8 Mode, IE7 Mode, and IE5 (Quirks) Mode (All versions)
The arguments
and caller
own properties for bound functions are inherited
from own properties instead of fromFunction.prototype
.
Bound functions are treated the same as non-strict ordinary functions.