MCPcopy Create free account
hub / github.com/apache/cloudstack / invoke

Function invoke

tools/ngui/static/js/lib/angular.js:2869–2904  ·  view source on GitHub ↗
(fn, self, locals)

Source from the content-addressed store, hash-verified

2867 }
2868
2869 function invoke(fn, self, locals){
2870 var args = [],
2871 $inject = annotate(fn),
2872 length, i,
2873 key;
2874
2875 for(i = 0, length = $inject.length; i < length; i++) {
2876 key = $inject[i];
2877 args.push(
2878 locals && locals.hasOwnProperty(key)
2879 ? locals[key]
2880 : getService(key)
2881 );
2882 }
2883 if (!fn.$inject) {
2884 // this means that we must be an array.
2885 fn = fn[length];
2886 }
2887
2888
2889 // Performance optimization: http://jsperf.com/apply-vs-call-vs-invoke
2890 switch (self ? -1 : args.length) {
2891 case 0: return fn();
2892 case 1: return fn(args[0]);
2893 case 2: return fn(args[0], args[1]);
2894 case 3: return fn(args[0], args[1], args[2]);
2895 case 4: return fn(args[0], args[1], args[2], args[3]);
2896 case 5: return fn(args[0], args[1], args[2], args[3], args[4]);
2897 case 6: return fn(args[0], args[1], args[2], args[3], args[4], args[5]);
2898 case 7: return fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
2899 case 8: return fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);
2900 case 9: return fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8]);
2901 case 10: return fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);
2902 default: return fn.apply(self, args);
2903 }
2904 }
2905
2906 function instantiate(Type, locals) {
2907 var Constructor = function() {},

Callers 1

instantiateFunction · 0.85

Calls 3

annotateFunction · 0.85
getServiceFunction · 0.85
applyMethod · 0.65

Tested by

no test coverage detected