test.js 824 B

123456789101112131415161718192021222324252627282930
  1. #! /usr/bin/env node
  2. global.sys = require(/^v0\.[012]/.test(process.version) ? "sys" : "util");
  3. var fs = require("fs");
  4. var uglify = require("uglify-js"), // symlink ~/.node_libraries/uglify-js.js to ../uglify-js.js
  5. jsp = uglify.parser,
  6. pro = uglify.uglify;
  7. var code = fs.readFileSync("hoist.js", "utf8");
  8. var ast = jsp.parse(code);
  9. ast = pro.ast_lift_variables(ast);
  10. var w = pro.ast_walker();
  11. ast = w.with_walkers({
  12. "function": function() {
  13. var node = w.dive(this); // walk depth first
  14. console.log(pro.gen_code(node, { beautify: true }));
  15. return node;
  16. },
  17. "name": function(name) {
  18. return [ this[0], "X" ];
  19. }
  20. }, function(){
  21. return w.walk(ast);
  22. });
  23. console.log(pro.gen_code(ast, {
  24. beautify: true
  25. }));