On Jun 22, 2011, at 4:02 PM, Axel Rauschmayer wrote:

>> From: Brendan Eich <bren...@mozilla.com>
>> Date: June 23, 2011 0:21:17 GMT+02:00
>> 
>>> Is there no per-call cost whatsoever to adding static super?
>> 
>> No, it's static -- an internal property of the function object set once on 
>> creation and (in my view) never changed thereafter unless unobservably 
>> (Allen's point about optimizing Object.defineMethod when "handing off" an 
>> otherwise-useless function expression).
> 
> 
> How does a function get access to its properties? Doesn’t the ability to 
> access "thisFunction" incur any costs? I would expect static super to work as 
> follows:
> 
> var Sub = Super <| {
>     foo: function me(x) {
>         me.super.foo.call(this, x);
>     }
> }
> 
> Does the named function expression cost nothing here?

This is entirely beside the point.

Dynamic |super| as Sean proposes requires *every call site* to pass the |here| 
parameter or something derived from it, no way around that.

Paying for 'super' if you use it, buying by the yard, is not a problem.

Making *every function call* in the language slow, increasing register 
pressure, etc. -- absent aggressive inference to identify callees and 
specialize call sites to them (inlining VMs do this but it can backfire, so 
there will be a default case that can't do this) -- is a big problem.

/be

_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to