@@ -7596,11 +7596,22 @@ merge(Compressor.prototype, {
|
|||||||
node.body = body;
|
node.body = body;
|
||||||
}
|
}
|
||||||
} else if (body instanceof AST_Sequence) {
|
} else if (body instanceof AST_Sequence) {
|
||||||
var tail = body.tail_node();
|
var exprs = body.expressions;
|
||||||
if (tail instanceof AST_Await && is_primitive(compressor, tail.expression)) {
|
for (var i = exprs.length; --i >= 0;) {
|
||||||
tail = tail.expression.drop_side_effect_free(compressor);
|
var tail = exprs[i];
|
||||||
body.expressions.pop();
|
if (!(tail instanceof AST_Await)) break;
|
||||||
if (tail) body.expressions.push(tail);
|
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;
|
return node;
|
||||||
|
|||||||
@@ -1758,3 +1758,25 @@ issue_4987: {
|
|||||||
]
|
]
|
||||||
node_version: ">=8"
|
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