if (hit_index <= end) return handle_custom_scan_order(node, tt);
hit = true;
if (node instanceof AST_VarDef) {
- node.value = null;
declare_only[node.name.name] = (declare_only[node.name.name] || 0) + 1;
if (value_def) value_def.replaced++;
+ node = node.clone();
+ node.value = null;
return node;
}
return in_list ? List.skip : null;
}
expect_stdout: "PASS"
}
+
+issue_4732_1: {
+ options = {
+ booleans: true,
+ collapse_vars: true,
+ evaluate: true,
+ reduce_vars: true,
+ unused: true,
+ }
+ input: {
+ var a = 0;
+ (function(b) {
+ var b = a++;
+ var c = b ? b && console.log("PASS") : 0;
+ })(a++);
+ }
+ expect: {
+ var a = 0;
+ (function(b) {
+ (b = a++) && (b && console.log("PASS"));
+ })(a++);
+ }
+ expect_stdout: "PASS"
+}
+
+issue_4732_2: {
+ options = {
+ collapse_vars: true,
+ conditionals: true,
+ evaluate: true,
+ reduce_vars: true,
+ unused: true,
+ }
+ input: {
+ var a = 0;
+ (function(b) {
+ var b = a++;
+ var c = b ? b && console.log("PASS") : 0;
+ })(a++);
+ }
+ expect: {
+ var a = 0;
+ (function(b) {
+ (b = a++) && b && console.log("PASS");
+ })(a++);
+ }
+ expect_stdout: "PASS"
+}