fix corner case in evaluate & reduce_vars (#4394)

fixes #4393
This commit is contained in:
Alex Lam S.L
2020-12-17 23:16:04 +00:00
committed by GitHub
parent 4fa54b075c
commit 2c637fea8a
2 changed files with 24 additions and 1 deletions

View File

@@ -426,6 +426,9 @@ merge(Compressor.prototype, {
}
});
};
if (scope.uses_arguments) scope.each_argname(function(node) {
node.definition().last_ref = false;
});
if (compressor.option("ie8")) scope.variables.each(function(def) {
var d = def.orig[0].definition();
if (d !== def) d.fixed = false;
@@ -479,7 +482,7 @@ merge(Compressor.prototype, {
function push_ref(def, ref) {
def.references.push(ref);
def.last_ref = ref;
if (def.last_ref !== false) def.last_ref = ref;
}
function safe_to_read(tw, def) {

View File

@@ -3074,3 +3074,23 @@ issue_4271: {
"PASS",
]
}
issue_4393: {
options = {
evaluate: true,
reduce_vars: true,
}
input: {
(function f(a) {
a = "PASS";
console.log(arguments[0]);
})("FAIL");
}
expect: {
(function f(a) {
a = "PASS";
console.log(arguments[0]);
})("FAIL");
}
expect_stdout: "PASS"
}