You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* A model for a function that can propagate data flow.
13
-
*
14
-
* This class makes it possible to model flow through functions, using the same mechanism as
15
-
* `summaryModel` as described in the [library customization docs](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-javascript).
16
-
*
17
-
* Extend this class to define summary models directly in CodeQL.
18
-
* Data extensions and `summaryModel` are usually preferred; but there are a few cases where direct use of this class may be needed:
19
-
*
20
-
* - The relevant call sites cannot be matched by the access path syntax, and require the full power of CodeQL.
21
-
* For example, complex overloading patterns might require more local reasoning at the call site.
22
-
* - The input/output behavior cannot be described statically in the access path syntax, but the relevant access paths
23
-
* can be generated dynamically in CodeQL, based on the usages found in the codebase.
24
-
*
25
-
* Subclasses should bind `this` to a unique identifier for the function being modeled. There is no special
26
-
* interpreation of the `this` value, it should just not clash with the `this`-value used by other classes.
27
-
*
28
-
* For example, this models flow through calls such as `require("my-library").myFunction()`:
/** Provides the `Range` class used to define the extent of `SummarizedCallable`. */
14
+
module SummarizedCallable {
58
15
/**
59
-
* Holds if data may flow from `input` to `output` through this callable.
16
+
* A model for a function that can propagate data flow.
60
17
*
61
-
* `preservesValue` indicates whether this is a value-preserving step or a taint-step.
18
+
* This class makes it possible to model flow through functions, using the same mechanism as
19
+
* `summaryModel` as described in the [library customization docs](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-javascript).
62
20
*
63
-
* See the [library customization docs](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-javascript) for
64
-
* the syntax of the `input` and `output` parameters.
21
+
* Extend this class to define summary models directly in CodeQL.
22
+
* Data extensions and `summaryModel` are usually preferred; but there are a few cases where direct use of this class may be needed:
23
+
*
24
+
* - The relevant call sites cannot be matched by the access path syntax, and require the full power of CodeQL.
25
+
* For example, complex overloading patterns might require more local reasoning at the call site.
26
+
* - The input/output behavior cannot be described statically in the access path syntax, but the relevant access paths
27
+
* can be generated dynamically in CodeQL, based on the usages found in the codebase.
28
+
*
29
+
* Subclasses should bind `this` to a unique identifier for the function being modeled. There is no special
30
+
* interpreation of the `this` value, it should just not clash with the `this`-value used by other classes.
31
+
*
32
+
* For example, this models flow through calls such as `require("my-library").myFunction()`:
33
+
* ```codeql
34
+
* class MyFunction extends SummarizedCallable::Range {
0 commit comments