From: Alex Lam S.L Date: Tue, 9 Jan 2018 05:53:05 +0000 (+0800) Subject: improve `rename` reproducibility (#2754) X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=2e22d38a02c2e56666fcc0992e346dd5de97c6ec;p=UglifyJS.git improve `rename` reproducibility (#2754) fixes #2752 --- diff --git a/lib/minify.js b/lib/minify.js index a68cbf3a..aad7d226 100644 --- a/lib/minify.js +++ b/lib/minify.js @@ -141,6 +141,7 @@ function minify(files, options) { } if (timings) timings.rename = Date.now(); if (options.rename) { + SymbolDef.next_id = 1; toplevel.figure_out_scope(options.mangle); toplevel.expand_names(options.mangle); } diff --git a/test/mocha/minify.js b/test/mocha/minify.js index a304c5b5..d696a25f 100644 --- a/test/mocha/minify.js +++ b/test/mocha/minify.js @@ -373,4 +373,18 @@ describe("minify", function() { assert.strictEqual(stat.print_to_string(), "a=x()"); }); }); + + describe("rename", function() { + it("Should be repeatable", function() { + var code = "!function(x){return x(x)}(y);"; + for (var i = 0; i < 2; i++) { + assert.strictEqual(Uglify.minify(code, { + compress: { + toplevel: true, + }, + rename: true, + }).code, "var a2;(a2=y)(a2);"); + } + }); + }); });