mirror of
https://github.com/github/codeql.git
synced 2025-12-17 17:23:36 +01:00
49 lines
1.7 KiB
JavaScript
49 lines
1.7 KiB
JavaScript
const util = require('util');
|
|
const EventEmitter = require('events');
|
|
|
|
function MyStream() {
|
|
EventEmitter.call(this);
|
|
}
|
|
|
|
util.inherits(MyStream, EventEmitter);
|
|
|
|
MyStream.prototype.write = (data) => this.emit('data', data);
|
|
|
|
function MyOtherStream() { /* use=moduleImport("classes").getMember("exports").getMember("MyOtherStream").getInstance() */
|
|
EventEmitter.call(this);
|
|
}
|
|
|
|
util.inherits(MyOtherStream, EventEmitter);
|
|
|
|
MyOtherStream.prototype.write = function (data) { /* use=moduleImport("classes").getMember("exports").getMember("MyOtherStream").getInstance() */
|
|
this.emit('data', data);
|
|
return this;
|
|
};
|
|
|
|
MyOtherStream.prototype.instanceProp = 1; /* def=moduleImport("classes").getMember("exports").getMember("MyOtherStream").getInstance().getMember("instanceProp") */
|
|
|
|
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;
|