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