TL; DR:当我使用esprima
遍历AST树时,我希望与https://github.com/nolanlawson/optimize-js做同样的事情,但使用estraverse
。
ESPrima为以下代码提供相同的输出节点:
!function (){}()
和
!(function (){})()
http://esprima.org/demo/parse.html?code=!function%20()%7B%7D()%0A%0A!(function%20()%7B%7D)()
例如 - 我将遍历AST树。在函数表达式ExpressionStatement节点我想检查 - 如果该节点没有函数的parens - 我想添加它。
那么,我如何能够检测功能parens,我如何添加它们?我看看令牌,但我不知道如何将flat tokens对象与具有指定AST节点的对象相关联。