Don't remove empty generators passed as parameter
This commit is contained in:
@@ -2282,6 +2282,7 @@ merge(Compressor.prototype, {
|
|||||||
}
|
}
|
||||||
if (compressor.option("side_effects")) {
|
if (compressor.option("side_effects")) {
|
||||||
if (self.expression instanceof AST_Function
|
if (self.expression instanceof AST_Function
|
||||||
|
&& !self.expression.is_generator
|
||||||
&& self.args.length == 0
|
&& self.args.length == 0
|
||||||
&& !AST_Block.prototype.has_side_effects.call(self.expression, compressor)) {
|
&& !AST_Block.prototype.has_side_effects.call(self.expression, compressor)) {
|
||||||
return make_node(AST_Undefined, self).transform(compressor);
|
return make_node(AST_Undefined, self).transform(compressor);
|
||||||
|
|||||||
@@ -139,4 +139,30 @@ yield_as_identifier_outside_strict_mode: {
|
|||||||
var yield = "foo";
|
var yield = "foo";
|
||||||
class yield {}
|
class yield {}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
empty_generator_as_parameter_with_side_effects: {
|
||||||
|
options = {
|
||||||
|
side_effects: true
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
var GeneratorPrototype = Object.getPrototypeOf(
|
||||||
|
Object.getPrototypeOf(function*() {}())
|
||||||
|
);
|
||||||
|
evaluate(GeneratorPrototype);
|
||||||
|
}
|
||||||
|
expect_exact: "var GeneratorPrototype=Object.getPrototypeOf(Object.getPrototypeOf(function*(){}()));evaluate(GeneratorPrototype);"
|
||||||
|
}
|
||||||
|
|
||||||
|
empty_generator_as_parameter_without_side_effects: {
|
||||||
|
options = {
|
||||||
|
side_effects: false
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
var GeneratorPrototype = Object.getPrototypeOf(
|
||||||
|
Object.getPrototypeOf(function*() {}())
|
||||||
|
);
|
||||||
|
evaluate(GeneratorPrototype);
|
||||||
|
}
|
||||||
|
expect_exact: "var GeneratorPrototype=Object.getPrototypeOf(Object.getPrototypeOf(function*(){}()));evaluate(GeneratorPrototype);"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user