> I don't think any library should ever rely on f.length.  
>  
>  


That's a wrong  attitude, there always will be legitimate uses of any feature, 
otherwise such features are just harmful & IMO should  be deprecated / removed. 
  

> It is not a
> reliable source of information (f might use 'arguments' even when the
> length is officially 0), and I don't honestly see it being useful for
> anything but tertiary debugging purposes.
>  
>  



In some cases weather function captures `rest` arguments via `arguments` is 
irrelevant. Like in a case I've pointed out earlier. Library provides arity 
based dispatch based on f.length, so if you pass `function() { arguments…. }` 
it will never be called with more than 0 arguments.
Regards
--
Irakli Gozalishvili
Web: http://www.jeditoolkit.com/


On Monday, 2012-06-11 at 05:33 , Andreas Rossberg wrote:

> On 10 June 2012 03:52, Irakli Gozalishvili <rfo...@gmail.com 
> (mailto:rfo...@gmail.com)> wrote:
> > I just noticed strange behavior in spider monkey implementation of rest
> > arguments:
> >  
> > (function(a, b, ...rest) {}).length // => 2
> >  
> > 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) }
> > ])
> >  
>  
>  
> I don't think any library should ever rely on f.length. It is not a
> reliable source of information (f might use 'arguments' even when the
> length is officially 0), and I don't honestly see it being useful for
> anything but tertiary debugging purposes.
>  
> /Andreas  

_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to