mirror of
https://github.com/github/codeql.git
synced 2025-12-17 01:03:14 +01:00
Merge pull request #15883 from RasmusWL/js-cg-tests
JS: show test changes after #15823
This commit is contained in:
@@ -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,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