diff options
| author | Igor Minar | 2011-12-16 12:45:20 -0800 | 
|---|---|---|
| committer | Misko Hevery | 2012-01-25 11:46:35 -0800 | 
| commit | 1e96d0af8cd235db94c937acd849cd6061df3e87 (patch) | |
| tree | cd364fd8e36dfe4e50b44ee49f7a1fe0dfcaefb7 /src/Injector.js | |
| parent | 97dae0d0a0226ee527771578bfad1342d51bf4dd (diff) | |
| download | angular.js-1e96d0af8cd235db94c937acd849cd6061df3e87.tar.bz2 | |
fix(injector): small perf improvement & code cleanup
Diffstat (limited to 'src/Injector.js')
| -rw-r--r-- | src/Injector.js | 24 | 
1 files changed, 14 insertions, 10 deletions
| 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 | 
