From 6e105c5ca6c95f6159d91f74df92020f33ae2f99 Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Fri, 25 Sep 2020 15:00:20 +0100 Subject: [PATCH] enhance `merge_vars` (#4152) --- lib/compress.js | 4 +--- test/compress/merge_vars.js | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) 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" +} -- 2.34.1