JS: Update Collection step test and its output

This commit is contained in:
Asger Feldthaus
2021-03-22 11:08:42 +00:00
parent c067d519d9
commit 98cee7d339
3 changed files with 9 additions and 10 deletions

View File

@@ -26,3 +26,6 @@ typeTracking
| tst.js:2:16:2:23 | source() | tst.js:37:14:37:14 | e |
| tst.js:2:16:2:23 | source() | tst.js:45:14:45:14 | e |
| tst.js:2:16:2:23 | source() | tst.js:53:8:53:21 | map.get("key") |
| tst.js:2:16:2:23 | source() | tst.js:59:8:59:22 | map2.get("foo") |
| tst.js:2:16:2:23 | source() | tst.js:64:8:64:26 | map3.get(unknown()) |
| tst.js:2:16:2:23 | source() | tst.js:69:8:69:26 | map3.get(unknown()) |

View File

@@ -22,10 +22,6 @@ DataFlow::SourceNode trackSource(DataFlow::TypeTracker t, DataFlow::SourceNode s
start = result
or
exists(DataFlow::TypeTracker t2 | t = t2.step(trackSource(t2, start), result))
or
exists(DataFlow::TypeTracker t2 |
result = CollectionsTypeTracking::collectionStep(trackSource(t2, start), t, t2)
)
}
query DataFlow::SourceNode typeTracking(DataFlow::Node start) {

View File

@@ -54,17 +54,17 @@
sink(map.get("nonExistingKey")); // OK.
// unknown write, known read
var map2 = new map();
var map2 = new Map();
map2.set(unknown(), source);
sink(map2.get("foo")); // NOT OK (for data-flow). OK for type-tracking.
sink(map2.get("foo")); // NOT OK (for data-flow).
// unknown write, unknown read
var map3 = new map();
var map3 = new Map();
map3.set(unknown(), source);
sink(map3.get(unknown())); // NOT OK (for data-flow). OK for type-tracking.
sink(map3.get(unknown())); // NOT OK (for data-flow).
// known write, unknown read
var map4 = new map();
var map4 = new Map();
map4.set("foo", source);
sink(map3.get(unknown())); // NOT OK (for data-flow). OK for type-tracking.
sink(map3.get(unknown())); // NOT OK (for data-flow).
})();