> Have you found the actual usage of length in node libraries to enforce > this sort of signature testing? I was poking around and haven't found it. > Note that the http://expressjs.com/guide.html#error-handling only says > "must be defined with an arity of 4, that is the signature (err, req, > res, next)". It doesn't say that length is use to enforce this. It > might be doing a toString on the function or something else. >
https://github.com/visionmedia/express/blob/master/lib/router/index.js#L159 > Regardless, the specification function length in the current ES6 draft > would not break such length-based detection. If you write function (err, > req,res,next){}.length you will get 4, just like with ES5.1 So this isn't > a breaking change. Any new use of new parameter forms would be a violation > of the "must" in the above quote from the express documentation. > Sure, it's not breaking, but that doesn't mean that it makes sense for the use case we're talking about. Again: function f(a = 1, b, c) {} f.length === 0; // Huh? On what basis does reporting 0 make sense? How does that communicate anything at all about the function? Kevin
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss