【发布时间】:2013-01-26 08:18:59
【问题描述】:
我们正在使用 Sonar 3.4.1 在我们的持续集成服务器上分析我们的 JavaScript。
我添加了很多自定义规则;例如:如果使用了任何console.* 调试函数,则会发出阻塞违规。
XPath 查询示例:
//callExpression/memberExpression[count(*) = 3 and primaryExpression[@tokenValue = "console"] and identifierName[@tokenValue = "log"]]
我想为alert(...) 的使用添加一条规则,但我似乎无法让它正常工作。
我在 XPath 查询上尝试了很多变体,例如:
//callExpression/memberExpression[count(*) = 2 and primaryExpression[@tokenValue = "alert"]]
我能得到的最好结果是发现了alert()s,但也发现了$varName.alert() 之类的东西,这是误报。
如何单独查询alert()的使用情况?
而且 AST(抽象语法树)上的任何资源都会有所帮助,因此我可以在将来为其他规则解决这个问题。 (教人钓鱼等等……)
【问题讨论】:
标签: javascript xpath code-analysis sonarqube abstract-syntax-tree