From 8571a08a930474b68cb0e2daf3c7e666dcdcb15e Mon Sep 17 00:00:00 2001 From: Richard van Velzen Date: Tue, 19 Apr 2016 20:01:26 +0200 Subject: [PATCH] Do not attempt evaluating class expressions Broadly the same as function expressions - these actually are statements but we're limited by the inheritance tree. Fixes #1044 --- lib/compress.js | 3 +++ test/compress/issue-1044.js | 9 +++++++++ 2 files changed, 12 insertions(+) create mode 100644 test/compress/issue-1044.js diff --git a/lib/compress.js b/lib/compress.js index fdb06839..32d38cef 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -977,6 +977,9 @@ merge(Compressor.prototype, { def(AST_Arrow, function() { throw def; }); + def(AST_Class, function() { + throw def; + }); function ev(node, compressor) { if (!compressor) throw new Error("Compressor must be passed"); diff --git a/test/compress/issue-1044.js b/test/compress/issue-1044.js new file mode 100644 index 00000000..360075a4 --- /dev/null +++ b/test/compress/issue-1044.js @@ -0,0 +1,9 @@ +issue_1044: { + options = { evaluate: true, conditionals: true }; + input: { + const mixed = Base ? class extends Base {} : class {} + } + expect: { + const mixed = Base ? class extends Base {} : class {} + } +}