Skip to content

Commit 5b0ef40

Browse files
committed
JS: Remove special treatment of strings in AngularJS code
String literals are already SourceNodes. But we need to add template literals as well
1 parent 0d0eaa2 commit 5b0ef40

File tree

2 files changed

+1
-40
lines changed

2 files changed

+1
-40
lines changed

javascript/ql/lib/semmle/javascript/dataflow/Sources.qll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,7 @@ module SourceNode {
334334
astNode instanceof Templating::PipeRefExpr or
335335
astNode instanceof Templating::TemplateVarRefExpr or
336336
astNode instanceof StringLiteral or
337+
astNode instanceof TemplateLiteral or
337338
astNode instanceof TypeAssertion or
338339
astNode instanceof SatisfiesExpr
339340
)

javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSCore.qll

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -23,46 +23,6 @@ DataFlow::SourceNode angular() {
2323
result = DataFlow::moduleImport("angular")
2424
}
2525

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.getImportedPathString() = "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]
50-
private predicate isAngularString(Expr s) {
51-
isAngularTopLevel(s.getTopLevel()) and
52-
(
53-
s instanceof StringLiteral or
54-
s instanceof TemplateLiteral
55-
)
56-
}
57-
58-
/**
59-
* String literals in Angular code are often used as identifiers or references, so we
60-
* want to track them.
61-
*/
62-
private class TrackStringsInAngularCode extends DataFlow::SourceNode::Range, DataFlow::ValueNode {
63-
TrackStringsInAngularCode() { isAngularString(astNode) }
64-
}
65-
6626
/**
6727
* Holds if `m` is of the form `angular.module("name", ...)`.
6828
*/

0 commit comments

Comments
 (0)