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(){
|
||||
if (this.body instanceof AST_Function) return false;
|
||||
return this.body.has_side_effects();
|
||||
});
|
||||
def(AST_Defun, function(){ return true });
|
||||
def(AST_Function, function(){ return false });
|
||||
def(AST_Binary, function(){
|
||||
return this.left.has_side_effects()
|
||||
|| this.right.has_side_effects();
|
||||
@@ -1354,7 +1355,7 @@ merge(Compressor.prototype, {
|
||||
if (compressor.option("side_effects")) {
|
||||
if (self.expression instanceof AST_Function
|
||||
&& 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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user