Skip to content

Commit 00181e0

Browse files
committed
add tests for type-tracking promises
1 parent 9a78d38 commit 00181e0

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

javascript/ql/test/library-tests/Promises/flow.qll

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import javascript
2+
private import semmle.javascript.dataflow.internal.StepSummary
23

34
class Configuration extends DataFlow::Configuration {
45
Configuration() { this = "PromiseDataFlowFlowTestingConfig" }
@@ -32,3 +33,7 @@ query predicate exclusiveTaintFlow(DataFlow::Node source, DataFlow::Node sink) {
3233
not any(Configuration c).hasFlow(source, sink) and
3334
any(TaintConfig c).hasFlow(source, sink)
3435
}
36+
37+
query predicate typetrack(DataFlow::SourceNode succ, DataFlow::SourceNode pred, StepSummary summary) {
38+
succ = PromiseTypeTracking::promiseStep(pred, summary)
39+
}

javascript/ql/test/library-tests/Promises/promises.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,10 @@
7474
resolver.resolve(source);
7575
resolver.promise.then(val => { var sink = val });
7676
})();
77+
78+
(function(source) {
79+
var promise = Promise.resolve(source);
80+
promise.then(function (val) {
81+
var sink = val;
82+
});
83+
})();

javascript/ql/test/library-tests/frameworks/Concepts/tst-file-names.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,8 @@ var bool = globule.isMatch('**/*.js', ["foo.js"])
4545
var map1 = globule.findMapping("foo/*.js")
4646
var map2 = globule.mapping({src: ["a.js", "b.js"]})
4747
var map3 = globule.mapping(["foo/a.js", "foo/b.js"])
48+
49+
async function bar() {
50+
var foo = globby(_);
51+
var files = await foo;
52+
}

0 commit comments

Comments
 (0)