JS: Add test for SourceNode not depending on flowsTo

This commit is contained in:
Asger Feldthaus 2020-04-08 10:23:47 +01:00
Родитель ffbbdd7779
Коммит 171b131eb1
3 изменённых файлов: 22 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1 @@
| Success |

Просмотреть файл

@ -0,0 +1,19 @@
/**
* Test that fails to compile if the domain of `SourceNode` depends on `SourceNode.flowsTo` (recursively).
*
* This tests adds a negative dependency `flowsTo --!--> SourceNode`
* so that the undesired edge `SourceNode --> flowsTo` completes a negative cycle.
*/
import javascript
class BadSourceNode extends DataFlow::SourceNode {
BadSourceNode() {
this.(DataFlow::PropRead).getPropertyName() = "foo"
}
override predicate flowsTo(DataFlow::Node node) {
not node instanceof DataFlow::SourceNode
}
}
select "Success"

Просмотреть файл

@ -0,0 +1,2 @@
// The contents of this file don't matter
let x = 1;