It's certainly plausible that an implementation could do the analysis to 
recognize this pattern and implement it so there isn't an extra allocation or 
any extra copying.

It it became an common perf. bottleneck you might expect the better 
implementation to do so.  If it isn't a common perf. issue, then it really 
doesn't matter.

Allen



On Mar 16, 2013, at 5:27 PM, Kevin Gadd wrote:

> Would using (...args) incur a performance penalty and impair
> optimization since the argument list has to be an array now? Or is
> that still better than using 'arguments.length'? Enforcing arity is a
> common enough (and important, IMO) pattern that I'd be wary of doing
> it using a pattern that is going to slow everything down. Something
> that makes every call create garbage seems like a likely candidate to
> do that.
> 
> -kg
> 
> On Sat, Mar 16, 2013 at 5:24 PM, Axel Rauschmayer <a...@rauschma.de> wrote:
>> On Mar 17, 2013, at 1:17 , Allen Wirfs-Brock <al...@wirfs-brock.com> wrote:
>> 
>> If you need to do arity analysis of parameter but also what to apply default
>> values, destructuring, etc I would do the following:
>> 
>> Instead of
>>   function ([a,b], c,d=5, ...rest) {...}
>> do
>>   function (...args) {
>>       if (args.length <3) throw Error("too few arguments");  // (*)
>>       let [[a,b], c,d=5, ...rest] = args;  //probably need some ?'s in
>> there, but I haven't internalized the details of the new pattern matching
>> yet.
>>   }
>> 
>> 
>> Nice, I forgot about rest parameters. You’d still get an exception from
>> matching if you omitted line (*), right?
>> Shame that we can’t have the destructuring semantics for parameters.
>> 
>> --
>> Dr. Axel Rauschmayer
>> a...@rauschma.de
>> 
>> home: rauschma.de
>> twitter: twitter.com/rauschma
>> blog: 2ality.com
>> 
>> 
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss@mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>> 
> 

_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to