<div dir="ltr">In `var anon = function () {};`, I was relying on `<a href="http://anon.name">anon.name</a>` being the empty string. One of the packages this matters in is <a href="https://www.npmjs.com/package/function.prototype.name">https://www.npmjs.com/package/function.prototype.name</a>, which attempts to polyfill function names in IE. I fixed it by putting the function inside `Object()` <a href="https://github.com/ljharb/function.prototype.name/blob/master/test/tests.js#L7-L9">https://github.com/ljharb/function.prototype.name/blob/master/test/tests.js#L7-L9</a> but that wouldn't be necessary without function name inference.</div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jan 28, 2017 at 8:11 AM, T.J. Crowder <span dir="ltr"><<a href="mailto:tj.crowder@farsightsoftware.com" target="_blank">tj.crowder@farsightsoftware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Sat, Jan 28, 2017 at 3:46 PM, Allen Wirfs-Brock<br>
<<a href="mailto:allen@wirfs-brock.com">allen@wirfs-brock.com</a>> wrote:<br>
><br>
><br>
> > On Jan 27, 2017, at 7:26 AM, T.J. Crowder <<a href="mailto:tj.crowder@farsightsoftware.com">tj.crowder@farsightsoftware.<wbr>com</a>> wrote:<br>
> ><br>
> > Two questions on the minor issue of the following not assigning a name<br>
> > to the function:<br>
> ><br>
> > ```js<br>
> > obj.foo = function() { };<br>
> > ```<br>
> ><br>
> > 1) Am I correct that the only reason it doesn't (in spec terms) is<br>
><br>
><br>
> No, the only reason it doesn’t is: by design, as directed by a decision made within a TC39 meeting.<br>
<br>
</span>Yes, obviously. :-) By "in spec terms" I meant -- and thought in<br>
context was clear -- "in the language in the specification." I'm sorry<br>
if it wasn't clear.<br>
<span class=""><br>
> > would mean it would assign the name `foo`?<br>
><br>
> Yes, and for<br>
>    cache[getUserSecret(user)] = function() {};<br>
> it would leak the secret user info as the value of name<br>
<br>
</span>As does<br>
<br>
```js<br>
cache = {<br>
    [getUserSecret(user)]: function() {}<br>
};<br>
```<br>
<br>
...which while perhaps less likely for something called `cache` is, in<br>
the general case, just as much of a potential "leak". If secrecy is<br>
important, it's easily achieved:<br>
<br>
```js<br>
cache[getUserSecret(user)] = function entry() {};<br>
```<br>
<span class=""><br>
> and for<br>
>    obj[someSymbol] = function() {}<br>
> it would leak the Symbol value as the value of name<br>
<br>
</span>It would *use* it as the name, yes, just like this does:<br>
<br>
```js<br>
obj = {<br>
    [someSymbol]: function() {}<br>
};<br>
```<br>
<br>
Whether that's a *leak* depends on whether the code in question cares<br>
about that information being exposed. And again if that secrecy is<br>
important, it's trivially ensured (as above).<br>
<span class=""><br>
> and for<br>
>    table[n]=function() {}<br>
> name would likely be a numeric string<br>
<br>
</span>Just as it does here:<br>
<br>
```js<br>
obj = {<br>
    [n]: function() {}<br>
};<br>
```<br>
<br>
or here<br>
<br>
```js<br>
obj = {<br>
    42: function() {}<br>
};<br>
```<br>
<br>
I appreciate your taking the time to post those examples. I take it<br>
these are the objections you referred to in [July<br>
2015](<a href="https://esdiscuss.org/topic/name-anonymous-functions-on-property-assignments#content-7" rel="noreferrer" target="_blank">https://esdiscuss.org/<wbr>topic/name-anonymous-<wbr>functions-on-property-<wbr>assignments#content-7</a>)<br>
as why consensus couldn't be reached for this form?<br>
<br>
Thanks again,<br>
<br>
-- T.J.<br>
<div class="HOEnZb"><div class="h5">______________________________<wbr>_________________<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" rel="noreferrer" target="_blank">https://mail.mozilla.org/<wbr>listinfo/es-discuss</a><br>
</div></div></blockquote></div><br></div>