fix corner case in hoist_vars (#4900)

fixes #4898
This commit is contained in:
Alex Lam S.L
2021-05-02 21:05:52 +01:00
committed by GitHub
parent 4114431eec
commit 203f4b7ad9
2 changed files with 36 additions and 5 deletions

View File

@@ -8438,12 +8438,20 @@ merge(Compressor.prototype, {
if (value) {
if (value instanceof AST_Sequence) value = value.clone();
var name = make_node(AST_SymbolRef, defn.name, defn.name);
name.fixed = value;
a.push(make_node(AST_Assign, defn, {
var assign = make_node(AST_Assign, defn, {
operator: "=",
left: name,
right: value,
}));
});
a.push(assign);
name.fixed = function() {
return assign.right;
};
name.fixed.assigns = [ assign ];
def.references.forEach(function(ref) {
var assigns = ref.fixed && ref.fixed.assigns;
if (assigns && assigns[0] === defn) assigns[0] = assign;
});
def.references.push(name);
}
def.eliminated++;