>>> Using an implicit property name in a super call would require that every
>>> method call implicitly pass the name used to access the property. This is
>>> just like the |here| problem.
>>
>> No, not if the compiler sees the method name and burns it into the function
>> object. Then it's just an internal property, analogous to static super. This
>> is what engines do today with named function forms (definitions, named
>> function expressions).
>
> I don't follow what you're saying here --
>
> SomePrototype.foo = function() { super() }
>
> Where is the function name hardcoded? Certainly JSC makes no distinction in
> behaviour of function expressions in any context. The only time a function
> object created by a function expression will have a name, is when the
> optional name is provided. That then raises what super() is in the case of
>
> SomePrototype.foo = function bar() { super() }
>
> When this thread initially started my thought was "yes that sounds great!"
> but i very rapidly came to the conclusion that non-lexical super just isn't
> workable without introducing inefficiencies in all call sites regardless of
> whether the dynamic-super feature is used.
This would only work inside an object literal (similar to |super|, where you
need to know about |here|, the owning object).
Additionally, Allen’s Object.defineMethod already has a parameter with the
method name, so it would work there, too.
--
Dr. Axel Rauschmayer
[email protected]
twitter.com/rauschma
home: rauschma.de
blog: 2ality.com
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss