fix corner case in collapse_vars (#3652)

fixes #3651
This commit is contained in:
Alex Lam S.L
2019-12-29 00:57:59 +00:00
committed by GitHub
parent d1a78920d9
commit 2f3930d1b9
2 changed files with 43 additions and 1 deletions

View File

@@ -3635,7 +3635,7 @@ merge(Compressor.prototype, {
return !this.is_declared(compressor);
});
def(AST_Try, function(compressor) {
return this.bcatch ? this.bcatch.may_throw(compressor) : any(this.body, compressor)
return (this.bcatch ? this.bcatch.may_throw(compressor) : any(this.body, compressor))
|| this.bfinally && this.bfinally.may_throw(compressor);
});
def(AST_Unary, function(compressor) {

View File

@@ -7422,3 +7422,45 @@ issue_3641: {
}
expect_stdout: "foo undefined"
}
issue_3651: {
options = {
collapse_vars: true,
toplevel: true,
}
input: {
var a, b = "PASS";
try {
a = function() {
try {
var c = 1;
while (0 < --c);
} catch (e) {} finally {
throw 42;
}
}();
b = "FAIL";
a.p;
} catch (e) {
console.log(b);
}
}
expect: {
var a, b = "PASS";
try {
a = function() {
try {
var c = 1;
while (0 < --c);
} catch (e) {} finally {
throw 42;
}
}();
b = "FAIL";
a.p;
} catch (e) {
console.log(b);
}
}
expect_stdout: "PASS"
}