<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"><br>
Hopefully I’m wrong in that Foo.call(this) is illegal, but if it is, this is a devastating change, especially when traits are scheduled for ES7 or later.<br></blockquote><div><br></div><div>Class constructors will now throw when called.</div><div><br></div><div>The changes to classes were fundamental but necessary to support subclassing of builtins (and future extensions to classes).</div><div><br></div><div>For mixins, can you move the initialization logic into a method (or a static method), instead of having it in the constructor?</div><div><br></div><div>    class M() {</div><div>        // methods</div><div>        static initialize(obj) { }</div><div>    }</div><div><br></div><div>    function ctor() {</div><div>        M.initialize(this);</div><div>    }</div><div><br></div><div>    // etc.</div><div><br></div><div>Is this a viable pattern for traits/mixins?</div></div></div></div>