<div dir="ltr">Props to Rick for bringing some analytical rigor into the discussion.<div><br></div><div>Unfortunately all I can provide in response is more anecdotal and opinion-based, but, nonetheless, here's how I would counter that:</div><div><br></div><div>First, people are lazy, and programmers are people. Seeing a lot of non-non-enumerable class methods is, IMO, more indicative of the path of least resistance, not an indicator of calculated, intended behavior.</div><div><br></div><div>Second, to quote Kevin from earlier,</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">If we want to preserve any kind of conceptual integrity for enumerability, then enumerability must indicate that the property is a data element within a data structure.</blockquote><div><br></div><div>A thousand times, this. Properties are state, methods are behavior; this is just OOP 101 (right?). And I don't see any compelling arguments being made for enumerating the behavior of an object.</div><div><br></div><div>I hate relying on anecdotes, but for all the times I've used ES5-style "classes", I have always ended up creating enumerable methods simply because that's the default behavior. I have never, *ever*, done this as a design decision, and I'd wager (since I have the luxury of no data to prove or disprove this) that that's a majority position.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Dec 24, 2014 at 4:56 PM, Rick Waldron <span dir="ltr"><<a href="mailto:waldron.rick@gmail.com" target="_blank">waldron.rick@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br><br><div class="gmail_quote"><span class="">On Wed Dec 24 2014 at 4:49:36 PM Kevin Smith <<a href="mailto:zenparsing@gmail.com" target="_blank">zenparsing@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_quote"><div>Here is the summary: <br></div><div><div>Total Files Read:  11038<br></div><div>Files Containing Explicit 'enumerable: false':  149</div><div>Occurrences of 'enumerable: false' (and variants): 206</div></div></div></blockquote><div><br></div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>I love this kind of analysis - thanks!</div></div></div></div></blockquote><div><br></div></span><div>I was actually inspired by a similar report you created for the list in the past. </div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>My interpretation of this data is that non-enumerability isn't important enough to bother with in the vast majority of cases.  </div></div></div></div></blockquote><div><br></div></span><div>Yes, this was my interpretation as well.</div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>It *may* still be that non-enumerability is the least-surprise option for class methods, but certainly users don't care enough about the issue currently to bother with typing in "enumerable: false".</div><div><br></div><div>I'm still concerned about the refactoring hazard argument.  I think the idea is that if I change some ES5-style class into an ES6-style class, then I need to have good unit tests already in place to make sure that non-enumerability won't break things.  Otherwise, I can't do the refactor.</div></div></div></div></blockquote><div><br></div></span><div>Agreed: this has also been my main argument when the subject has come up in the past. </div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Rick</div></font></span></div>
<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></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Jeremy Martin<br>661.312.3853<div><a href="http://devsmash.com" target="_blank">http://devsmash.com</a></div><div>@jmar777</div></div>
</div>