forked from github/codeql
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmissing-explicit-injection.js
More file actions
42 lines (30 loc) · 1.22 KB
/
missing-explicit-injection.js
File metadata and controls
42 lines (30 loc) · 1.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
(function(){
function injected1(name){} // NOT OK
angular.module('app1').controller('controller1', injected1);
function injected2(name){} // OK
injected2.$inject = ['name'];
angular.module('app2').controller('controller2', injected2);
function injected3(name){} // OK
angular.module('app3').controller('controller3', ['name', injected3]);
angular.module('app4').controller('controller4', function(){}); // OK
angular.module('app5').controller('controller5', function(name){}); // NOT OK
function injected6(){} // OK
angular.module('app6').controller('controller6', injected6);
function notInjected7(name){} // OK
var obj7 = {
controller: notInjected7
};
function injected8(name){} // OK (false negative: we do not track through properties)
var obj8 = {
controller: injected8
};
angular.module('app8').controller('controller8', obj8.controller);
var $injector = angular.injector();
function injected9(name){} // NOT OK
$injector.invoke(injected9)
function injected10(name){} // OK
injected10.$inject = ['name'];
$injector.invoke(injected10)
function injected11(name){} // OK
$injector.invoke(['name', injected11])
})();