From: Richard van Velzen Date: Mon, 12 Jan 2015 16:09:34 +0000 (+0100) Subject: Replace the correct node when replacing in `void` sequences X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=42ecd42ac00881f7d540cb08969ce7e2721e30d5;p=UglifyJS.git Replace the correct node when replacing in `void` sequences Close #611. --- diff --git a/lib/compress.js b/lib/compress.js index 1f1d4b50..72e4d92d 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -1937,7 +1937,7 @@ merge(Compressor.prototype, { if (self.cdr instanceof AST_UnaryPrefix && self.cdr.operator == "void" && !self.cdr.expression.has_side_effects(compressor)) { - self.cdr.operator = self.car; + self.cdr.expression = self.car; return self.cdr; } if (self.cdr instanceof AST_Undefined) { diff --git a/test/compress/issue-611.js b/test/compress/issue-611.js new file mode 100644 index 00000000..6f2c65d2 --- /dev/null +++ b/test/compress/issue-611.js @@ -0,0 +1,21 @@ +issue_611: { + options = { + sequences: true, + side_effects: true + }; + input: { + define(function() { + function fn() {} + if (fn()) { + fn(); + return void 0; + } + }); + } + expect: { + define(function() { + function fn(){} + if (fn()) return void fn(); + }); + } +}