From 77f7ae5ba2449c38751c444263106603edb587ef Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Mon, 15 Nov 2021 13:35:54 +0000 Subject: [PATCH] fix corner case in `join_vars` (#5176) fixes #5175 --- lib/compress.js | 2 +- test/compress/join_vars.js | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/lib/compress.js b/lib/compress.js index 2f5233bb..a4232ed2 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -3500,7 +3500,7 @@ merge(Compressor.prototype, { var exprs = extract_exprs(body); if (!exprs) return; var trimmed = false; - for (var i = exprs.length; --i >= 0;) { + for (var i = exprs.length - (keep || 0); --i >= 0;) { var expr = exprs[i]; if (!can_trim(expr)) continue; var tail; diff --git a/test/compress/join_vars.js b/test/compress/join_vars.js index 94612c4b..e2c54be1 100644 --- a/test/compress/join_vars.js +++ b/test/compress/join_vars.js @@ -1293,3 +1293,26 @@ assign_sequence_var: { "1 2 3", ] } + +issue_5175: { + options = { + join_vars: true, + } + input: { + function log(f) { + console.log(f(), A.p); + } + log(function() { + return (A = {}).p = "PASS"; + }); + } + expect: { + function log(f) { + console.log(f(), A.p); + } + log(function() { + return (A = {}).p = "PASS"; + }); + } + expect_stdout: "PASS PASS" +}