minor fix for dropping unused definitions.
function f(x, y) {
var g = function() { return h() };
var h = function() { return g() };
return x + y;
}
now compresses to `function f(x, y) { return x + y }`
This commit is contained in:
@@ -741,9 +741,10 @@ merge(Compressor.prototype, {
|
|||||||
});
|
});
|
||||||
|
|
||||||
def(AST_SimpleStatement, function(){
|
def(AST_SimpleStatement, function(){
|
||||||
if (this.body instanceof AST_Function) return false;
|
|
||||||
return this.body.has_side_effects();
|
return this.body.has_side_effects();
|
||||||
});
|
});
|
||||||
|
def(AST_Defun, function(){ return true });
|
||||||
|
def(AST_Function, function(){ return false });
|
||||||
def(AST_Binary, function(){
|
def(AST_Binary, function(){
|
||||||
return this.left.has_side_effects()
|
return this.left.has_side_effects()
|
||||||
|| this.right.has_side_effects();
|
|| this.right.has_side_effects();
|
||||||
@@ -1354,7 +1355,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.args.length == 0
|
&& self.args.length == 0
|
||||||
&& !self.expression.has_side_effects()) {
|
&& !AST_Block.prototype.has_side_effects.call(self.expression)) {
|
||||||
return make_node(AST_Undefined, self).transform(compressor);
|
return make_node(AST_Undefined, self).transform(compressor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user