实例
// 还原前 var flag = (326190 ^ 326191) > (60716 ^ 60709) // 还原后 var flag = 1 > 9;
还原
遍历
二项式节点
,左右
都是数字类型
,则满足还原要求
是否通用:是
traverse(ast, { BinaryExpression(path) { // 判断这样的 326190 ^ 326191 特征 if (type.isNumericLiteral(path.node.left) && type.isNumericLiteral(path.node.right)) { let {confident, value} = path.evaluate() // 使用提供的 api 计算 confident && path.replaceWith(type.valueToNode(value)) } } })
版权声明:《 【AST 还原】一、还原数值常量 》为明妃原创文章,转载请注明出处!
最后编辑:2022-4-20 13:04:11