Merge pull request #21025 from github/oscarsj/mergeback-rc-3-20-into-main

Mergeback rc/3.20 into main
This commit is contained in:
Óscar San José
2025-12-15 11:59:58 +01:00
committed by GitHub
237 changed files with 513 additions and 226 deletions

View File

@@ -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.

View File

@@ -0,0 +1,3 @@
## 0.4.24
No user-facing changes.

View File

@@ -1,2 +1,2 @@
--- ---
lastReleaseVersion: 0.4.23 lastReleaseVersion: 0.4.24

View File

@@ -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:

View File

@@ -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.

View File

@@ -0,0 +1,3 @@
## 0.6.16
No user-facing changes.

View File

@@ -1,2 +1,2 @@
--- ---
lastReleaseVersion: 0.6.15 lastReleaseVersion: 0.6.16

View File

@@ -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]

View File

@@ -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.

View File

@@ -0,0 +1,3 @@
## 6.1.3
No user-facing changes.

View File

@@ -1,2 +1,2 @@
--- ---
lastReleaseVersion: 6.1.2 lastReleaseVersion: 6.1.3

View File

@@ -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

View File

@@ -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.

View File

@@ -0,0 +1,3 @@
## 1.5.7
No user-facing changes.

View File

@@ -1,2 +1,2 @@
--- ---
lastReleaseVersion: 1.5.6 lastReleaseVersion: 1.5.7

View File

@@ -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

View File

@@ -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.

View File

@@ -0,0 +1,3 @@
## 1.7.55
No user-facing changes.

View File

@@ -1,2 +1,2 @@
--- ---
lastReleaseVersion: 1.7.54 lastReleaseVersion: 1.7.55

View File

@@ -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

View File

@@ -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.

View File

@@ -0,0 +1,3 @@
## 1.7.55
No user-facing changes.

View File

@@ -1,2 +1,2 @@
--- ---
lastReleaseVersion: 1.7.54 lastReleaseVersion: 1.7.55

View File

@@ -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

View File

@@ -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.

View File

@@ -0,0 +1,3 @@
## 5.4.3
No user-facing changes.

View File

@@ -1,2 +1,2 @@
--- ---
lastReleaseVersion: 5.4.2 lastReleaseVersion: 5.4.3

View File

@@ -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

View File

@@ -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.

View File

@@ -0,0 +1,3 @@
## 1.5.3
No user-facing changes.

View File

@@ -1,2 +1,2 @@
--- ---
lastReleaseVersion: 1.5.2 lastReleaseVersion: 1.5.3

View File

@@ -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

View File

@@ -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.

View File

@@ -0,0 +1,3 @@
## 1.0.38
No user-facing changes.

View File

@@ -1,2 +1,2 @@
--- ---
lastReleaseVersion: 1.0.37 lastReleaseVersion: 1.0.38

View File

@@ -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

View File

@@ -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.

View File

@@ -0,0 +1,3 @@
## 5.0.5
No user-facing changes.

View File

@@ -1,2 +1,2 @@
--- ---
lastReleaseVersion: 5.0.4 lastReleaseVersion: 5.0.5

View File

@@ -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

View File

@@ -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.

View File

@@ -0,0 +1,3 @@
## 1.5.2
No user-facing changes.

View File

@@ -1,2 +1,2 @@
--- ---
lastReleaseVersion: 1.5.1 lastReleaseVersion: 1.5.2

View File

@@ -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

View File

@@ -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.

View File

@@ -0,0 +1,3 @@
## 7.8.2
No user-facing changes.

View File

@@ -1,2 +1,2 @@
--- ---
lastReleaseVersion: 7.8.1 lastReleaseVersion: 7.8.2

View File

@@ -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

View File

@@ -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.

View File

@@ -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.

View File

@@ -1,2 +1,2 @@
--- ---
lastReleaseVersion: 1.10.2 lastReleaseVersion: 1.10.3

View File

@@ -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

View File

@@ -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.

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,3 @@
## 2.6.18
No user-facing changes.

View File

@@ -1,2 +1,2 @@
--- ---
lastReleaseVersion: 2.6.17 lastReleaseVersion: 2.6.18

View File

@@ -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

View File

@@ -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

View File

@@ -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) }

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -36,7 +36,7 @@
* Array.prototype.length; * Array.prototype.length;
* </pre> * </pre>
*/ */
overlay[local] overlay[local?]
module; module;
import javascript import javascript

View File

@@ -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

View File

@@ -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

View File

@@ -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 |

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 |

View File

@@ -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

View File

@@ -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())) }

View File

@@ -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. */

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1,4 +1,4 @@
overlay[local] overlay[local?]
module; module;
import javascript import javascript

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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` &rarr; `succ` should be considered a value-preserving data flow edge.f * Holds if `pred` &rarr; `succ` should be considered a value-preserving data flow edge.f

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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