mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
Merge pull request #21025 from github/oscarsj/mergeback-rc-3-20-into-main
Mergeback rc/3.20 into main
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
|
## 0.4.24
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
|
|
||||||
## 0.4.23
|
## 0.4.23
|
||||||
|
|
||||||
No user-facing changes.
|
No user-facing changes.
|
||||||
|
|||||||
3
actions/ql/lib/change-notes/released/0.4.24.md
Normal file
3
actions/ql/lib/change-notes/released/0.4.24.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
## 0.4.24
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
---
|
---
|
||||||
lastReleaseVersion: 0.4.23
|
lastReleaseVersion: 0.4.24
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: codeql/actions-all
|
name: codeql/actions-all
|
||||||
version: 0.4.24-dev
|
version: 0.4.25-dev
|
||||||
library: true
|
library: true
|
||||||
warnOnImplicitThis: true
|
warnOnImplicitThis: true
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
## 0.6.16
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
|
|
||||||
## 0.6.15
|
## 0.6.15
|
||||||
|
|
||||||
No user-facing changes.
|
No user-facing changes.
|
||||||
|
|||||||
3
actions/ql/src/change-notes/released/0.6.16.md
Normal file
3
actions/ql/src/change-notes/released/0.6.16.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
## 0.6.16
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
---
|
---
|
||||||
lastReleaseVersion: 0.6.15
|
lastReleaseVersion: 0.6.16
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: codeql/actions-queries
|
name: codeql/actions-queries
|
||||||
version: 0.6.16-dev
|
version: 0.6.17-dev
|
||||||
library: false
|
library: false
|
||||||
warnOnImplicitThis: true
|
warnOnImplicitThis: true
|
||||||
groups: [actions, queries]
|
groups: [actions, queries]
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
## 6.1.3
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
|
|
||||||
## 6.1.2
|
## 6.1.2
|
||||||
|
|
||||||
No user-facing changes.
|
No user-facing changes.
|
||||||
|
|||||||
3
cpp/ql/lib/change-notes/released/6.1.3.md
Normal file
3
cpp/ql/lib/change-notes/released/6.1.3.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
## 6.1.3
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
---
|
---
|
||||||
lastReleaseVersion: 6.1.2
|
lastReleaseVersion: 6.1.3
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: codeql/cpp-all
|
name: codeql/cpp-all
|
||||||
version: 6.1.3-dev
|
version: 6.1.4-dev
|
||||||
groups: cpp
|
groups: cpp
|
||||||
dbscheme: semmlecode.cpp.dbscheme
|
dbscheme: semmlecode.cpp.dbscheme
|
||||||
extractor: cpp
|
extractor: cpp
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
## 1.5.7
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
|
|
||||||
## 1.5.6
|
## 1.5.6
|
||||||
|
|
||||||
No user-facing changes.
|
No user-facing changes.
|
||||||
|
|||||||
3
cpp/ql/src/change-notes/released/1.5.7.md
Normal file
3
cpp/ql/src/change-notes/released/1.5.7.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
## 1.5.7
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
---
|
---
|
||||||
lastReleaseVersion: 1.5.6
|
lastReleaseVersion: 1.5.7
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: codeql/cpp-queries
|
name: codeql/cpp-queries
|
||||||
version: 1.5.7-dev
|
version: 1.5.8-dev
|
||||||
groups:
|
groups:
|
||||||
- cpp
|
- cpp
|
||||||
- queries
|
- queries
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
## 1.7.55
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
|
|
||||||
## 1.7.54
|
## 1.7.54
|
||||||
|
|
||||||
No user-facing changes.
|
No user-facing changes.
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
## 1.7.55
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
---
|
---
|
||||||
lastReleaseVersion: 1.7.54
|
lastReleaseVersion: 1.7.55
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: codeql/csharp-solorigate-all
|
name: codeql/csharp-solorigate-all
|
||||||
version: 1.7.55-dev
|
version: 1.7.56-dev
|
||||||
groups:
|
groups:
|
||||||
- csharp
|
- csharp
|
||||||
- solorigate
|
- solorigate
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
## 1.7.55
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
|
|
||||||
## 1.7.54
|
## 1.7.54
|
||||||
|
|
||||||
No user-facing changes.
|
No user-facing changes.
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
## 1.7.55
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
---
|
---
|
||||||
lastReleaseVersion: 1.7.54
|
lastReleaseVersion: 1.7.55
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: codeql/csharp-solorigate-queries
|
name: codeql/csharp-solorigate-queries
|
||||||
version: 1.7.55-dev
|
version: 1.7.56-dev
|
||||||
groups:
|
groups:
|
||||||
- csharp
|
- csharp
|
||||||
- solorigate
|
- solorigate
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
## 5.4.3
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
|
|
||||||
## 5.4.2
|
## 5.4.2
|
||||||
|
|
||||||
No user-facing changes.
|
No user-facing changes.
|
||||||
|
|||||||
3
csharp/ql/lib/change-notes/released/5.4.3.md
Normal file
3
csharp/ql/lib/change-notes/released/5.4.3.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
## 5.4.3
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
---
|
---
|
||||||
lastReleaseVersion: 5.4.2
|
lastReleaseVersion: 5.4.3
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: codeql/csharp-all
|
name: codeql/csharp-all
|
||||||
version: 5.4.3-dev
|
version: 5.4.4-dev
|
||||||
groups: csharp
|
groups: csharp
|
||||||
dbscheme: semmlecode.csharp.dbscheme
|
dbscheme: semmlecode.csharp.dbscheme
|
||||||
extractor: csharp
|
extractor: csharp
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
## 1.5.3
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
|
|
||||||
## 1.5.2
|
## 1.5.2
|
||||||
|
|
||||||
No user-facing changes.
|
No user-facing changes.
|
||||||
|
|||||||
3
csharp/ql/src/change-notes/released/1.5.3.md
Normal file
3
csharp/ql/src/change-notes/released/1.5.3.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
## 1.5.3
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
---
|
---
|
||||||
lastReleaseVersion: 1.5.2
|
lastReleaseVersion: 1.5.3
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: codeql/csharp-queries
|
name: codeql/csharp-queries
|
||||||
version: 1.5.3-dev
|
version: 1.5.4-dev
|
||||||
groups:
|
groups:
|
||||||
- csharp
|
- csharp
|
||||||
- queries
|
- queries
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
## 1.0.38
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
|
|
||||||
## 1.0.37
|
## 1.0.37
|
||||||
|
|
||||||
No user-facing changes.
|
No user-facing changes.
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
## 1.0.38
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
---
|
---
|
||||||
lastReleaseVersion: 1.0.37
|
lastReleaseVersion: 1.0.38
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: codeql-go-consistency-queries
|
name: codeql-go-consistency-queries
|
||||||
version: 1.0.38-dev
|
version: 1.0.39-dev
|
||||||
groups:
|
groups:
|
||||||
- go
|
- go
|
||||||
- queries
|
- queries
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
## 5.0.5
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
|
|
||||||
## 5.0.4
|
## 5.0.4
|
||||||
|
|
||||||
No user-facing changes.
|
No user-facing changes.
|
||||||
|
|||||||
3
go/ql/lib/change-notes/released/5.0.5.md
Normal file
3
go/ql/lib/change-notes/released/5.0.5.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
## 5.0.5
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
---
|
---
|
||||||
lastReleaseVersion: 5.0.4
|
lastReleaseVersion: 5.0.5
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: codeql/go-all
|
name: codeql/go-all
|
||||||
version: 5.0.5-dev
|
version: 5.0.6-dev
|
||||||
groups: go
|
groups: go
|
||||||
dbscheme: go.dbscheme
|
dbscheme: go.dbscheme
|
||||||
extractor: go
|
extractor: go
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
## 1.5.2
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
|
|
||||||
## 1.5.1
|
## 1.5.1
|
||||||
|
|
||||||
No user-facing changes.
|
No user-facing changes.
|
||||||
|
|||||||
3
go/ql/src/change-notes/released/1.5.2.md
Normal file
3
go/ql/src/change-notes/released/1.5.2.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
## 1.5.2
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
---
|
---
|
||||||
lastReleaseVersion: 1.5.1
|
lastReleaseVersion: 1.5.2
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: codeql/go-queries
|
name: codeql/go-queries
|
||||||
version: 1.5.2-dev
|
version: 1.5.3-dev
|
||||||
groups:
|
groups:
|
||||||
- go
|
- go
|
||||||
- queries
|
- queries
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
## 7.8.2
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
|
|
||||||
## 7.8.1
|
## 7.8.1
|
||||||
|
|
||||||
No user-facing changes.
|
No user-facing changes.
|
||||||
|
|||||||
3
java/ql/lib/change-notes/released/7.8.2.md
Normal file
3
java/ql/lib/change-notes/released/7.8.2.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
## 7.8.2
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
---
|
---
|
||||||
lastReleaseVersion: 7.8.1
|
lastReleaseVersion: 7.8.2
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: codeql/java-all
|
name: codeql/java-all
|
||||||
version: 7.8.2-dev
|
version: 7.8.3-dev
|
||||||
groups: java
|
groups: java
|
||||||
dbscheme: config/semmlecode.dbscheme
|
dbscheme: config/semmlecode.dbscheme
|
||||||
extractor: java
|
extractor: java
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
## 1.10.3
|
||||||
|
|
||||||
|
### Minor Analysis Improvements
|
||||||
|
|
||||||
|
* Java analysis no longer forces `--source` and `--target` compiler flags for Maven builds. This allows Maven to use the project's own compiler configuration, improving build compatibility.
|
||||||
|
|
||||||
## 1.10.2
|
## 1.10.2
|
||||||
|
|
||||||
No user-facing changes.
|
No user-facing changes.
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
---
|
## 1.10.3
|
||||||
category: minorAnalysis
|
|
||||||
---
|
### Minor Analysis Improvements
|
||||||
|
|
||||||
* Java analysis no longer forces `--source` and `--target` compiler flags for Maven builds. This allows Maven to use the project's own compiler configuration, improving build compatibility.
|
* Java analysis no longer forces `--source` and `--target` compiler flags for Maven builds. This allows Maven to use the project's own compiler configuration, improving build compatibility.
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
---
|
---
|
||||||
lastReleaseVersion: 1.10.2
|
lastReleaseVersion: 1.10.3
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: codeql/java-queries
|
name: codeql/java-queries
|
||||||
version: 1.10.3-dev
|
version: 1.10.4-dev
|
||||||
groups:
|
groups:
|
||||||
- java
|
- java
|
||||||
- queries
|
- queries
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
## 2.6.18
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
|
|
||||||
## 2.6.17
|
## 2.6.17
|
||||||
|
|
||||||
No user-facing changes.
|
No user-facing changes.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Provides classes and predicates for the 'js/useless-expression' query.
|
* Provides classes and predicates for the 'js/useless-expression' query.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Provides a predicate for identifying unused index variables in loops.
|
* Provides a predicate for identifying unused index variables in loops.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
3
javascript/ql/lib/change-notes/released/2.6.18.md
Normal file
3
javascript/ql/lib/change-notes/released/2.6.18.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
## 2.6.18
|
||||||
|
|
||||||
|
No user-facing changes.
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
---
|
---
|
||||||
lastReleaseVersion: 2.6.17
|
lastReleaseVersion: 2.6.18
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: codeql/javascript-all
|
name: codeql/javascript-all
|
||||||
version: 2.6.18-dev
|
version: 2.6.19-dev
|
||||||
groups: javascript
|
groups: javascript
|
||||||
dbscheme: semmlecode.javascript.dbscheme
|
dbscheme: semmlecode.javascript.dbscheme
|
||||||
extractor: javascript
|
extractor: javascript
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* Provides classes for working with
|
* Provides classes for working with
|
||||||
* [Asynchronous Module Definitions](https://github.com/amdjs/amdjs-api/wiki/AMD).
|
* [Asynchronous Module Definitions](https://github.com/amdjs/amdjs-api/wiki/AMD).
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Provides classes for working with the AST-based representation of JavaScript programs.
|
* Provides classes for working with the AST-based representation of JavaScript programs.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
@@ -477,7 +477,7 @@ module AST {
|
|||||||
DataFlow::AnalyzedNode analyze() { result = DataFlow::valueNode(this).analyze() }
|
DataFlow::AnalyzedNode analyze() { result = DataFlow::valueNode(this).analyze() }
|
||||||
|
|
||||||
/** Gets the data flow node associated with this program element. */
|
/** Gets the data flow node associated with this program element. */
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
DataFlow::ValueNode flow() { result = DataFlow::valueNode(this) }
|
DataFlow::ValueNode flow() { result = DataFlow::valueNode(this) }
|
||||||
|
|
||||||
|
|||||||
@@ -272,7 +272,7 @@
|
|||||||
* Note that the `import` statement as a whole is part of the CFG of the body, while its single
|
* Note that the `import` statement as a whole is part of the CFG of the body, while its single
|
||||||
* import specifier `x as y` forms part of the preamble.
|
* import specifier `x as y` forms part of the preamble.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
* Class declarations and class expressions are modeled by (QL) classes `ClassDeclaration`
|
* Class declarations and class expressions are modeled by (QL) classes `ClassDeclaration`
|
||||||
* and `ClassExpression`, respectively, which are both subclasses of `ClassDefinition`.
|
* and `ClassExpression`, respectively, which are both subclasses of `ClassDefinition`.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Provides classes for working with the Closure-Library module system.
|
* Provides classes for working with the Closure-Library module system.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/** Provides classes for working with JavaScript comments. */
|
/** Provides classes for working with JavaScript comments. */
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Provides classes for working with expressions that evaluate to constant values.
|
* Provides classes for working with expressions that evaluate to constant values.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/** Provides classes and predicates for working with variable definitions and uses. */
|
/** Provides classes and predicates for working with variable definitions and uses. */
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Provides classes for working with E4X.
|
* Provides classes for working with E4X.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/** Provides classes for working with ECMAScript 2015 modules. */
|
/** Provides classes for working with ECMAScript 2015 modules. */
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/** Provides classes for working with syntax errors. */
|
/** Provides classes for working with syntax errors. */
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Provides classes for working with expressions.
|
* Provides classes for working with expressions.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
@@ -253,7 +253,7 @@ class Expr extends @expr, ExprOrStmt, ExprOrType, AST::ValueNode {
|
|||||||
* Gets the data-flow node where exceptions thrown by this expression will
|
* Gets the data-flow node where exceptions thrown by this expression will
|
||||||
* propagate if this expression causes an exception to be thrown.
|
* propagate if this expression causes an exception to be thrown.
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
DataFlow::Node getExceptionTarget() {
|
DataFlow::Node getExceptionTarget() {
|
||||||
result = getCatchParameterFromStmt(getRawEnclosingStmt(this))
|
result = getCatchParameterFromStmt(getRawEnclosingStmt(this))
|
||||||
@@ -271,7 +271,7 @@ private DataFlow::Node getCatchParameterFromStmt(Stmt stmt) {
|
|||||||
DataFlow::parameterNode(stmt.getEnclosingTryCatchStmt().getACatchClause().getAParameter())
|
DataFlow::parameterNode(stmt.getEnclosingTryCatchStmt().getACatchClause().getAParameter())
|
||||||
}
|
}
|
||||||
|
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
private Stmt getRawEnclosingStmt(Expr e) {
|
private Stmt getRawEnclosingStmt(Expr e) {
|
||||||
// For performance reasons, we need the enclosing statement without overrides
|
// For performance reasons, we need the enclosing statement without overrides
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Provides classes for reasoning about `extend`-like functions.
|
* Provides classes for reasoning about `extend`-like functions.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
* Array.prototype.length;
|
* Array.prototype.length;
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/** Provides classes for working with files and folders. */
|
/** Provides classes for working with files and folders. */
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/** Provides classes for working with functions. */
|
/** Provides classes for working with functions. */
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Provides predicates for associating qualified names with data flow nodes.
|
* Provides predicates for associating qualified names with data flow nodes.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
@@ -357,7 +357,7 @@ module AccessPath {
|
|||||||
* Gets a variable that is relevant for the computations in the `GetLaterAccess` module.
|
* Gets a variable that is relevant for the computations in the `GetLaterAccess` module.
|
||||||
* This predicate restricts as much as it can, but without depending on `getAVariableRef`.
|
* This predicate restricts as much as it can, but without depending on `getAVariableRef`.
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
private SsaVariable getARelevantVariableSimple() {
|
private SsaVariable getARelevantVariableSimple() {
|
||||||
// The variable might be used where `getLaterBaseAccess()` is called.
|
// The variable might be used where `getLaterBaseAccess()` is called.
|
||||||
@@ -409,7 +409,7 @@ module AccessPath {
|
|||||||
* }
|
* }
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
DataFlow::Node getAReferenceTo(Root root, string path) {
|
DataFlow::Node getAReferenceTo(Root root, string path) {
|
||||||
path = fromReference(result, root) and
|
path = fromReference(result, root) and
|
||||||
@@ -433,7 +433,7 @@ module AccessPath {
|
|||||||
* })(NS = NS || {});
|
* })(NS = NS || {});
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
DataFlow::Node getAReferenceTo(string path) {
|
DataFlow::Node getAReferenceTo(string path) {
|
||||||
path = fromReference(result, DataFlow::globalAccessPathRootPseudoNode())
|
path = fromReference(result, DataFlow::globalAccessPathRootPseudoNode())
|
||||||
@@ -455,7 +455,7 @@ module AccessPath {
|
|||||||
* }
|
* }
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
DataFlow::Node getAnAssignmentTo(Root root, string path) {
|
DataFlow::Node getAnAssignmentTo(Root root, string path) {
|
||||||
path = fromRhs(result, root) and
|
path = fromRhs(result, root) and
|
||||||
@@ -477,7 +477,7 @@ module AccessPath {
|
|||||||
* })(foo = foo || {});
|
* })(foo = foo || {});
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
DataFlow::Node getAnAssignmentTo(string path) {
|
DataFlow::Node getAnAssignmentTo(string path) {
|
||||||
path = fromRhs(result, DataFlow::globalAccessPathRootPseudoNode())
|
path = fromRhs(result, DataFlow::globalAccessPathRootPseudoNode())
|
||||||
@@ -488,7 +488,7 @@ module AccessPath {
|
|||||||
*
|
*
|
||||||
* See `getAReferenceTo` and `getAnAssignmentTo` for more details.
|
* See `getAReferenceTo` and `getAnAssignmentTo` for more details.
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
DataFlow::Node getAReferenceOrAssignmentTo(string path) {
|
DataFlow::Node getAReferenceOrAssignmentTo(string path) {
|
||||||
result = getAReferenceTo(path)
|
result = getAReferenceTo(path)
|
||||||
@@ -501,7 +501,7 @@ module AccessPath {
|
|||||||
*
|
*
|
||||||
* See `getAReferenceTo` and `getAnAssignmentTo` for more details.
|
* See `getAReferenceTo` and `getAnAssignmentTo` for more details.
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
DataFlow::Node getAReferenceOrAssignmentTo(Root root, string path) {
|
DataFlow::Node getAReferenceOrAssignmentTo(Root root, string path) {
|
||||||
result = getAReferenceTo(root, path)
|
result = getAReferenceTo(root, path)
|
||||||
@@ -530,7 +530,7 @@ module AccessPath {
|
|||||||
/**
|
/**
|
||||||
* Gets a `SourceNode` that refers to the same value or access path as the given node.
|
* Gets a `SourceNode` that refers to the same value or access path as the given node.
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
DataFlow::SourceNode getAnAliasedSourceNode(DataFlow::Node node) {
|
DataFlow::SourceNode getAnAliasedSourceNode(DataFlow::Node node) {
|
||||||
exists(DataFlow::SourceNode root, string accessPath |
|
exists(DataFlow::SourceNode root, string accessPath |
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/** Provides classes for working with HTML documents. */
|
/** Provides classes for working with HTML documents. */
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/** Provides classes for working with JSDoc comments. */
|
/** Provides classes for working with JSDoc comments. */
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Provides classes for working with JSON data.
|
* Provides classes for working with JSON data.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Provides classes for working with JSX code.
|
* Provides classes for working with JSX code.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
* This information is only available for snapshots that have been extracted with
|
* This information is only available for snapshots that have been extracted with
|
||||||
* the `--extract-program-text` flag.
|
* the `--extract-program-text` flag.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/** Provides classes for working with locations and program elements that have locations. */
|
/** Provides classes for working with locations and program elements that have locations. */
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
@@ -32,7 +32,7 @@ final class Location extends @location_default {
|
|||||||
int getNumLines() { result = this.getEndLine() - this.getStartLine() + 1 }
|
int getNumLines() { result = this.getEndLine() - this.getStartLine() + 1 }
|
||||||
|
|
||||||
/** Holds if this location starts before location `that`. */
|
/** Holds if this location starts before location `that`. */
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate startsBefore(Location that) {
|
predicate startsBefore(Location that) {
|
||||||
exists(string f, int sl1, int sc1, int sl2, int sc2 |
|
exists(string f, int sl1, int sc1, int sl2, int sc2 |
|
||||||
@@ -46,7 +46,7 @@ final class Location extends @location_default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Holds if this location ends after location `that`. */
|
/** Holds if this location ends after location `that`. */
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate endsAfter(Location that) {
|
predicate endsAfter(Location that) {
|
||||||
exists(string f, int el1, int ec1, int el2, int ec2 |
|
exists(string f, int el1, int ec1, int el2, int ec2 |
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* ECMAScript 2015-style modules, and the older CommonJS and AMD-style
|
* ECMAScript 2015-style modules, and the older CommonJS and AMD-style
|
||||||
* modules.
|
* modules.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ private import semmle.javascript.dataflow.internal.DataFlowNode
|
|||||||
* process.stdout.write(fs.readFileSync(process.argv[i], 'utf8'));
|
* process.stdout.write(fs.readFileSync(process.argv[i], 'utf8'));
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
class NodeModule extends Module {
|
class NodeModule extends Module {
|
||||||
NodeModule() {
|
NodeModule() {
|
||||||
is_module(this) and
|
is_module(this) and
|
||||||
@@ -234,7 +234,7 @@ predicate findNodeModulesFolder(Folder f, Folder nodeModules, int distance) {
|
|||||||
/**
|
/**
|
||||||
* A Node.js `require` variable.
|
* A Node.js `require` variable.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
private class RequireVariable extends Variable {
|
private class RequireVariable extends Variable {
|
||||||
RequireVariable() {
|
RequireVariable() {
|
||||||
this = any(ModuleScope m).getVariable("require")
|
this = any(ModuleScope m).getVariable("require")
|
||||||
@@ -247,7 +247,7 @@ private class RequireVariable extends Variable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
private predicate isModuleModule(EarlyStageNode nd) {
|
private predicate isModuleModule(EarlyStageNode nd) {
|
||||||
exists(ImportDeclaration imp | imp.getRawImportPath() = "module" |
|
exists(ImportDeclaration imp | imp.getRawImportPath() = "module" |
|
||||||
nd = TDestructuredModuleImportNode(imp)
|
nd = TDestructuredModuleImportNode(imp)
|
||||||
@@ -261,7 +261,7 @@ private predicate isModuleModule(EarlyStageNode nd) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
private predicate isCreateRequire(EarlyStageNode nd) {
|
private predicate isCreateRequire(EarlyStageNode nd) {
|
||||||
exists(PropAccess prop |
|
exists(PropAccess prop |
|
||||||
isModuleModule(TValueNode(prop.getBase())) and
|
isModuleModule(TValueNode(prop.getBase())) and
|
||||||
@@ -291,7 +291,7 @@ private predicate isCreateRequire(EarlyStageNode nd) {
|
|||||||
/**
|
/**
|
||||||
* Holds if `nd` may refer to `require`, either directly or modulo local data flow.
|
* Holds if `nd` may refer to `require`, either directly or modulo local data flow.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
cached
|
cached
|
||||||
private predicate isRequire(EarlyStageNode nd) {
|
private predicate isRequire(EarlyStageNode nd) {
|
||||||
exists(VarAccess access |
|
exists(VarAccess access |
|
||||||
@@ -334,7 +334,7 @@ private predicate isRequire(EarlyStageNode nd) {
|
|||||||
* require('fs')
|
* require('fs')
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
class Require extends CallExpr, Import {
|
class Require extends CallExpr, Import {
|
||||||
Require() { isRequire(TValueNode(this.getCallee())) }
|
Require() { isRequire(TValueNode(this.getCallee())) }
|
||||||
|
|
||||||
|
|||||||
@@ -186,13 +186,13 @@ module Promises {
|
|||||||
/**
|
/**
|
||||||
* Gets the pseudo-field used to describe resolved values in a promise.
|
* Gets the pseudo-field used to describe resolved values in a promise.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
string valueProp() { result = "$PromiseResolveField$" }
|
string valueProp() { result = "$PromiseResolveField$" }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the pseudo-field used to describe rejected values in a promise.
|
* Gets the pseudo-field used to describe rejected values in a promise.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
string errorProp() { result = "$PromiseRejectField$" }
|
string errorProp() { result = "$PromiseRejectField$" }
|
||||||
|
|
||||||
/** A property set containing the pseudo-properites of a promise object. */
|
/** A property set containing the pseudo-properites of a promise object. */
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
* Regular expression literals are represented as an abstract syntax tree of regular expression
|
* Regular expression literals are represented as an abstract syntax tree of regular expression
|
||||||
* terms.
|
* terms.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
* expression in `k` induces a re-capture of `x` to reflect the fact that `x`
|
* expression in `k` induces a re-capture of `x` to reflect the fact that `x`
|
||||||
* is incremented between the two `console.log` calls.
|
* is incremented between the two `console.log` calls.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/** Provides classes for working with statements. */
|
/** Provides classes for working with statements. */
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/** Provides classes for working with ECMAScript 2015-style template expressions. */
|
/** Provides classes for working with ECMAScript 2015-style template expressions. */
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Provides classes for working with the token-based representation of JavaScript programs.
|
* Provides classes for working with the token-based representation of JavaScript programs.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Provides classes for reasoning about type annotations independently of dialect.
|
* Provides classes for reasoning about type annotations independently of dialect.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/** Provides classes for modeling program variables. */
|
/** Provides classes for modeling program variables. */
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Provides classes and predicates for working with XML files and their content.
|
* Provides classes and predicates for working with XML files and their content.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import semmle.files.FileSystem
|
import semmle.files.FileSystem
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
* YAML documents are represented as abstract syntax trees whose nodes
|
* YAML documents are represented as abstract syntax trees whose nodes
|
||||||
* are either YAML values or alias nodes referring to another YAML value.
|
* are either YAML values or alias nodes referring to another YAML value.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
* they represent; additionally, indefinite abstract values record
|
* they represent; additionally, indefinite abstract values record
|
||||||
* the source of imprecision that caused them to arise.
|
* the source of imprecision that caused them to arise.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
private import javascript
|
private import javascript
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ private import semmle.javascript.internal.CachedStages
|
|||||||
* Note: For performance reasons, all subclasses of this class should be part
|
* Note: For performance reasons, all subclasses of this class should be part
|
||||||
* of the standard library. Use `isAdditionalFlowStep` for query-specific flow steps.
|
* of the standard library. Use `isAdditionalFlowStep` for query-specific flow steps.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
class AdditionalFlowStep extends Unit {
|
class AdditionalFlowStep extends Unit {
|
||||||
/**
|
/**
|
||||||
* Holds if `pred` → `succ` should be considered a value-preserving data flow edge.f
|
* Holds if `pred` → `succ` should be considered a value-preserving data flow edge.f
|
||||||
|
|||||||
@@ -625,19 +625,19 @@ abstract deprecated class LabeledBarrierGuardNode extends BarrierGuardNode {
|
|||||||
*
|
*
|
||||||
* For use with load/store steps in `DataFlow::SharedFlowStep` and TypeTracking.
|
* For use with load/store steps in `DataFlow::SharedFlowStep` and TypeTracking.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module PseudoProperties {
|
module PseudoProperties {
|
||||||
/** Holds if `s` is a pseudo-property. */
|
/** Holds if `s` is a pseudo-property. */
|
||||||
bindingset[s]
|
bindingset[s]
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
predicate isPseudoProperty(string s) { s.matches("$%$") }
|
predicate isPseudoProperty(string s) { s.matches("$%$") }
|
||||||
|
|
||||||
bindingset[s]
|
bindingset[s]
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
private string pseudoProperty(string s) { result = "$" + s + "$" }
|
private string pseudoProperty(string s) { result = "$" + s + "$" }
|
||||||
|
|
||||||
bindingset[s, v]
|
bindingset[s, v]
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
private string pseudoProperty(string s, string v) { result = "$" + s + "|" + v + "$" }
|
private string pseudoProperty(string s, string v) { result = "$" + s + "|" + v + "$" }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -684,7 +684,7 @@ module PseudoProperties {
|
|||||||
* Gets a pseudo-property for the location of a map value where the key is `key`.
|
* Gets a pseudo-property for the location of a map value where the key is `key`.
|
||||||
* The string value of the `key` is encoded in the result, and there is only a result if the string value of `key` is known.
|
* The string value of the `key` is encoded in the result, and there is only a result if the string value of `key` is known.
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
string mapValueKnownKey(DataFlow::Node key) {
|
string mapValueKnownKey(DataFlow::Node key) {
|
||||||
result = mapValueKey(any(string s | key.mayHaveStringValue(s)))
|
result = mapValueKey(any(string s | key.mayHaveStringValue(s)))
|
||||||
@@ -694,20 +694,20 @@ module PseudoProperties {
|
|||||||
* Gets a pseudo-property for the location of a map value where the key is `key`.
|
* Gets a pseudo-property for the location of a map value where the key is `key`.
|
||||||
*/
|
*/
|
||||||
bindingset[key]
|
bindingset[key]
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
string mapValueKey(string key) { result = pseudoProperty("mapValue", key) }
|
string mapValueKey(string key) { result = pseudoProperty("mapValue", key) }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if `prop` equals `mapValueKey(key)` for some value of `key`.
|
* Holds if `prop` equals `mapValueKey(key)` for some value of `key`.
|
||||||
*/
|
*/
|
||||||
bindingset[prop]
|
bindingset[prop]
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
predicate isMapValueKey(string prop) { prop.matches("$mapValue|%$") }
|
predicate isMapValueKey(string prop) { prop.matches("$mapValue|%$") }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets a pseudo-property for the location of a map value where the key is `key`.
|
* Gets a pseudo-property for the location of a map value where the key is `key`.
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
string mapValue(DataFlow::Node key) {
|
string mapValue(DataFlow::Node key) {
|
||||||
result = mapValueKnownKey(key)
|
result = mapValueKnownKey(key)
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
* For performance reasons, all subclasses of `CustomAbstractValueDefinition`
|
* For performance reasons, all subclasses of `CustomAbstractValueDefinition`
|
||||||
* should be part of the standard library.
|
* should be part of the standard library.
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
private import javascript
|
private import javascript
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
* Flow through global variables, object properties or function calls is not
|
* Flow through global variables, object properties or function calls is not
|
||||||
* modeled (except for immediately invoked functions as explained above).
|
* modeled (except for immediately invoked functions as explained above).
|
||||||
*/
|
*/
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
import javascript
|
import javascript
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/** Provides classes and predicates for defining flow summaries. */
|
/** Provides classes and predicates for defining flow summaries. */
|
||||||
overlay[local]
|
overlay[local?]
|
||||||
module;
|
module;
|
||||||
|
|
||||||
private import javascript
|
private import javascript
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user