From 1e96d0af8cd235db94c937acd849cd6061df3e87 Mon Sep 17 00:00:00 2001 From: Igor Minar Date: Fri, 16 Dec 2011 12:45:20 -0800 Subject: fix(injector): small perf improvement & code cleanup --- src/Injector.js | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/Injector.js b/src/Injector.js index 849ef3b9..38cf652d 100644 --- a/src/Injector.js +++ b/src/Injector.js @@ -384,25 +384,29 @@ function createInjector(modulesToLoad) { function invoke(fn, self, locals){ var args = [], - $injectAnnotation, - $injectAnnotationIndex, + $inject, + length, key; if (typeof fn == 'function') { - $injectAnnotation = inferInjectionArgs(fn); - $injectAnnotationIndex = $injectAnnotation.length; + $inject = inferInjectionArgs(fn); + length = $inject.length; } else { if (isArray(fn)) { - $injectAnnotation = fn; - $injectAnnotationIndex = $injectAnnotation.length; - fn = $injectAnnotation[--$injectAnnotationIndex]; + $inject = fn; + length = $inject.length - 1; + fn = $inject[length]; } assertArgFn(fn, 'fn'); } - while($injectAnnotationIndex--) { - key = $injectAnnotation[$injectAnnotationIndex]; - args.unshift(locals && locals.hasOwnProperty(key) ? locals[key] : getService(key)); + for(var i = 0; i < length; i++) { + key = $inject[i]; + args.push( + locals && locals.hasOwnProperty(key) + ? locals[key] + : getService(key, path) + ); } // Performance optimization: http://jsperf.com/apply-vs-call-vs-invoke -- cgit v1.2.3