Skip to content

Commit 43b2c90

Browse files
authored
Merge pull request #4400 from max-schaefer/js/api-graph-classrefs
Approved by asgerf
2 parents d38121f + 98e93a7 commit 43b2c90

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

javascript/ql/src/semmle/javascript/ApiGraphs.qll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,11 @@ module API {
578578
ref = DataFlow::moduleImport(m)
579579
)
580580
or
581-
exists(DataFlow::ClassNode cls | nd = MkClassInstance(cls) | ref = cls.getAReceiverNode())
581+
exists(DataFlow::ClassNode cls | nd = MkClassInstance(cls) |
582+
ref = cls.getAReceiverNode()
583+
or
584+
ref = cls.(DataFlow::ClassNode::FunctionStyleClass).getAPrototypeReference()
585+
)
582586
or
583587
nd = MkUse(ref)
584588
or

javascript/ql/test/ApiGraphs/classes/classes.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,8 @@ MyOtherStream.prototype.write = function (data) { /* use (instance (member MyOth
2020
return this;
2121
};
2222

23+
MyOtherStream.prototype.instanceProp = 1; /* def (member instanceProp (instance (member MyOtherStream (member exports (module classes))))) */
24+
25+
MyOtherStream.classProp = 1; /* def (member classProp (member MyOtherStream (member exports (module classes)))) */
26+
2327
module.exports.MyOtherStream = MyOtherStream;

0 commit comments

Comments
 (0)