}
}
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);
+ if (self.expression instanceof AST_PropAccess) {
+ var name = self.expression.expression;
+ while (name.expression) {
+ name = name.expression;
+ }
+ if (name instanceof AST_SymbolRef
+ && name.name == "console"
+ && name.undeclared()) {
+ return make_node(AST_Undefined, self).transform(compressor);
+ }
}
}
return self.evaluate(compressor)[0];
--- /dev/null
+drop_console_1: {\r
+ options = {};\r
+ input: {\r
+ console.log('foo');\r
+ console.log.apply(console, arguments);\r
+ }\r
+ expect: {\r
+ console.log('foo');\r
+ console.log.apply(console, arguments);\r
+ }\r
+}\r
+\r
+drop_console_1: {\r
+ options = { drop_console: true };\r
+ input: {\r
+ console.log('foo');\r
+ console.log.apply(console, arguments);\r
+ }\r
+ expect: {\r
+ // with regular compression these will be stripped out as well\r
+ void 0;\r
+ void 0;\r
+ }\r
+}\r