fix corner case in hoist_vars (#4860)

fixes #4859
This commit is contained in:
Alex Lam S.L
2021-04-21 22:47:21 +01:00
committed by GitHub
parent c58e174647
commit 3c161a6662
3 changed files with 37 additions and 10 deletions

View File

@@ -6942,9 +6942,7 @@ merge(Compressor.prototype, {
if (defs.length > 0) {
// try to merge in assignments
insert_vars(self.body);
defs = make_node(AST_Var, self, {
definitions: defs
});
defs = make_node(AST_Var, self, { definitions: defs });
hoisted.push(defs);
}
}
@@ -8367,12 +8365,14 @@ merge(Compressor.prototype, {
AST_Definitions.DEFMETHOD("to_assignments", function() {
var assignments = this.definitions.reduce(function(a, defn) {
var def = defn.name.definition();
if (defn.value) {
var value = defn.value;
if (value) {
if (value instanceof AST_Sequence) value = value.clone();
var name = make_node(AST_SymbolRef, defn.name, defn.name);
a.push(make_node(AST_Assign, defn, {
operator : "=",
left : name,
right : defn.value
operator: "=",
left: name,
right: value,
}));
def.references.push(name);
}