From: Alex Lam S.L Date: Fri, 25 Sep 2020 14:00:20 +0000 (+0100) Subject: enhance `merge_vars` (#4152) X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=6e105c5ca6c95f6159d91f74df92020f33ae2f99;p=UglifyJS.git enhance `merge_vars` (#4152) --- diff --git a/lib/compress.js b/lib/compress.js index 517f29fd..3f7eee68 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -4538,9 +4538,7 @@ merge(Compressor.prototype, { if (def.id in references) { var refs = references[def.id]; if (!refs) return; - if (write ? refs.start !== segment : refs.start.block !== segment.block) { - return references[def.id] = false; - } + if (refs.start.block !== segment.block) return references[def.id] = false; refs.push(sym); refs.end = segment; if (def.id in prev) { diff --git a/test/compress/merge_vars.js b/test/compress/merge_vars.js index b5148669..b86b0e99 100644 --- a/test/compress/merge_vars.js +++ b/test/compress/merge_vars.js @@ -2800,3 +2800,25 @@ lambda_reuse: { "string", ] } + +conditional_write: { + options = { + merge_vars: true, + toplevel: true, + } + input: { + var a = "FAIL", b; + if (console) + a = "PASS"; + b = [a, 42].join(); + console.log(b); + } + expect: { + var b = "FAIL", b; + if (console) + b = "PASS"; + b = [b, 42].join(); + console.log(b); + } + expect_stdout: "PASS,42" +}