From d854523783b4a73d1dd734605f1c41fcae86e932 Mon Sep 17 00:00:00 2001 From: kzc Date: Tue, 16 Aug 2016 21:54:54 -0400 Subject: [PATCH] Fix negate_iife regression #1254 --- lib/output.js | 2 ++ test/compress/negate-iife.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/lib/output.js b/lib/output.js index 801f7516..f1e0c2f1 100644 --- a/lib/output.js +++ b/lib/output.js @@ -531,6 +531,8 @@ function OutputStream(options) { }); PARENS([ AST_Unary, AST_Undefined ], function(output){ + if (this.expression instanceof AST_Call) + return false; var p = output.parent(); return p instanceof AST_PropAccess && p.expression === this || p instanceof AST_Call && p.expression === this; diff --git a/test/compress/negate-iife.js b/test/compress/negate-iife.js index b73ff547..aa95d958 100644 --- a/test/compress/negate-iife.js +++ b/test/compress/negate-iife.js @@ -130,3 +130,31 @@ negate_iife_issue_1073: { }(7))(); } } + +issue_1254_negate_iife_false: { + options = { + negate_iife: false, + } + input: { + (function() { + return function() { + console.log('test') + }; + })()(); + } + expect_exact: '(function(){return function(){console.log("test")}})()();' +} + +issue_1254_negate_iife_true: { + options = { + negate_iife: true, + } + input: { + (function() { + return function() { + console.log('test') + }; + })()(); + } + expect_exact: '!function(){return function(){console.log("test")}}()();' +} -- 2.34.1