@@ -13049,17 +13049,30 @@ Compressor.prototype.compress = function(node) {
|
||||
|
||||
function init_ref(compressor, name) {
|
||||
var sym = make_node(AST_SymbolRef, name, name);
|
||||
var def = name.definition();
|
||||
def.assignments++;
|
||||
def.references.push(sym);
|
||||
var assign = make_node(AST_Assign, name, {
|
||||
operator: "=",
|
||||
left: sym,
|
||||
right: make_node(AST_Undefined, name).transform(compressor),
|
||||
});
|
||||
sym.fixed = function() {
|
||||
return assign.right;
|
||||
};
|
||||
var def = name.definition();
|
||||
if (def.fixed) {
|
||||
sym.fixed = function() {
|
||||
return assign.right;
|
||||
};
|
||||
sym.fixed.assigns = [ assign ];
|
||||
var visited = [];
|
||||
def.references.forEach(function(ref) {
|
||||
var fixed = ref.fixed;
|
||||
if (!fixed || !push_uniq(visited, fixed)) return;
|
||||
if (fixed.assigns) {
|
||||
fixed.assigns.unshift(assign);
|
||||
} else {
|
||||
fixed.assigns = [ assign ];
|
||||
}
|
||||
});
|
||||
}
|
||||
def.assignments++;
|
||||
def.references.push(sym);
|
||||
return assign;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user