JS: support indirection with extra args in js/missing-this-qualifier

This commit is contained in:
Esben Sparre Andreasen
2018-11-20 10:08:44 +01:00
parent 26a248b14a
commit 82fc8ae32a
3 changed files with 14 additions and 0 deletions

View File

@@ -50,5 +50,13 @@ where maybeMissingThis(call, intendedTarget, gv)
decl.isNamespaceExport() and
call.getContainer().getEnclosingContainer*() instanceof NamespaceDeclaration
)
or
// call to global function with additional arguments
exists (Function self |
intendedTarget.getBody() = self and
call.getEnclosingFunction() = self and
call.flow().(DataFlow::CallNode).getNumArgument() > self.getNumParameter() and
not self.usesArgumentsObject()
)
)
select call, "This call refers to a global function, and not the local method $@.", intendedTarget, intendedTarget.getName()

View File

@@ -0,0 +1,5 @@
class X {
m() {
m("default"); // OK
}
}