Don't you want to use arguments.length instead of function.length?
On Jun 9, 2012 6:53 PM, "Irakli Gozalishvili" <[email protected]> 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) }
> ])
>
> 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]
> https://mail.mozilla.org/listinfo/es-discuss
>
>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss