single_use = false;
}
if (single_use) fixed.parent_scope = self.scope;
- } else if (!fixed || !fixed.is_constant_expression()) {
+ } else if (!fixed || !fixed.is_constant_expression() || fixed.drop_side_effect_free(compressor)) {
single_use = false;
}
}
}
expect_stdout: "0"
}
+
+issue_4568: {
+ options = {
+ ie8: true,
+ reduce_vars: true,
+ unused: true,
+ }
+ input: {
+ console.log(typeof f, function(a) {
+ return a.length;
+ }([ function f() {} ]));
+ }
+ expect: {
+ console.log(typeof f, function(a) {
+ return a.length;
+ }([ function f() {} ]));
+ }
+ expect_stdout: "undefined 1"
+}
}
expect_stdout: "number undefined"
}
+
+issue_4568: {
+ options = {
+ booleans: true,
+ conditionals: true,
+ dead_code: true,
+ evaluate: true,
+ loops: true,
+ passes: 2,
+ reduce_vars: true,
+ sequences: true,
+ unused: true,
+ }
+ input: {
+ (function(a) {
+ a && console.log("FAIL");
+ if (1)
+ do {
+ if (!console.log("PASS")) break;
+ } while (1);
+ })(!(0 !== delete NaN));
+ }
+ expect: {
+ (function(a) {
+ for (a && console.log("FAIL"), 1; console.log("PASS"); ) 1;
+ })(!(0 !== delete NaN));
+ }
+ expect_stdout: "PASS"
+}