@@ -4485,9 +4485,12 @@ merge(Compressor.prototype, {
|
|||||||
var head = first.pop();
|
var head = first.pop();
|
||||||
var def = head.definition;
|
var def = head.definition;
|
||||||
if (!(def.id in prev)) continue;
|
if (!(def.id in prev)) continue;
|
||||||
var head_refs = references[def.id];
|
if (!references[def.id]) continue;
|
||||||
if (!head_refs) continue;
|
var head_refs = {
|
||||||
|
start: references[def.id].start,
|
||||||
|
};
|
||||||
while (def.id in merged) def = merged[def.id];
|
while (def.id in merged) def = merged[def.id];
|
||||||
|
head_refs.end = references[def.id].end;
|
||||||
var skipped = [];
|
var skipped = [];
|
||||||
do {
|
do {
|
||||||
var tail = last.pop();
|
var tail = last.pop();
|
||||||
|
|||||||
@@ -2701,3 +2701,40 @@ issue_4130: {
|
|||||||
"1",
|
"1",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_4135: {
|
||||||
|
options = {
|
||||||
|
evaluate: true,
|
||||||
|
inline: true,
|
||||||
|
merge_vars: true,
|
||||||
|
reduce_vars: true,
|
||||||
|
side_effects: true,
|
||||||
|
toplevel: true,
|
||||||
|
unused: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
var a = 0, b = 0;
|
||||||
|
--b;
|
||||||
|
a++;
|
||||||
|
if (!a)
|
||||||
|
var c = function() {
|
||||||
|
var d = 0;
|
||||||
|
function f() {
|
||||||
|
d && d.p;
|
||||||
|
}
|
||||||
|
f();
|
||||||
|
this;
|
||||||
|
}(a++);
|
||||||
|
console.log(a, b, c);
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
var a = 0;
|
||||||
|
0;
|
||||||
|
a++;
|
||||||
|
if (!a)
|
||||||
|
c = (a++, c = 0, void (c && c.p));
|
||||||
|
var c;
|
||||||
|
console.log(a, -1, c);
|
||||||
|
}
|
||||||
|
expect_stdout: "1 -1 undefined"
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user