mirror of
https://github.com/github/codeql.git
synced 2026-04-28 02:05:14 +02:00
JS: recognize binding decorators on classes
This commit is contained in:
@@ -45,7 +45,11 @@ private predicate isBoundInMethod(MethodDeclaration method) {
|
||||
)
|
||||
or
|
||||
exists (Expr decoration, string name |
|
||||
decoration = method.getADecorator().getExpression() and
|
||||
(
|
||||
decoration = method.getADecorator().getExpression()
|
||||
or
|
||||
decoration = method.getDeclaringType().(ClassDefinition).getADecorator().getExpression()
|
||||
) and
|
||||
name.regexpMatch("(?i).*(bind|bound).*") |
|
||||
// @autobind
|
||||
decoration.(Identifier).getName() = name or
|
||||
|
||||
@@ -120,4 +120,18 @@ class Component1 extends React.Component {
|
||||
|
||||
}
|
||||
|
||||
@autobind
|
||||
class Component2 extends React.Component {
|
||||
|
||||
render() {
|
||||
return <div>
|
||||
<div onClick={this.bound_throughClassDecorator_autobind}/> // OK
|
||||
</div>;
|
||||
}
|
||||
|
||||
bound_throughClassDecorator_autobind() {
|
||||
this.setState({ });
|
||||
}
|
||||
|
||||
}
|
||||
// semmle-extractor-options: --experimental
|
||||
|
||||
Reference in New Issue
Block a user