@@ -3856,7 +3856,7 @@ merge(Compressor.prototype, {
|
|||||||
if (!(rhs instanceof AST_Binary && lazy_op[rhs.operator])) return rhs;
|
if (!(rhs instanceof AST_Binary && lazy_op[rhs.operator])) return rhs;
|
||||||
var sym = assign.left;
|
var sym = assign.left;
|
||||||
if (!(sym instanceof AST_SymbolRef) || sym.name != rhs.left.name) return rhs;
|
if (!(sym instanceof AST_SymbolRef) || sym.name != rhs.left.name) return rhs;
|
||||||
return rhs.right;
|
return rhs.right.has_side_effects(compressor) ? rhs : rhs.right;
|
||||||
}
|
}
|
||||||
|
|
||||||
function scan_ref_scoped(node, descend) {
|
function scan_ref_scoped(node, descend) {
|
||||||
|
|||||||
@@ -327,3 +327,49 @@ issue_3427: {
|
|||||||
}
|
}
|
||||||
expect: {}
|
expect: {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_3429_1: {
|
||||||
|
options = {
|
||||||
|
assignments: true,
|
||||||
|
side_effects: true,
|
||||||
|
unused: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
var a = "PASS";
|
||||||
|
(function(b) {
|
||||||
|
b && (b = a = "FAIL");
|
||||||
|
})();
|
||||||
|
console.log(a);
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
var a = "PASS";
|
||||||
|
(function(b) {
|
||||||
|
b = b && (a = "FAIL");
|
||||||
|
})();
|
||||||
|
console.log(a);
|
||||||
|
}
|
||||||
|
expect_stdout: "PASS"
|
||||||
|
}
|
||||||
|
|
||||||
|
issue_3429_2: {
|
||||||
|
options = {
|
||||||
|
assignments: true,
|
||||||
|
side_effects: true,
|
||||||
|
unused: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
var a;
|
||||||
|
(function(b) {
|
||||||
|
b || (b = a = "FAIL");
|
||||||
|
})(42);
|
||||||
|
console.log(a);
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
var a;
|
||||||
|
(function(b) {
|
||||||
|
b = b || (a = "FAIL");
|
||||||
|
})(42);
|
||||||
|
console.log(a);
|
||||||
|
}
|
||||||
|
expect_stdout: "undefined"
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user