TL;DR:我想做同样的事情https://github.com/nolanlawson/optimize-js但与esprima
当我遍历AST树与estraverse
。
ESPrima给出以下代码相同的输出节点:
!function (){}()
和
!(function (){})()
http://esprima.org/demo/parse.html?code= ! % 20()函数% 7 b % 7 d () % 0 a % 0 !(函数% 20 ()% 7 b % 7 d) ()
例如- i将遍历AST树。在函数表达式表达式声明节点上,我想检查-如果该节点在函数周围没有父节点-我想添加它。
那么,我如何检测函数父级,我如何添加它们?我查看令牌,但我不知道如何将平面令牌对象与指定AST节点的对象关联。
似乎这不是esprima的任务,而是escodegen的任务https://github.com/estools/escodegen/issues/315