I use esmangle in NodeJS to compress following js: ``` javascript function f(){ return function *(next){ var prev = next; prev = f.call(this, prev); yield *prev; }; } ``` I get the result as: ``` javascript function f(){return function*(b){var a=b;a=f.call(this,a),yield*prev}} ``` The (last one) **prev** in source doesn't be mangled. Compressor code in NodeJS: ``` javascript var esprima = require('esprima'); var esmangle = require('esmangle'); var escodegen = require('escodegen'); var ast = esprima.parse(code); // Get optimized AST var optimized = esmangle.optimize(ast, null); // gets mangled AST var result = esmangle.mangle(optimized); console.log(escodegen.generate(result, { format: { renumber: true, hexadecimal: true, escapeless: true, compact: true, semicolons: false, parentheses: false } })); // dump AST ```
Activity