Function.prototype, [[Call]] and [[Construct]]

Juriy Zaytsev kangax.dev at gmail.com
Mon Nov 9 21:17:21 PST 2009


On Nov 10, 2009, at 12:10 AM, Garrett Smith wrote:

> On Mon, Nov 9, 2009 at 8:05 PM, Juriy Zaytsev <kangax.dev at gmail.com>  
> wrote:
>> On Nov 9, 2009, at 6:50 PM, Garrett Smith wrote:
>>
>>> [[Construct]] of Function.prototype is not standardized.
>>>
>
> [...]
>
>>
>> If you look into Section 15 — Native ECMAScript Objects, you'll see  
>> this
>> rather clear explanation:
>>
>> "[...] None of the built-in functions described in this section shall
>> implement the internal [[Construct]] method unless otherwise  
>> specified in
>> the description of a particular function. None of the built-in  
>> functions
>> described in this section shall initially have a prototype property  
>> unless
>> otherwise specified in the description of a particular function.  
>> [...]"

[...]

>
> So Function.prototype should not implement [[Construct]].

As far as I can see, no, it shouldn't.

WebKit (nightly) and Opera (10) conform here, throwing TypeError on  
`new Function.prototype`, but Firefox (at least 3.5) erroneously  
creates an object.

>
> Garrett

-- 
kangax


More information about the es-discuss mailing list