Add drop_console option to the compressor

This commit is contained in:
Mihai Bazon
2013-12-10 19:44:41 +02:00
parent df8c5623af
commit dc5f70eab5
2 changed files with 12 additions and 0 deletions

View File

@@ -249,6 +249,9 @@ to set `true`; it's effectively a shortcut for `foo=true`).
statement would get discarded. The current implementation adds some statement would get discarded. The current implementation adds some
overhead (compression will be slower). overhead (compression will be slower).
- `drop_console` -- default `false`. Pass `true` to discard calls to
`console.*` functions.
### The `unsafe` option ### The `unsafe` option
It enables some transformations that *might* break code logic in certain It enables some transformations that *might* break code logic in certain

View File

@@ -70,6 +70,7 @@ function Compressor(options, false_by_default) {
pure_funcs : null, pure_funcs : null,
negate_iife : !false_by_default, negate_iife : !false_by_default,
screw_ie8 : false, screw_ie8 : false,
drop_console : false,
warnings : true, warnings : true,
global_defs : {} global_defs : {}
@@ -1773,6 +1774,14 @@ merge(Compressor.prototype, {
return make_node(AST_Undefined, self).transform(compressor); return make_node(AST_Undefined, self).transform(compressor);
} }
} }
if (compressor.option("drop_console")) {
if (self.expression instanceof AST_PropAccess &&
self.expression.expression instanceof AST_SymbolRef &&
self.expression.expression.name == "console" &&
self.expression.expression.undeclared()) {
return make_node(AST_Undefined, self).transform(compressor);
}
}
return self.evaluate(compressor)[0]; return self.evaluate(compressor)[0];
}); });