Side effects of `&&` and `||` have not mattered until #1814, which takes assignment expressions into account.
});
}
}
+ if (node instanceof AST_Binary
+ && (node.operator == "&&" || node.operator == "||")) {
+ node.left.walk(tw);
+ push();
+ node.right.walk(tw);
+ pop();
+ return true;
+ }
if (node instanceof AST_If) {
node.condition.walk(tw);
push();
}
expect_stdout: "1 undefined"
}
+
+boolean_binary_assign: {
+ options = {
+ evaluate: true,
+ reduce_vars: true,
+ unused: true,
+ }
+ input: {
+ !function() {
+ var a;
+ void 0 && (a = 1);
+ console.log(a);
+ }();
+ }
+ expect: {
+ !function() {
+ var a;
+ void 0;
+ console.log(a);
+ }();
+ }
+ expect_stdout: "undefined"
+}