Rename clean_getters to pure_getters; add pure_funcs.

This commit is contained in:
Mihai Bazon
2013-10-04 13:17:25 +03:00
parent 253c7c2325
commit f2348dd98b
2 changed files with 41 additions and 5 deletions

View File

@@ -66,7 +66,8 @@ function Compressor(options, false_by_default) {
join_vars : !false_by_default,
cascade : !false_by_default,
side_effects : !false_by_default,
clean_getters : false,
pure_getters : false,
pure_funcs : null,
negate_iife : !false_by_default,
screw_ie8 : false,
@@ -809,6 +810,12 @@ merge(Compressor.prototype, {
def(AST_Constant, function(compressor){ return false });
def(AST_This, function(compressor){ return false });
def(AST_Call, function(compressor){
var pure = compressor.option("pure_funcs");
if (!pure) return true;
return pure.indexOf(this.expression.print_to_string()) < 0;
});
def(AST_Block, function(compressor){
for (var i = this.body.length; --i >= 0;) {
if (this.body[i].has_side_effects(compressor))
@@ -855,16 +862,16 @@ merge(Compressor.prototype, {
return false;
});
def(AST_Dot, function(compressor){
if (!compressor.option("clean_getters")) return true;
if (!compressor.option("pure_getters")) return true;
return this.expression.has_side_effects(compressor);
});
def(AST_Sub, function(compressor){
if (!compressor.option("clean_getters")) return true;
if (!compressor.option("pure_getters")) return true;
return this.expression.has_side_effects(compressor)
|| this.property.has_side_effects(compressor);
});
def(AST_PropAccess, function(compressor){
return !compressor.option("clean_getters");
return !compressor.option("pure_getters");
});
def(AST_Seq, function(compressor){
return this.car.has_side_effects(compressor)