fix corner case in functions (#4789)

fixes #4788
This commit is contained in:
Alex Lam S.L
2021-03-16 12:58:51 +00:00
committed by GitHub
parent b98ce6c84f
commit 9a9543013c
4 changed files with 50 additions and 5 deletions

View File

@@ -6279,11 +6279,15 @@ merge(Compressor.prototype, {
function can_rename(fn, name) {
if (!fn.name) return !fn.variables.get(name);
old_def = fn.name.definition();
if (old_def.assignments > 0) return false;
if (old_def.name == name) return true;
if (old_def.orig.length > 1) {
old_def = null;
} else {
if (old_def.assignments > 0) return false;
if (old_def.name == name) return true;
}
if (name == "await" && is_async(fn)) return false;
if (name == "yield" && is_generator(fn)) return false;
return all(old_def.references, function(ref) {
return !old_def || all(old_def.references, function(ref) {
return ref.scope.find_variable(name) === sym;
});
}