@@ -4841,6 +4841,11 @@ merge(Compressor.prototype, {
|
|||||||
for (var j = 0, defs = stat.definitions.length; j < defs; j++) {
|
for (var j = 0, defs = stat.definitions.length; j < defs; j++) {
|
||||||
var var_def = stat.definitions[j];
|
var var_def = stat.definitions[j];
|
||||||
var name = var_def.name;
|
var name = var_def.name;
|
||||||
|
var redef = name.definition().redefined();
|
||||||
|
if (redef) {
|
||||||
|
name = name.clone();
|
||||||
|
name.thedef = redef;
|
||||||
|
}
|
||||||
append_var(decls, expressions, name, var_def.value);
|
append_var(decls, expressions, name, var_def.value);
|
||||||
if (in_loop && all(fn.argnames, function(argname) {
|
if (in_loop && all(fn.argnames, function(argname) {
|
||||||
return argname.name != name.name;
|
return argname.name != name.name;
|
||||||
|
|||||||
@@ -2267,3 +2267,39 @@ issue_3054: {
|
|||||||
}
|
}
|
||||||
expect_stdout: "true true"
|
expect_stdout: "true true"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_3076: {
|
||||||
|
options = {
|
||||||
|
dead_code: true,
|
||||||
|
inline: true,
|
||||||
|
sequences: true,
|
||||||
|
unused: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
var c = "PASS";
|
||||||
|
(function(b) {
|
||||||
|
var n = 2;
|
||||||
|
while (--b + function() {
|
||||||
|
e && (c = "FAIL");
|
||||||
|
e = 5;
|
||||||
|
return 1;
|
||||||
|
try {
|
||||||
|
var a = 5;
|
||||||
|
} catch (e) {
|
||||||
|
var e;
|
||||||
|
}
|
||||||
|
}().toString() && --n > 0);
|
||||||
|
})(2);
|
||||||
|
console.log(c);
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
var c = "PASS";
|
||||||
|
(function(b) {
|
||||||
|
var n = 2;
|
||||||
|
while (--b + (e = void 0, e && (c = "FAIL"), e = 5, 1).toString() && --n > 0);
|
||||||
|
var e;
|
||||||
|
})(2),
|
||||||
|
console.log(c);
|
||||||
|
}
|
||||||
|
expect_stdout: "PASS"
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user