Making "super" work outside a literal?

Brendan Eich brendan at
Sat Jun 25 14:06:44 PDT 2011

On Jun 25, 2011, at 2:01 PM, Dmitry A. Soshnikov wrote:

> On 26.06.2011 0:49, Brendan Eich wrote:
>> On Jun 25, 2011, at 11:13 AM, Axel Rauschmayer wrote:
>>> I don’t know if this has been discussed, but I find the |super| work-around provided by YUI and CoffeeScript (in the generated code) not that bad:
>>>, arg1, arg2);
>> I'm not sure what you mean. If we add 'super', surely we want more than the __super__ hack. We also want a callable expression 'super' in constructors, and a '' form for method and other property accesses from subclass methods. We don't want people writing out .call by hand.
> Apologize in advance if I'm mentioning already discussed thing in these classes-related topics (unfortunately hadn't enough of time to read them all and follow), but from what I can say, people want to write also and _mostly_ _just_ `super`, not even `` (though, of course `` notation would be also nice to have -- to be able to call _any_ parent method).

In a constructor, calling super calls the super-constructor. No need for super.constructor() or whatever.

Unlike CoffeeScript, which allows a method foo to super-call only the method of the same name in the superclass, the proposals I've seen want This allows from method foo of a subclass, where the superclass bar might of course loop around and call the superclass foo.

> Again, we even _now_ (vis simple JS class-library) can write normal `this.super(...)` calls from _any_ descendant method (and could even in ES3 era, though, via `this._super(...)`) -- that is without specifying exact parent name (i.e. ``) which in case of the same method is just again is the syntactic noise. So it's important thing to have _just_ super(...) -- if it's a sugar, let it be really the sugar (because if not, why do I need it at all if I can achieve even better with a library?). And _in addition_ -- super.otherMethodName notation.

For some reason I missed this Ruby-ish notion of super-method calling, which CoffeeScript supports. It is not what the proposals require for a super-method call. See

We should discuss this more concise 'super'-only, not '' idea. Is it only for conciseness, or is the fact that it does not support '' from within a method named 'foo' important?


More information about the es-discuss mailing list