<div dir="ltr">Although the method lives on the prototype, the engine should already have knowledge of the object whose method is being invoked. I am not an expert on the internal workings of the engine, so I would be glad if anyone would correct me on this if I am wrong.</div><div id="DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"><br>
<table style="border-top:1px solid #d3d4de">
        <tr>
        <td style="width:55px;padding-top:13px"><a href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon" target="_blank"><img src="https://ipmcdn.avast.com/images/icons/icon-envelope-tick-round-orange-animated-no-repeat-v1.gif" alt="" width="46" height="29" style="width: 46px; height: 29px;"></a></td>
                <td style="width:470px;padding-top:12px;color:#41424e;font-size:13px;font-family:Arial,Helvetica,sans-serif;line-height:18px">Virus-free. <a href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link" target="_blank" style="color:#4453ea">www.avast.com</a>
                </td>
        </tr>
</table><a href="#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width="1" height="1"></a></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 10, 2019 at 12:27 AM Jordan Harband <<a href="mailto:ljharb@gmail.com">ljharb@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">An additional keyword like this would require a function to have a hidden reference back to the instance. However, especially for `class` methods, but also for ES5-style inheritance, or even for `class Foo {} Foo.prototype.bar = function () {}`, methods are *shared*. You might have a billion instances, but only one function that uses your new keyword - how would the engine know which instance you were referring to?</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Mar 9, 2019 at 7:50 AM Bergi <<a href="mailto:a.d.bergi@web.de" target="_blank">a.d.bergi@web.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi John,<br>
<br>
> I believe that it would be a trivial task for<br>
> current static code analyzers to restrict usage of "this" for anyone<br>
> opting in to use this new keyword exclusively.<br>
<br>
Static tooling, like the TypeScript compiler, can detect problematic<br>
method usage already today. Sure, having a dedicated syntax for this<br>
will make static analysis simpler, but I don't deem that a worthy<br>
addition to the language.<br>
<br>
> As you mentioned, arrow functions might have their own<br>
> problems. Wouldn't such an alternative keyword be a good addition to our<br>
> toolkit anyway?<br>
<br>
What I was trying to say is that your proposed alternative has exactly<br>
the same problems as instance-member arrow functions have today.<br>
<br>
Best regards,<br>
  Bergi<br>
_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</blockquote></div></div>
</blockquote></div>