On Sun, Sep 14, 2014 at 7:23 PM, Brendan Eich <[email protected]> wrote:
> Kevin Smith wrote:
>
>> If we want to merge allocation with initialization, then I'm going to
>> want to invoke C# (yet again):
>>
>> class ColoredPoint extends Point {
>> constructor(x, y, color) : super(x, y) {
>> this.color = color;
>> }
>> }
>>
>
> Gotta credt C#'s parents, C++, which would require Point not super.
>
> I think you are really onto something here. We do not want anything
> looking like an expression-statement in the constructor body, which besides
> being verbose has unwanted degrees of freedom (requiring TDZ for `this`,
> running into the dead code problem Jeff cited, etc.).
>
> It sure seems to me that we rather want a special form in the constructor
> head. This came up in ES4.
>
> Separately I agree `this = new super(x, y);` is just crazy long and very
> likely to be left out in whole or in part (the `new`).
>
> /be
As a follow up to these comments re: `this = new super(x, y);`, I couldn't
find anything in this thread or the gists that discussed how, if at all,
`super` syntax or semantics will change in method bodies.
Rick
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss