From: Alex Lam S.L Date: Tue, 29 Dec 2020 11:43:12 +0000 (+0000) Subject: enhance `reduce_vars` (#4479) X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=560ccc1221639dca9db354ad6830e418a9f0073d;p=UglifyJS.git enhance `reduce_vars` (#4479) --- diff --git a/lib/compress.js b/lib/compress.js index 0369b63d..591ad4dd 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -771,8 +771,7 @@ merge(Compressor.prototype, { } var d = sym.definition(); d.assignments++; - if (!is_modified(compressor, tw, node, node.right, 0) - && can_drop_symbol(sym) && safe_to_assign(tw, d)) { + if (!is_modified(compressor, tw, node, node.right, 0) && safe_to_assign(tw, d)) { push_ref(d, sym); mark(tw, d); if (d.single_use && left instanceof AST_Destructured) d.single_use = false; diff --git a/test/compress/let.js b/test/compress/let.js index 59b89023..f52dcb50 100644 --- a/test/compress/let.js +++ b/test/compress/let.js @@ -359,6 +359,28 @@ reduce_block_2_toplevel: { node_version: ">=4" } +reduce_vars: { + options = { + evaluate: true, + reduce_vars: true, + toplevel: true, + unused: true, + } + input: { + "use strict"; + let a = "PASS"; + console.log(a); + a = "FAIL"; + } + expect: { + "use strict"; + console.log("PASS"); + "FAIL"; + } + expect_stdout: "PASS" + node_version: ">=4" +} + hoist_props: { options = { hoist_props: true,