<div dir="ltr">Out of curiosity, which accessor, being a runtime info that once trapped in a static property looses its meaning, is commonly needed for JSON ?<div><br></div><div>I am just thinking about `Array` and the fact that thanks gosh the `length` is not in. What kind of logic you have in mind?</div><div><br></div><div>```js</div><div>// to fix the exception</div><div>// with ... a **non enumerable** method ;-)</div><div>class SomeCase {</div><div>  toJSON() {</div><div>    var o = Object.assign({}, this);</div><div>    o.accessor = this.accessor;</div><div>    return o;</div><div>  }</div><div>}</div><div>```</div><div><br></div><div>case solved in few lines and yet another method, the `toJSON` one, that nobody wants to show up anywhere in an enumerable way.</div><div><br></div><div>Best Regards</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 25, 2014 at 1:17 AM, Caitlin Potter <span dir="ltr"><<a href="mailto:caitpotter88@gmail.com" target="_blank">caitpotter88@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Supposing that methods were non-enumerable by default, would accessors be different, or also non-enumerable by default?<br>
<br>
In most cases, accessors would make sense to be enumerable, e.g. for JSON serialization, but that would be sort of inconsistent and confusing if the default were different from methods<br>
<br>
(Just thinking out loud)<br>
<div class="HOEnZb"><div class="h5"><br>
> On Dec 24, 2014, at 7:09 PM, Brendan Eich <<a href="mailto:brendan@mozilla.org">brendan@mozilla.org</a>> wrote:<br>
><br>
> Brendan Eich wrote:<br>
>> There's a confounding variable: the pain of ES6s meta-object APIs, in all respects.<br>
><br>
> I meant "ES5's" here, of course.<br>
><br>
> Agree with Jeremy, laziness is a programmer virtue and a part of human nature. People are not bothering where they don't know better, or do perhaps know enough but don't have time and cause to take the trouble. The trouble is due to the non-default nature of non-enumerability. Arguing from that past default to (still-future for a little while!) ES6 class's prototype methods being non-enumerable is circular, if you ignore the foolish-consistency argument (which I think we should, but I"m not dismissing here -- just noting that it isn't enough to avoid circularity because of the ES5's-painful-to-use confounder).<br>
><br>
> /be<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>
_______________________________________________<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>