From 2e22d38a02c2e56666fcc0992e346dd5de97c6ec Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Tue, 9 Jan 2018 13:53:05 +0800 Subject: [PATCH] improve `rename` reproducibility (#2754) fixes #2752 --- lib/minify.js | 1 + test/mocha/minify.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+) 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);"); + } + }); + }); }); -- 2.34.1