"var" declarations shadowing properties from Window.prototype

Brendan Eich brendan at mozilla.com
Wed Aug 15 12:08:47 PDT 2012


Travis Leithead wrote:
>> From: Cameron McCormack [mailto:cam at mcc.id.au]
>>
>> Brendan Eich:
>>> As noted, they started out that way 17 years ago. I think WebIDL and
>>> interface-based method definition made onload, e.g., predefined on
>>> window objects, or more recently on Window.prototype. Was this useful?
>>> Was it intended specifically (for window, not just intended generally
>>> due to WebIDL's uniform rules for binding its definitions in JS)?
>> I don't think it provides any benefit.  Uniformity is the only reason the spec
>> says they should be there, currently.
>
> It does provide the monkey-patch benefit for "shared" interfaces (e.g., those shared by inheritance). At the present time, the only one I can think of that [will] act like this is EventTarget (IE10 hasn't yet implemented this hierarchy change).

Do you think it's worth another exception (to the exception whereby 
inherited properties are flattened to be "own" on the global) that adds 
EventTarget.prototype to window objects' prototype chains? Presumably in 
front of (closer to the head of the global object itself) the GSP.

/be


More information about the es-discuss mailing list