1

我们正在使用 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(抽象语法树)上的任何资源都会有所帮助,因此我可以在将来为其他规则解决这个问题。(教一个人钓鱼等等……)

4

1 回答 1

2

以下简单的 XPath 表达式适用于我:

//primaryExpression[@tokenValue = "alert"]
于 2013-02-11T09:59:55.857 回答