fix assignment logic in reduce_vars (#2872)

fixes #2869
This commit is contained in:
Alex Lam S.L
2018-02-03 01:33:09 +08:00
committed by GitHub
parent b16380d669
commit e773f03927
2 changed files with 32 additions and 6 deletions

View File

@@ -710,19 +710,19 @@ merge(Compressor.prototype, {
def(AST_VarDef, function(tw, descend) {
var node = this;
var d = node.name.definition();
if (safe_to_assign(tw, d, node.value)) {
if (node.value) {
if (node.value) {
if (safe_to_assign(tw, d, node.value)) {
d.fixed = function() {
return node.value;
};
tw.loop_ids[d.id] = tw.in_loop;
mark(tw, d, false);
descend();
mark(tw, d, true);
return true;
} else {
d.fixed = false;
}
mark(tw, d, true);
return true;
} else if (node.value) {
d.fixed = false;
}
});
def(AST_While, function(tw) {