diff --git a/lib/compress.js b/lib/compress.js index a9203ce934..fdf46fb9ae 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -1490,7 +1490,7 @@ merge(Compressor.prototype, { lhs = lhs.fixed_value(); } if (!lhs) return true; - if (lhs.is_constant()) return true; + if (lhs.tail_node().is_constant()) return true; return is_lhs_read_only(lhs, compressor); } if (lhs instanceof AST_SymbolRef) { diff --git a/test/compress/default-values.js b/test/compress/default-values.js index 1a21f513a7..56fa5c9506 100644 --- a/test/compress/default-values.js +++ b/test/compress/default-values.js @@ -1703,3 +1703,29 @@ issue_4854: { expect_stdout: "undefined" node_version: ">=6" } + +issue_4916: { + options = { + collapse_vars: true, + pure_getters: "strict", + reduce_vars: true, + } + input: { + var log = console.log; + (function(b = "foo") { + b.value = "FAIL"; + b; + log(b.value); + })(); + } + expect: { + var log = console.log; + (function(b = "foo") { + b.value = "FAIL"; + b; + log(b.value); + })(); + } + expect_stdout: "undefined" + node_version: ">=6" +}