You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
824 B
30 lines
824 B
#! /usr/bin/env node |
|
|
|
global.sys = require(/^v0\.[012]/.test(process.version) ? "sys" : "util"); |
|
var fs = require("fs"); |
|
var uglify = require("uglify-js"), // symlink ~/.node_libraries/uglify-js.js to ../uglify-js.js |
|
jsp = uglify.parser, |
|
pro = uglify.uglify; |
|
|
|
var code = fs.readFileSync("hoist.js", "utf8"); |
|
var ast = jsp.parse(code); |
|
|
|
ast = pro.ast_lift_variables(ast); |
|
|
|
var w = pro.ast_walker(); |
|
ast = w.with_walkers({ |
|
"function": function() { |
|
var node = w.dive(this); // walk depth first |
|
console.log(pro.gen_code(node, { beautify: true })); |
|
return node; |
|
}, |
|
"name": function(name) { |
|
return [ this[0], "X" ]; |
|
} |
|
}, function(){ |
|
return w.walk(ast); |
|
}); |
|
|
|
console.log(pro.gen_code(ast, { |
|
beautify: true |
|
}));
|
|
|