On Fri, Jan 29, 2016 at 8:14 AM, ` Mystery . <mystery...@gmail.com> wrote: > IMHO I don't think the default parameters should be evaluated within the > context of the function being called, at least not while it's outside of > function body's region...... Is there a specific reason to do that, or it's > just a design preference?
Sure, there is a reason: it's about how defaults are used. Most defaults are probably constants or empty objects. Those don't need to refer to any variables at all, so we can set them aside. Of the rest, I suspect *most* refer to previous parameters: function send(sender, recip, message, onBehalfOf=sender) { ... } or the `this` for the current method call: class MyArray { ... slice(start=0, stop=this.length) { ... } } The only way to support these is to put the arguments in scope. (Another reason is consistency. This is how `var` initializers already work, and have always worked: initializers are in the scope of the bindings being initialized, and can use the values of previously initialized bindings on the same line of code.) -j _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss