diff --git a/lib/compress.js b/lib/compress.js index 63ae427a..8ab33cfe 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -6102,9 +6102,10 @@ Compressor.prototype.compress = function(node) { if (prop.static) { prop.value.walk(tw); } else { - push(tw); + push(); + segment.block = node; prop.value.walk(tw); - pop(tw); + pop(); } }); return true; diff --git a/test/compress/classes.js b/test/compress/classes.js index 11936b5f..aec8c015 100644 --- a/test/compress/classes.js +++ b/test/compress/classes.js @@ -2571,3 +2571,33 @@ issue_5389: { expect_stdout: "PASS PASS" node_version: ">=12" } + +issue_5436: { + options = { + merge_vars: true, + } + input: { + function f(a) { + class A { + p = a; + } + var b = "FAIL"; + A == b && b(); + return new A(); + } + console.log(f("PASS").p); + } + expect: { + function f(a) { + class A { + p = a; + } + var b = "FAIL"; + A == b && b(); + return new A(); + } + console.log(f("PASS").p); + } + expect_stdout: "PASS" + node_version: ">=12" +}