fix invalid AST_For.init (#1657)

Turns out the only place in `Compressor` which can generate invalid `AST_For.init` is within `drop_unused()`, so focus the fix-up efforts.

supercedes #1652
fixes #1656
This commit is contained in:
Alex Lam S.L
2017-03-25 03:18:36 +08:00
committed by GitHub
parent b1abe92e1a
commit a30092e20f
3 changed files with 62 additions and 1 deletions

View File

@@ -1961,6 +1961,9 @@ merge(Compressor.prototype, {
return in_list ? MAP.splice(body) : make_node(AST_BlockStatement, node, {
body: body
});
} else if (is_empty(node.init)) {
node.init = null;
return node;
}
}
if (node instanceof AST_Scope && node !== self)
@@ -2327,7 +2330,6 @@ merge(Compressor.prototype, {
};
OPT(AST_For, function(self, compressor){
if (is_empty(self.init)) self.init = null;
if (!compressor.option("loops")) return self;
if (self.condition) {
var cond = self.condition.evaluate(compressor);