<div dir="ltr">I just want to point out that Bergus (OP) informed me that the assignment behavior happens in computed object literal keys. So:<div><br></div><div>```js</div><div>let o = {</div><div>     ["fn" + "name"] () {}</div><div>}</div><div><a href="http://o.fnname.name">o.fnname.name</a>; // fnname</div><div>```</div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jul 26, 2015 at 10:55 PM, Andrea Giammarchi <span dir="ltr"><<a href="mailto:andrea.giammarchi@gmail.com" target="_blank">andrea.giammarchi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">with all due respect Allen, I'm completely against magic-function-name assignment for various reason and leaking ain't one.<div><br></div><div>What could you assign in ES6 that cannot be retrieved anyway through getOwnPropertySymbols and getOwnPropertyNames ? A triple-magic private Proxy handler or what?</div><div><br></div><div>I mean, the moment you could access that method is the moment it could leak with or without a name, right?</div><div><br></div><div>Just curious about what you had in mind, again I agree having this in is a no-go.</div><div><br></div><div>Best Regards</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Sun, Jul 26, 2015 at 8:48 PM, Allen Wirfs-Brock <span dir="ltr"><<a href="mailto:allen@wirfs-brock.com" target="_blank">allen@wirfs-brock.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><span><br>
On Jul 26, 2015, at 5:11 AM, Benjamin Gruenbaum wrote:<br>
<br>
> In theory this sounds like a cool idea, I didn't even know variable assignments named functions.<br>
><br>
> The only issue I see here is how we're now differentiating assignment by where it happens - what if the property is computed? As far as I know function names are more constrained (like variable names) in what they can be. Object properties may contain characters that function names may not.<br>
<br>
</span>the possibility that the property key is a symbol is a primary reason that this expression form does not set the `name` property.<br>
<br>
There may also be security concerns.  The `name` property potentially leaks via the function object the name of the variable it is initially assigned to.  But there isn't much someone could do with a local variable name, outside of  the originating function.  But a leaked property name potentially carries a greater capability.<br>
<br>
Allen<br></div></div>
_______________________________________________<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><br></div>
</blockquote></div><br></div>