aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Lam S.L <alexlamsl@gmail.com>2018-01-09 13:53:05 +0800
committerGitHub <noreply@github.com>2018-01-09 13:53:05 +0800
commit2e22d38a02c2e56666fcc0992e346dd5de97c6ec (patch)
tree44210c9ef83c28533270fbe72b2db8fccfc354b2
parentce27bcd69a0a66bf145ee2f14927a3cfec9b0202 (diff)
downloadtracifyjs-2e22d38a02c2e56666fcc0992e346dd5de97c6ec.tar.gz
tracifyjs-2e22d38a02c2e56666fcc0992e346dd5de97c6ec.zip
improve `rename` reproducibility (#2754)
fixes #2752
-rw-r--r--lib/minify.js1
-rw-r--r--test/mocha/minify.js14
2 files changed, 15 insertions, 0 deletions
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);");
+ }
+ });
+ });
});