From fecfc5b09feb7e4079364013b0beb6bf204ade2a Mon Sep 17 00:00:00 2001 From: Igor Minar Date: Fri, 1 Aug 2014 15:48:41 -0700 Subject: [PATCH] perf($parse): speed up fn invocation by optimizing arg collection 8-15% improvement for depending on the number of args --- src/ng/parse.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/ng/parse.js b/src/ng/parse.js index 2997401f..491e80d0 100644 --- a/src/ng/parse.js +++ b/src/ng/parse.js @@ -723,14 +723,17 @@ Parser.prototype = { this.consume(')'); var parser = this; + var args = []; // we can safely reuse the array return function(scope, locals) { - var args = []; var context = contextGetter ? contextGetter(scope, locals) : scope; - for (var i = 0; i < argsFn.length; i++) { - args.push(argsFn[i](scope, locals)); + + var i = argsFn.length; + while (i--) { + args[i] = argsFn[i](scope, locals); } + var fnPtr = fn(scope, locals, context) || noop; ensureSafeObject(context, parser.text);