> > However, the double-binding issue makes this weirder. If non-const-class > declarations were like non-const-function declarations, where there is only > one binding per defining occurrence, then I would fully agree. But this > issue of one defining occurrence creating two bindings that can diverge is > a new level of unpleasantness. I agree this calls for the issue to be fixed > now in ES6 if we can, for non-const-classes. >
OK - I see. So on one side (double-binding) the risk is that someone will change the outer binding and violate an implicit assumption that references inside the class body and outside point to the same thing. On the other side, the risk is that we disable hackery like: class C {} if (someCondition) { C = class OtherC {}; } But you can always write the above as: let C = class {}; if (someCondition) { C = class OtherC {}; } I think you've sold me. I'm worried that there might be other hacker-use-cases that I'm not considering, though.
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss