<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">a.d.bergi@web.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color: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>