});
OPT(AST_LabeledStatement, function(self, compressor) {
- if (self.body instanceof AST_Break
+ if (compressor.option("dead_code")
+ && self.body instanceof AST_Break
&& compressor.loopcontrol_target(self.body) === self.body) {
return make_node(AST_EmptyStatement, self);
}
- return self.label.references.length == 0 ? self.body : self;
+ return compressor.option("unused") && self.label.references.length == 0 ? self.body : self;
});
OPT(AST_Block, function(self, compressor) {
dead_code: true,
loops: true,
passes: 2,
+ unused: true,
}
input: {
L1: while (x()) {
options = {
dead_code: true,
loops: true,
+ unused: true,
}
input: {
L1: for (var x = 0; x < 3; x++) {
dead_code: true,
loops: true,
passes: 2,
+ unused: true,
}
input: {
L1: for (var x = 0; x < 3; x++) {
dead_code: true,
loops: true,
passes: 2,
+ unused: true,
}
input: {
L1: for (var x = 0; x < 3; x++) {
loops: true,
reduce_vars: true,
toplevel: true,
+ unused: true,
}
input: {
var c = 0;
loops: true,
reduce_vars: true,
toplevel: true,
+ unused: true,
}
input: {
L: for (var a = 1; a--; console.log(b)) {