@@ -7596,11 +7596,22 @@ merge(Compressor.prototype, {
|
||||
node.body = body;
|
||||
}
|
||||
} else if (body instanceof AST_Sequence) {
|
||||
var tail = body.tail_node();
|
||||
if (tail instanceof AST_Await && is_primitive(compressor, tail.expression)) {
|
||||
tail = tail.expression.drop_side_effect_free(compressor);
|
||||
body.expressions.pop();
|
||||
if (tail) body.expressions.push(tail);
|
||||
var exprs = body.expressions;
|
||||
for (var i = exprs.length; --i >= 0;) {
|
||||
var tail = exprs[i];
|
||||
if (!(tail instanceof AST_Await)) break;
|
||||
if (!is_primitive(compressor, tail.expression)) break;
|
||||
if (exprs[i] = tail.expression.drop_side_effect_free(compressor)) break;
|
||||
}
|
||||
switch (i) {
|
||||
case -1:
|
||||
return make_node(AST_EmptyStatement, node);
|
||||
case 0:
|
||||
node.body = exprs[0];
|
||||
break;
|
||||
default:
|
||||
exprs.length = i + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return node;
|
||||
|
||||
@@ -1758,3 +1758,25 @@ issue_4987: {
|
||||
]
|
||||
node_version: ">=8"
|
||||
}
|
||||
|
||||
issue_5001: {
|
||||
options = {
|
||||
awaits: true,
|
||||
inline: true,
|
||||
side_effects: true,
|
||||
}
|
||||
input: {
|
||||
var a = 0;
|
||||
(async function() {
|
||||
a++ | await 42;
|
||||
})();
|
||||
console.log(a ? "PASS" : "FAIL");
|
||||
}
|
||||
expect: {
|
||||
var a = 0;
|
||||
void a++;
|
||||
console.log(a ? "PASS" : "FAIL");
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
node_version: ">=8"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user