<div dir="ltr"><br><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature">Yehuda Katz<br>(ph) 718.877.1325</div></div>
<br><div class="gmail_quote">On Thu, Jan 29, 2015 at 1:46 PM, Boris Zbarsky <span dir="ltr"><<a href="mailto:bzbarsky@mit.edu" target="_blank">bzbarsky@mit.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 1/29/15 4:36 PM, Yehuda Katz wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Are you asking what to do about the fact that existing WebIDL "classes"<br>
produce enumerable properties that probably can't be made non-enumerable<br>
without breaking the web?<br>
</blockquote>
<br></span>
I think the following things need to be decided:<br>
<br>
1)  What should the behavior be for WebIDL objects going forward?<br>
2)  If the going forward behavior is to have properties non-enumerable,<br>
    should we try to migrate some subset of the existing Web IDL<br>
    objects to the new behavior?<br>
<br>
I'm pretty sure we can't migrate all existing things, at least without breaking someone somewhere, but I suspect we can migrate many of them, if we decide it's actually worthwhile.<br></blockquote><div><br></div><div>To be completely clear, there's nothing that requires DOM to define its objects as using precisely the semantics of ES6 "classes", and indeed, nothing that stops an ES6 class from having enumerable methods:</div><div><br></div></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote"><div>class Simple {</div><div>}</div><div><br></div></div></div></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote"><div>// enumerable</div></div></div></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote"><div>Simple.prototype.method = function() {}</div><div><br></div></div></div></blockquote>If I understand you correctly, what you're saying is that you would <b>like</b> DOM "classes" to look similar to a normally defined ES6 class.<div><br></div><div>That is a reasonable desire (and I would love to continue discussing it), but it's not something that's squarely in TC39's wheelhouse (since DOM classes aren't defined using ECMAScript class syntax, which is all that this decision directly affects).<br><div class="gmail_extra"><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I'd be pretty interested in knowing what other implemntors think here, because if we make some decision on #1 I'd rather not have people continue to ship whatever they do now instead of what we decided on. We've been having a _lot_ of that happen with Web IDL.  :(<span class="HOEnZb"><font color="#888888"><br>
<br>
-Boris<br>
</font></span></blockquote></div><br></div></div></div>