fix AST_For.init patch-up in drop_unused() (#1839)

fixes #1838
This commit is contained in:
Alex Lam S.L
2017-04-23 01:51:56 +08:00
committed by GitHub
parent ca32a09032
commit 45ce369480
2 changed files with 25 additions and 0 deletions

View File

@@ -2066,6 +2066,7 @@ merge(Compressor.prototype, {
// certain combination of unused name + side effect leads to:
// https://github.com/mishoo/UglifyJS2/issues/44
// https://github.com/mishoo/UglifyJS2/issues/1830
// https://github.com/mishoo/UglifyJS2/issues/1838
// that's an invalid AST.
// We fix it at this stage by moving the `var` outside the `for`.
if (node instanceof AST_For) {
@@ -2075,6 +2076,8 @@ merge(Compressor.prototype, {
node.init = block.body.pop();
block.body.push(node);
return in_list ? MAP.splice(block.body) : block;
} else if (node.init instanceof AST_SimpleStatement) {
node.init = node.init.body;
} else if (is_empty(node.init)) {
node.init = null;
}