JS: Update frameworks/immutable test

This commit is contained in:
Asger F
2023-10-06 09:48:45 +02:00
parent a2d4a03c0e
commit 644f9683b1
2 changed files with 17 additions and 7 deletions

View File

@@ -1,18 +1,26 @@
import javascript
private import semmle.javascript.dataflow.internal.StepSummary
class Config extends DataFlow::Configuration {
Config() { this = "Config" }
override predicate isSource(DataFlow::Node source) {
module TestConfig implements DataFlow::ConfigSig {
predicate isSource(DataFlow::Node source) {
source.(DataFlow::CallNode).getCalleeName() = "source"
}
override predicate isSink(DataFlow::Node sink) {
predicate isSink(DataFlow::Node sink) {
exists(DataFlow::CallNode call | call.getCalleeName() = "sink" | call.getAnArgument() = sink)
}
}
query predicate dataFlow(DataFlow::Node pred, DataFlow::Node succ) {
any(Config c).hasFlow(pred, succ)
module TestFlow = DataFlow::Global<TestConfig>;
class LegacyConfig extends DataFlow::Configuration {
LegacyConfig() { this = "Config" }
override predicate isSource(DataFlow::Node source) { TestConfig::isSource(source) }
override predicate isSink(DataFlow::Node sink) { TestConfig::isSink(sink) }
}
query predicate dataFlow = TestFlow::flow/2;
import testUtilities.LegacyDataFlowDiff::DataFlowDiff<TestFlow, LegacyConfig>