I believe that we have a solid proposal even without 2 and 5. 2. Ensure the shape of the instance
In most cases this is not an issue. Neither ES5 nor Python seems to have suffered too bad without this. There are ways to make this less likely to happen. Always initialize your instance field before calling anything. Setters on the prototype makes this harder but if you really want it you can also set things on your prototype. class C extends B { constructor(x, y) { this.x = x; this.y = y; super.constructor(); }, x: 0, // To ensure no setter is invoked on a prototype y: 0 } I know this is pretty painful but I don't consider this to be a show stopper. 5. Allow const properties I know this tastes pretty salty but here goes class Point { constructor(x, y) { Object.defineProperty('x', {value: x}); Object.defineProperty('y', {value: y}); } } On Fri, Sep 30, 2011 at 16:57, Waldemar Horwat <walde...@google.com> wrote: > On 09/30/2011 04:37 PM, Brendan Eich wrote: >> >> since we haven't come up with a way to do 2 and 5 that works, > > That's what makes this into a dead end. Worse, by claiming the class > syntax you'd be precluding finding a different way that works in the future. > > Waldemar > -- erik _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss