@@ -4468,20 +4468,23 @@ merge(Compressor.prototype, {
|
|||||||
skipped.unshift(tail);
|
skipped.unshift(tail);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
var orig = [], refs = [];
|
||||||
if (id in declarations) declarations[id].forEach(function(sym) {
|
if (id in declarations) declarations[id].forEach(function(sym) {
|
||||||
sym.thedef = def;
|
sym.thedef = def;
|
||||||
sym.name = def.name;
|
sym.name = def.name;
|
||||||
def.orig.push(sym);
|
orig.push(sym);
|
||||||
});
|
});
|
||||||
references[id].forEach(function(sym) {
|
references[id].forEach(function(sym) {
|
||||||
sym.thedef = def;
|
sym.thedef = def;
|
||||||
sym.name = def.name;
|
sym.name = def.name;
|
||||||
if (sym instanceof AST_SymbolRef) {
|
if (sym instanceof AST_SymbolRef) {
|
||||||
def.references.push(sym);
|
refs.push(sym);
|
||||||
} else {
|
} else {
|
||||||
def.orig.push(sym);
|
orig.push(sym);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
def.orig = orig.concat(def.orig);
|
||||||
|
def.references = refs.concat(def.references);
|
||||||
def.fixed = tail.definition.fixed && def.fixed;
|
def.fixed = tail.definition.fixed && def.fixed;
|
||||||
merged[id] = def;
|
merged[id] = def;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -450,3 +450,39 @@ issue_4111: {
|
|||||||
}
|
}
|
||||||
expect_stdout: "2"
|
expect_stdout: "2"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_4112: {
|
||||||
|
options = {
|
||||||
|
functions: true,
|
||||||
|
merge_vars: true,
|
||||||
|
reduce_vars: true,
|
||||||
|
unused: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
console.log(typeof function() {
|
||||||
|
try {
|
||||||
|
throw 42;
|
||||||
|
} catch (e) {
|
||||||
|
var o = e;
|
||||||
|
for (e in o);
|
||||||
|
var a = function() {};
|
||||||
|
console.log;
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
}());
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
console.log(typeof function() {
|
||||||
|
try {
|
||||||
|
throw 42;
|
||||||
|
} catch (e) {
|
||||||
|
var a = e;
|
||||||
|
for (e in a);
|
||||||
|
a = function() {};
|
||||||
|
console.log;
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
}());
|
||||||
|
}
|
||||||
|
expect_stdout: "function"
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user