From b9b2a4f7f848ef93aa9524fe6ae237a23d4351e9 Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Tue, 25 Jan 2022 16:47:24 +0000 Subject: [PATCH] fix corner case in `inline` (#5311) fixes #5222 --- lib/compress.js | 1 - test/compress/default-values.js | 34 --------------------------------- test/compress/destructured.js | 34 +++++++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 35 deletions(-) diff --git a/lib/compress.js b/lib/compress.js index 8db8b6bf..c75531cf 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -8002,7 +8002,6 @@ Compressor.prototype.compress = function(node) { var defs = defs_by_id[node.definition().id]; if (!defs) return; if (node.fixed_value() !== defs.value) return; - if (is_lhs(node, this.parent())) return; return make_node(AST_Object, node, { properties: [] }); } })); diff --git a/test/compress/default-values.js b/test/compress/default-values.js index 572a5d0c..d263d5f6 100644 --- a/test/compress/default-values.js +++ b/test/compress/default-values.js @@ -2005,40 +2005,6 @@ issue_5192: { node_version: ">=6" } -issue_5222: { - options = { - hoist_props: true, - inline: true, - reduce_vars: true, - side_effects: true, - toplevel: true, - unused: true, - } - input: { - function f() { - do { - (function() { - var a = { - p: [ a ] = [], - }; - })(); - } while (console.log("PASS")); - } - f(); - } - expect: { - do { - a = void 0, - a = { - p: [ a ] = [], - }; - } while (console.log("PASS")); - var a; - } - expect_stdout: "PASS" - node_version: ">=6" -} - issue_5246_1: { options = { pure_getters: true, diff --git a/test/compress/destructured.js b/test/compress/destructured.js index 71208391..4f382f2d 100644 --- a/test/compress/destructured.js +++ b/test/compress/destructured.js @@ -3368,6 +3368,40 @@ issue_5189_2: { node_version: ">=6" } +issue_5222: { + options = { + hoist_props: true, + inline: true, + reduce_vars: true, + side_effects: true, + toplevel: true, + unused: true, + } + input: { + function f() { + do { + (function() { + var a = { + p: [ a ] = [], + }; + })(); + } while (console.log("PASS")); + } + f(); + } + expect: { + do { + a = void 0, + a = { + p: [ a ] = [], + }; + } while (console.log("PASS")); + var a; + } + expect_stdout: "PASS" + node_version: ">=6" +} + issue_5288: { options = { conditionals: true,