Self-recursion and arrow functions

Brandon Benvie bbenvie at mozilla.com
Sat Mar 16 16:42:30 PDT 2013


I understand, but it's still a limitation of arrow functions that they rely on arguments.callee to self-reference. Relying on the defined name they're assigned to suffers from the "can be redefined" problem. NFE's don't suffer this problem and can completely avoid `arguments` in ES6 for all use cases Arrow functions, currently, cannot.

On Mar 16, 2013, at 3:12 PM, Brendan Eich <brendan at mozilla.com> wrote:

> I wouldn't overreact. My note was simply that we should not make arrows strict by definition, and TC39 agreed. Among the "folk wisdom" reasons for avoiding strict is to have arguments.callee, but of course NFEs should be preferred in modern engines. But there's no arrow NFE form.
> 
> /be
> 
> Brandon Benvie wrote:
>> I think this is a better argument for introducing a new primitive for referencing the current function than for resurrecting arguments.
>> 
>> On Mar 16, 2013, at 2:29 PM, Axel Rauschmayer <axel at rauschma.de <mailto:axel at rauschma.de>> wrote:
>> 
>>> Quoting Brendan Eich in [1]:
>>> 
>>>> arrows can't have intrinsic names (contrast with NFEs) so arguments.callee may be wanted, so arrows should not be strict-only.
>>> 
>>> Is this really an option? Sounds messy. Like a carrot to go back to non-strict. I’d either allow arguments.callee in both modes. Or introduce a new mechanism for a function to refer to itself. I thought that `arguments` would disappear from JavaScript code over time so the latter alternative seems better.
>>> 
>>> Axel
>>> 
>>> [1] https://github.com/rwldrn/tc39-notes/blob/master/es6/2013-01/jan-30.md
>>> 
>>> -- 
>>> Dr. Axel Rauschmayer
>>> axel at rauschma.de <mailto:axel at rauschma.de>
>>> 
>>> home: rauschma.de <http://rauschma.de>
>>> twitter: twitter.com/rauschma <http://twitter.com/rauschma>
>>> blog: 2ality.com <http://2ality.com>
>>> 
>>> _______________________________________________
>>> es-discuss mailing list
>>> es-discuss at mozilla.org <mailto:es-discuss at mozilla.org>
>>> https://mail.mozilla.org/listinfo/es-discuss
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss


More information about the es-discuss mailing list