mirror of
https://github.com/github/codeql.git
synced 2026-04-24 00:05:14 +02:00
JS: Add tests before #15823 changes
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
| classes.js:31:28:31:122 | /* use= ... ce() */ | def moduleImport("classes").getMember("exports").getMember("MyThirdStream") has no outgoing edge labelled getInstance(); it does have outgoing edges labelled getReceiver(). |
|
||||
| classes.js:33:37:33:131 | /* use= ... ce() */ | def moduleImport("classes").getMember("exports").getMember("MyThirdStream") has no outgoing edge labelled getInstance(); it does have outgoing edges labelled getReceiver(). |
|
||||
| classes.js:40:28:40:112 | /* use= ... ce() */ | def moduleImport("classes").getMember("exports").getMember("bar") has no outgoing edge labelled getInstance(); it does have outgoing edges labelled getReceiver(). |
|
||||
| classes.js:45:26:45:110 | /* use= ... ce() */ | def moduleImport("classes").getMember("exports").getMember("bar") has no outgoing edge labelled getInstance(); it does have outgoing edges labelled getReceiver(). |
|
||||
|
||||
@@ -25,3 +25,24 @@ MyOtherStream.prototype.instanceProp = 1; /* def=moduleImport("classes").getMemb
|
||||
MyOtherStream.classProp = 1; /* def=moduleImport("classes").getMember("exports").getMember("MyOtherStream").getMember("classProp") */
|
||||
|
||||
module.exports.MyOtherStream = MyOtherStream;
|
||||
|
||||
|
||||
// function-style class without .prototype reference
|
||||
function MyThirdStream() { /* use=moduleImport("classes").getMember("exports").getMember("MyThirdStream").getInstance() */
|
||||
}
|
||||
let instance = new MyThirdStream(); /* use=moduleImport("classes").getMember("exports").getMember("MyThirdStream").getInstance() */
|
||||
|
||||
module.exports.MyThirdStream = MyThirdStream;
|
||||
|
||||
|
||||
// function-style class without .prototype reference (through global variable)
|
||||
(function(f) {
|
||||
foo.bar = function() { /* use=moduleImport("classes").getMember("exports").getMember("bar").getInstance() */
|
||||
}
|
||||
})(foo = foo || {});
|
||||
|
||||
(function(f) {
|
||||
let x = new f.bar(); /* use=moduleImport("classes").getMember("exports").getMember("bar").getInstance() */
|
||||
})(foo = foo || {});
|
||||
|
||||
module.exports.bar = foo.bar;
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
| implicit-receiver.js:8:22:8:52 | // trac ... ver-obj | Failed to track implicit-receiver-obj here. |
|
||||
| implicit-receiver.js:9:24:9:84 | // trac ... er-prop | Failed to track implicit-receiver-obj here. |
|
||||
| implicit-receiver.js:9:24:9:84 | // trac ... er-prop | Failed to track implicit-receiver-prop here. |
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
import 'dummy';
|
||||
|
||||
let trackedProp = "implicit-receiver-prop"; // name: implicit-receiver-prop
|
||||
|
||||
function factory() {
|
||||
let obj = unknown(); // name: implicit-receiver-obj
|
||||
obj.foo = function() {
|
||||
track(this); // track: implicit-receiver-obj
|
||||
track(this.x); // track: implicit-receiver-obj track: implicit-receiver-prop
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
let obj = factory();
|
||||
obj.x = trackedProp;
|
||||
|
||||
|
||||
function factory2() {
|
||||
let obj2 = { // name: implicit-receiver-obj2
|
||||
foo: function() {
|
||||
track(this); // track: implicit-receiver-obj2
|
||||
track(this.x); // track: implicit-receiver-obj2 track: implicit-receiver-prop
|
||||
}
|
||||
}
|
||||
return obj2;
|
||||
}
|
||||
let obj2 = factory2()
|
||||
obj2.x = trackedProp;
|
||||
Reference in New Issue
Block a user