diff options
-rw-r--r-- | lib/compress.js | 4 | ||||
-rw-r--r-- | test/compress/negate-iife.js | 32 |
2 files changed, 33 insertions, 3 deletions
diff --git a/lib/compress.js b/lib/compress.js index 1d6a943b..6436796f 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -811,9 +811,7 @@ merge(Compressor.prototype, { if (stat instanceof AST_SimpleStatement) { stat.body = (function transform(thing) { return thing.transform(new TreeTransformer(function(node){ - if (node instanceof AST_New - && node.expression instanceof AST_Call - && node.expression.expression instanceof AST_Function) { + if (node instanceof AST_New) { return node; } if (node instanceof AST_Call && node.expression instanceof AST_Function) { diff --git a/test/compress/negate-iife.js b/test/compress/negate-iife.js index 20b3f56e..b73ff547 100644 --- a/test/compress/negate-iife.js +++ b/test/compress/negate-iife.js @@ -75,6 +75,38 @@ negate_iife_4: { } } +negate_iife_nested: { + options = { + negate_iife: true, + sequences: true, + conditionals: true, + }; + input: { + function Foo(f) { + this.f = f; + } + new Foo(function() { + (function(x) { + (function(y) { + console.log(y); + })(x); + })(7); + }).f(); + } + expect: { + function Foo(f) { + this.f = f; + } + new Foo(function() { + !function(x) { + !function(y) { + console.log(y); + }(x); + }(7); + }).f(); + } +} + negate_iife_issue_1073: { options = { negate_iife: true, |