<div dir="ltr">I've replied to Rick privatly by accident but regardless what I've written there, which is basically agereing with Brendan on the following sentence:<div>> <span style="color:rgb(80,0,80);font-size:13px">It ain't over till it's over. If we can't tweak ES6 to fix a mistake, just because process, then we're doing it wrong.</span></div><div><span style="color:rgb(80,0,80);font-size:13px"><br></span></div><div><span style="color:rgb(80,0,80);font-size:13px">and describe why his example can be done anyway (using getOwnPropertyNames instead of keys) and why object literals shouldn't be affected indeed ... there is a very strong point to me that is the main bummer ...</span></div><div><span style="color:rgb(80,0,80);font-size:13px"><br></span></div><div><span style="color:rgb(80,0,80);font-size:13px">```js</span></div><div><font color="#500050">class List extends Array {</font></div><div><font color="#500050">   itsGoingToBeEnumerable() {</font></div><div><font color="#500050">     return 'but does it have to and would you expect to?';</font></div><div><font color="#500050">   }</font></div><div><font color="#500050">}</font></div><div><span style="color:rgb(80,0,80);font-size:13px">```</span></div><div><span style="color:rgb(80,0,80);font-size:13px"><br></span></div><div><span style="color:rgb(80,0,80);font-size:13px">Not only being fresh new sugar, `class` could bring more than what basic ES3 prototype assignment has done for 15+ years, forcing historically every developer to be worried about doomed `for/in` loops and asking randomly any sort of native methods in specs so that would feel safer 'cause not enumerable, given the ability to finally subclass natives will mess up expectations even more: an instanceof Array that could have methods in the loop and cannot be used as sparse array ... this is just an example that will doom again subclassing and loops ... does it have to be like this ?</span></div><div><span style="color:rgb(80,0,80);font-size:13px"><br></span></div><div><span style="color:rgb(80,0,80);font-size:13px">Subclassing is planned and basically unshimmable ... why should we keep bringing further old gotchas instead of finally cleaning up through a new syntax that is fully compatible with ES5 when it comes to transpiled prototype properties definition ?</span></div><div><span style="color:rgb(80,0,80);font-size:13px"><br></span></div><div><font color="#500050">Please let's make `class` developer friendly, giving them the option to fallback to classical prototype literal object definition, when and if needed, providing a better pattern for modern architectures built on top of ES6, 7 and others.</font></div><div><font color="#500050"><br></font></div><div><font color="#500050">Thanks for consideration.</font></div><div><font color="#500050"><br></font></div><div><font color="#500050">Best Regards</font></div><div><span style="color:rgb(80,0,80);font-size:13px"><br></span></div><div><span style="color:rgb(80,0,80);font-size:13px"><br></span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Dec 24, 2014 at 10:32 AM, Glen Huang <span dir="ltr"><<a href="mailto:curvedmark@gmail.com" target="_blank">curvedmark@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Nothing. I forgot about those methods, and Kevin also kindly reminded me.<br>
<br>
Thanks for letting me know. :)<br>
<div class="HOEnZb"><div class="h5"><br>
> On Dec 24, 2014, at 5:22 PM, Brendan Eich <<a href="mailto:brendan@mozilla.org">brendan@mozilla.org</a>> wrote:<br>
><br>
> ES5 has Object static methods for getting all own property names,<br>
> enumerable or not. Also walking prototype chain. What's the problem<br>
> you're thinking of, exactly?<br>
><br>
> /be<br>
><br>
> Glen Huang wrote:<br>
>><br>
>> I was saying that a feature like lightweight traits is probably<br>
>> impossible to desugar to es5, if class syntax makes properties and<br>
>> methods non-enum.<br>
<br>
_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</div></div></blockquote></div><br></div>