diff --git a/AST抽象语法树/15.AST代码还原案例/万能数组还原插件.js b/AST抽象语法树/15.AST代码还原案例/万能数组还原插件.js new file mode 100644 index 0000000..e109e75 --- /dev/null +++ b/AST抽象语法树/15.AST代码还原案例/万能数组还原插件.js @@ -0,0 +1,19 @@ +//这里填入 数组的声明与定义 +let arrName = "XXX"; //XXX 为你要还原的数组名 + +const replaceArrayElements = + { + MemberExpression: { + exit(path) { + let {object, property} = path.node; + if (!types.isIdentifier(object, {name: arrName}) || + !types.isNumericLiteral(property)) { + return; + } + let value = eval(path.toString()); + path.replaceWith(types.valueToNode(value)); + } + }, + } + +traverse(ast, replaceArrayElements); \ No newline at end of file