On Saturday, June 9, 2012 at 11:53 PM, Erik Arvidsson wrote:

> Don't you want to use arguments.length instead of function.length? 
> On Jun 9, 2012 6:53 PM, "Irakli Gozalishvili" <[email protected] 
> (mailto:[email protected])> wrote:
> > I just noticed strange behavior in spider monkey implementation of rest 
> > arguments: 
> > 
> > (function(a, b, ...rest) {}).length // => 2
I agree that this is strange, I would expect 3, as there are three formally 
named parameters. 

Rick

 
> > 
> > I think ignoring `rest` in length is pretty counter intuitive. For example 
> > I have small utility function that
> > I use to dispatch depending on argument length.
> > 
> > var sum = dispatcher([
> >   function() { return 0 },
> >   function(x) { return x },
> >   function(x, y) { return x + y },
> >   function(x, y, z) { return Array.prototype.slice.call(arguments, 
> > 1).reduce(sum, x) }
> > ]) 
> > 
> > This behavior of rest would obviously break assumptions made by this 
> > library. That being said I don't think `3` would be any better. Maybe such 
> > functions length should be: 
> > 
> > - Infinity ?
> > - 2.5 ?
> > 
> > That way libraries would be able to handle them in a nice way: 
> > 
> > var sum = dispatcher([
> >   () => 0,
> >   (x) => x,
> >   (x, y) => x + y,
> >   (x, ...rest) => rest.reduce(sum, x)
> > ])
> > 
> > 
> > Regards
> > --
> > Irakli Gozalishvili
> > Web: http://www.jeditoolkit.com/
> > 
> > 
> > _______________________________________________
> > es-discuss mailing list
> > [email protected] (mailto:[email protected])
> > https://mail.mozilla.org/listinfo/es-discuss
> > 
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
> 
> 


_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to