The big question is whether Function#length should represent minimum or the maximum amount of arguments. That means that a rest parameter could have zero elements, and optional parameters could fall back to their default value. The minimum approach wouldn't count them, the maximum would expect the most and return positive infinity as soon as the rest parameter is available.
Both approaches have their right to exist. With the maximum approach, the length property could even become a setter: By setting it, the values always default to the defined value, and rest parameters have a maximum length. It would be nice to get both getters. (Brendan, I'm sorry for sending you this message twice.) 2012/6/11 Brendan Eich <[email protected]> > Irakli Gozalishvili wrote: > >> Sorry for not being clear about this. Here is a simplified example of the >> implementation: >> https://gist.github.com/**2911817 <https://gist.github.com/2911817> >> >> Also this is just a single particular example, but I expect there to be >> more. I think what I'm >> really asking for is a way to know if …rest is being used. >> > > Your code doesn't work on a function that uses arguments the old fashioned > way, though. > > Yes, you can make ...rest affect .length and make a dispatcher that counts > on that, but it's a just-so story and a hard case. Hard cases make bad law. > If it really matters, we can provide better reflection facilities, but I'm > pretty sure it doesn't occur enough to justify doing so now. > > So use the toString hack if you must and let's see if this use-case > becomes hot. > > > Also IMO arrow functions should not have `arguments` at all. >> > > That's already in the proposal: > > http://wiki.ecmascript.org/**doku.php?id=harmony:arrow_**function_syntax<http://wiki.ecmascript.org/doku.php?id=harmony:arrow_function_syntax> > > "The /Identifier/ primary expression |arguments| may not be used in an > arrow function’s body (whether expression or block form)." > > /be > > >> Regards >> -- >> Irakli Gozalishvili >> Web: http://www.jeditoolkit.com/ >> >> On Monday, 2012-06-11 at 11:04 , Allen Wirfs-Brock wrote: >> >> >>> On Jun 11, 2012, at 10:56 AM, Irakli Gozalishvili wrote: >>> >>> 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. >>>> >>> >>> Let me try again. We don't understand your use case. You didn't show >>> us the definition of your dispatch function so we have to guess. Even so, >>> It is hard to imagine a "legitimate" use with dynamically provided >>> functions, particularly as the length values assigned to the existing >>> built-ins don't follow strict rules. At the very least you need to help us >>> understand why your use case is both reasonable and valid. >>> >>> Allen >>> >>> >>> >>> >> ______________________________**_________________ >> es-discuss mailing list >> [email protected] >> https://mail.mozilla.org/**listinfo/es-discuss<https://mail.mozilla.org/listinfo/es-discuss> >> > ______________________________**_________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/**listinfo/es-discuss<https://mail.mozilla.org/listinfo/es-discuss> >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

