fix various corner cases (#3123)
This commit is contained in:
@@ -4056,6 +4056,36 @@ replace_all_var: {
|
||||
expect_stdout: "PASS"
|
||||
}
|
||||
|
||||
replace_all_var_scope: {
|
||||
rename = true;
|
||||
options = {
|
||||
collapse_vars: true,
|
||||
unused: true,
|
||||
}
|
||||
mangle = {}
|
||||
input: {
|
||||
var a = 100, b = 10;
|
||||
(function(r, a) {
|
||||
switch (~a) {
|
||||
case (b += a):
|
||||
case a++:
|
||||
}
|
||||
})(--b, a);
|
||||
console.log(a, b);
|
||||
}
|
||||
expect: {
|
||||
var a = 100, b = 10;
|
||||
(function(c, o) {
|
||||
switch (~a) {
|
||||
case (b += a):
|
||||
case o++:
|
||||
}
|
||||
})(--b, a);
|
||||
console.log(a, b);
|
||||
}
|
||||
expect_stdout: "100 109"
|
||||
}
|
||||
|
||||
cascade_statement: {
|
||||
options = {
|
||||
collapse_vars: true,
|
||||
|
||||
@@ -5998,3 +5998,35 @@ issue_3113_5: {
|
||||
"1",
|
||||
]
|
||||
}
|
||||
|
||||
conditional_nested: {
|
||||
options = {
|
||||
evaluate: true,
|
||||
reduce_vars: true,
|
||||
}
|
||||
input: {
|
||||
var a = 1, b = 0;
|
||||
(function f(c) {
|
||||
function g() {
|
||||
c && (c.a = 0);
|
||||
c && (c.a = 0);
|
||||
c && (c[b++] *= 0);
|
||||
}
|
||||
g(a-- && f(g(c = 42)));
|
||||
})();
|
||||
console.log(b);
|
||||
}
|
||||
expect: {
|
||||
var a = 1, b = 0;
|
||||
(function f(c) {
|
||||
function g() {
|
||||
c && (c.a = 0);
|
||||
c && (c.a = 0);
|
||||
c && (c[b++] *= 0);
|
||||
}
|
||||
g(a-- && f(g(c = 42)));
|
||||
})();
|
||||
console.log(b);
|
||||
}
|
||||
expect_stdout: "2"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user