@@ -1307,6 +1307,10 @@ merge(Compressor.prototype, {
|
||||
return found;
|
||||
});
|
||||
|
||||
function in_async_generator(scope) {
|
||||
return scope instanceof AST_AsyncGeneratorDefun || scope instanceof AST_AsyncGeneratorFunction;
|
||||
}
|
||||
|
||||
function find_scope(compressor) {
|
||||
var level = 0, node;
|
||||
while (node = compressor.parent(level++)) {
|
||||
@@ -2987,7 +2991,9 @@ merge(Compressor.prototype, {
|
||||
var stat = statements[i];
|
||||
if (prev) {
|
||||
if (stat instanceof AST_Exit) {
|
||||
stat.value = cons_seq(stat.value || make_node(AST_Undefined, stat)).transform(compressor);
|
||||
if (stat.value || !in_async_generator(scope)) {
|
||||
stat.value = cons_seq(stat.value || make_node(AST_Undefined, stat)).transform(compressor);
|
||||
}
|
||||
} else if (stat instanceof AST_For) {
|
||||
if (!(stat.init instanceof AST_Definitions)) {
|
||||
var abort = false;
|
||||
@@ -11045,7 +11051,10 @@ merge(Compressor.prototype, {
|
||||
});
|
||||
|
||||
OPT(AST_Return, function(self, compressor) {
|
||||
if (self.value && is_undefined(self.value, compressor)) {
|
||||
if (compressor.option("side_effects")
|
||||
&& self.value
|
||||
&& is_undefined(self.value, compressor)
|
||||
&& !in_async_generator(compressor.find_parent(AST_Scope))) {
|
||||
self.value = null;
|
||||
}
|
||||
return self;
|
||||
|
||||
Reference in New Issue
Block a user