From: Alex Lam S.L Date: Sat, 2 Dec 2017 07:46:05 +0000 (+0800) Subject: fix `dead_code` on `for` (#2552) X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=77332a03153285f5e521c99c3b5d796bf5698ef7;p=UglifyJS.git fix `dead_code` on `for` (#2552) --- diff --git a/lib/compress.js b/lib/compress.js index 7d87c4a6..914fdd06 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -3128,9 +3128,6 @@ merge(Compressor.prototype, { if (!cond) { var body = []; extract_declarations_from_unreachable_code(compressor, self.body, body); - body.push(make_node(AST_SimpleStatement, self.condition, { - body: self.condition - })); if (self.init instanceof AST_Statement) { body.push(self.init); } else if (self.init) { @@ -3138,6 +3135,9 @@ merge(Compressor.prototype, { body: self.init })); } + body.push(make_node(AST_SimpleStatement, self.condition, { + body: self.condition + })); return make_node(AST_BlockStatement, self, { body: body }).optimize(compressor); } } diff --git a/test/compress/loops.js b/test/compress/loops.js index 44e92c58..3538c221 100644 --- a/test/compress/loops.js +++ b/test/compress/loops.js @@ -468,3 +468,27 @@ init_side_effects: { } expect_stdout: true } + +dead_code_condition: { + options = { + dead_code: true, + evaluate: true, + loops: true, + sequences: true, + } + input: { + for (var a = 0, b = 5; (a += 1, 3) - 3 && b > 0; b--) { + var c = function() { + b--; + }(a++); + } + console.log(a); + } + expect: { + var c; + var a = 0, b = 5; + a += 1, 0, + console.log(a); + } + expect_stdout: "1" +}