fix corner case in dead_code (#4194)

fixes #4193
This commit is contained in:
Alex Lam S.L
2020-10-12 04:09:26 +01:00
committed by GitHub
parent b1b8898e7c
commit 74ff6ce261
2 changed files with 28 additions and 3 deletions

View File

@@ -6571,14 +6571,17 @@ merge(Compressor.prototype, {
}); });
}); });
} }
[].unshift.apply(body, self.body); body.unshift(make_node(AST_BlockStatement, self, self).optimize(compressor));
if (self.bfinally) [].push.apply(body, self.bfinally.body); if (self.bfinally) {
body.push(make_node(AST_BlockStatement, self.bfinally, self.bfinally).optimize(compressor));
}
return make_node(AST_BlockStatement, self, { return make_node(AST_BlockStatement, self, {
body: body body: body
}).optimize(compressor); }).optimize(compressor);
} }
if (self.bfinally && has_declarations_only(self.bfinally)) { if (self.bfinally && has_declarations_only(self.bfinally)) {
var body = self.body.concat(self.bfinally.body); var body = make_node(AST_BlockStatement, self.bfinally, self.bfinally).optimize(compressor);
body = self.body.concat(body);
if (!self.bcatch) return make_node(AST_BlockStatement, self, { if (!self.bcatch) return make_node(AST_BlockStatement, self, {
body: body body: body
}).optimize(compressor); }).optimize(compressor);

View File

@@ -725,3 +725,25 @@ issue_4191_2: {
} }
expect_stdout: "function undefined" expect_stdout: "function undefined"
} }
issue_4193: {
options = {
dead_code: true,
}
input: {
try {} catch (e) {
var a;
} finally {
const a = 0;
}
console.log(a);
}
expect: {
var a;
{
const a = 0;
}
console.log(a);
}
expect_stdout: true
}