@@ -1818,10 +1818,7 @@ merge(Compressor.prototype, {
|
||||
return node;
|
||||
}
|
||||
if (is_lhs(node, parent)) {
|
||||
if (value_def && !hit_rhs) {
|
||||
assign_used = true;
|
||||
if (node.definition().last_ref === node) replaced++;
|
||||
}
|
||||
if (value_def && !hit_rhs) assign_used = true;
|
||||
return node;
|
||||
} else if (value_def) {
|
||||
if (stop_if_hit && assign_pos == 0) assign_pos = remaining - replaced;
|
||||
@@ -2024,7 +2021,7 @@ merge(Compressor.prototype, {
|
||||
statements[i].transform(scanner);
|
||||
}
|
||||
if (value_def) {
|
||||
if (!replaced || remaining > replaced) {
|
||||
if (!replaced || remaining > replaced + assign_used) {
|
||||
candidates.push(hit_stack);
|
||||
force_single = true;
|
||||
continue;
|
||||
|
||||
@@ -4658,7 +4658,6 @@ replace_all_var_scope: {
|
||||
rename = true
|
||||
options = {
|
||||
collapse_vars: true,
|
||||
reduce_vars: true,
|
||||
unused: true,
|
||||
}
|
||||
mangle = {}
|
||||
@@ -4677,7 +4676,7 @@ replace_all_var_scope: {
|
||||
(function(c, o) {
|
||||
switch (~a) {
|
||||
case (b += a):
|
||||
case +o:
|
||||
case o++:
|
||||
}
|
||||
})(--b, a);
|
||||
console.log(a, b);
|
||||
|
||||
@@ -6228,3 +6228,33 @@ recursive_collapse: {
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
}
|
||||
|
||||
issue_5025: {
|
||||
options = {
|
||||
collapse_vars: true,
|
||||
inline: true,
|
||||
reduce_vars: true,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
function f(a) {
|
||||
function g() {
|
||||
b = 42;
|
||||
}
|
||||
g(b = a);
|
||||
var b = this;
|
||||
console.log(typeof b);
|
||||
}
|
||||
f();
|
||||
}
|
||||
expect: {
|
||||
function f(a) {
|
||||
b = a,
|
||||
void (b = 42);
|
||||
var b = this;
|
||||
console.log(typeof b);
|
||||
}
|
||||
f();
|
||||
}
|
||||
expect_stdout: "object"
|
||||
}
|
||||
|
||||
@@ -1151,7 +1151,6 @@ replace_all_var_scope: {
|
||||
options = {
|
||||
collapse_vars: true,
|
||||
keep_fargs: false,
|
||||
reduce_vars: true,
|
||||
unused: true,
|
||||
}
|
||||
mangle = {}
|
||||
@@ -1170,7 +1169,7 @@ replace_all_var_scope: {
|
||||
(function(c) {
|
||||
switch (~a) {
|
||||
case (b += a):
|
||||
case +c:
|
||||
case c++:
|
||||
}
|
||||
})((--b, a));
|
||||
console.log(a, b);
|
||||
|
||||
Reference in New Issue
Block a user