<div class="gmail_quote">On Wed, Mar 21, 2012 at 9:35 AM, Kevin Smith <span dir="ltr"><<a href="mailto:khs4473@gmail.com">khs4473@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Axel,<div><br></div><div>We should probably hold off on private and static member syntax until there's consensus on the other open issues:</div></blockquote><div><br></div><div>Yeah, we can't add any features on the safety syntax, we'll get back to where we started. Kevin summarized the remaining issues really well, and they seem very tractable with a little debate.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><br></div><div>- "constructor" vs. "new" (Dave and I say "new", Allen says "constructor";  mostly aesthetic - can be put off for now)</div>
</blockquote><div><br></div><div>I've thought about it and I'm pretty solid on constructor now:</div><div><ol><li>I think its easier to explain - it will actually result in a constructor on the prototype.</li><li>
The actual constructor function and the .constructor property really should always be in sync - this helps with that.</li><li>"new" doesn't have those benefits - people might expect to be able to call .new() like in ruby.</li>
<li>"new" conflicts with the new <object> proposal.</li></ol></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>- class-side inheritance?  (Mark and I say no, Allen and Russell say yes) </div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>- What restrictions for RHS of "extends"?  Must it be a constructor?  (Russell and I say yes)</div>
<div><br></div></blockquote><div><br></div><div>I've already made my arguments here</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div></div><div>
Additionally, I'm still worried about how we call the superclass constructor:</div>
<div><br></div><div>    new() {</div><div>        // do arbitrary stuff here</div><div>        super(...);</div><div>    }</div><div><br></div><div>This would potentially allow a superclass instance method to be called before the superclass initialization has completed.  If we want to maintain the invariant (as it seems most class-based languages do) that methods can only be called after initialization has completed, then this won't work.  Thoughts?</div>
</blockquote><div><br></div><div>I think that's ok. Just like I don't think there should be an implicit super call at the top of the constructor if you skip it. Sure Java and C# enforce this, but I don't think its really the JavaScript style. There are realistic use cases for doing something before you call super, or skipping a call to super. It is also something that can easily be caught by a linter or IDE as a warning.</div>
<div><br></div><div>- Russ</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888">
<div><br></div><div>kevin</div>
</font></span><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>