diff --git a/lib/compress.js b/lib/compress.js index 73954ab8..a9a8ca93 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -10948,6 +10948,7 @@ Compressor.prototype.compress = function(node) { in_order = null; return; } + if (node instanceof AST_Class) return abort = true; if (node instanceof AST_Scope) return abort = true; if (avoid && node instanceof AST_Symbol && avoid[node.name]) return abort = true; if (node instanceof AST_SymbolRef) { diff --git a/test/compress/classes.js b/test/compress/classes.js index bb56f71a..feee4030 100644 --- a/test/compress/classes.js +++ b/test/compress/classes.js @@ -3927,3 +3927,50 @@ issue_5724: { expect_stdout: ReferenceError("a is not defined") node_version: ">=12" } + +issue_5735_1: { + options = { + inline: true, + } + input: { + console.log(typeof function(a) { + return class { + static P = { ...a }; + }; + }([ 42..p ] = [])); + } + expect: { + console.log(typeof function(a) { + return class { + static P = { ...a }; + }; + }([ 42..p ] = [])); + } + expect_stdout: "function" + node_version: ">=12" +} + +issue_5735_2: { + options = { + inline: true, + } + input: { + console.log(typeof function(a) { + return class { + p = a; + }; + }(console.log("PASS"))); + } + expect: { + console.log(typeof function(a) { + return class { + p = a; + }; + }(console.log("PASS"))); + } + expect_stdout: [ + "PASS", + "function", + ] + node_version: ">=12" +}