File tree Expand file tree Collapse file tree 1 file changed +26
-7
lines changed
javascript/ql/src/semmle/javascript/frameworks/AngularJS Expand file tree Collapse file tree 1 file changed +26
-7
lines changed Original file line number Diff line number Diff line change @@ -23,14 +23,33 @@ DataFlow::SourceNode angular() {
23
23
result = DataFlow:: moduleImport ( "angular" )
24
24
}
25
25
26
- pragma [ noopt]
26
+ /**
27
+ * Holds if `tl` appears to be a top-level using the AngularJS library.
28
+ *
29
+ * Should not depend on the `SourceNode` class.
30
+ */
31
+ pragma [ nomagic]
32
+ private predicate isAngularTopLevel ( TopLevel tl ) {
33
+ exists ( Import imprt |
34
+ imprt .getTopLevel ( ) = tl and
35
+ imprt .getImportedPath ( ) .getValue ( ) = "angular"
36
+ )
37
+ or
38
+ exists ( GlobalVarAccess global |
39
+ global .getName ( ) = "angular" and
40
+ global .getTopLevel ( ) = tl
41
+ )
42
+ }
43
+
44
+ /**
45
+ * Holds if `s` is a string in a top-level using the AngularJS library.
46
+ *
47
+ * Should not depend on the `SourceNode` class.
48
+ */
49
+ pragma [ nomagic]
27
50
private predicate isAngularString ( Expr s ) {
28
- exists ( DataFlow:: SourceNode angular , StmtContainer sc , TopLevel tl |
29
- angular = angular ( ) and
30
- sc = angular .getContainer ( ) and
31
- tl = sc .getTopLevel ( ) and
32
- tl = s .getTopLevel ( )
33
- |
51
+ isAngularTopLevel ( s .getTopLevel ( ) ) and
52
+ (
34
53
s instanceof StringLiteral or
35
54
s instanceof TemplateLiteral
36
55
)
You can’t perform that action at this time.
0 commit comments