@@ -1552,6 +1552,12 @@ Compressor.prototype.compress = function(node) {
|
||||
AST_SymbolDeclaration.DEFMETHOD("convert_symbol", convert_symbol);
|
||||
AST_SymbolRef.DEFMETHOD("convert_symbol", convert_symbol);
|
||||
|
||||
function process_to_assign(ref) {
|
||||
var def = ref.definition();
|
||||
def.assignments++;
|
||||
def.references.push(ref);
|
||||
}
|
||||
|
||||
function mark_destructured(process, tw) {
|
||||
var marker = new TreeWalker(function(node) {
|
||||
if (node instanceof AST_DefaultValue) {
|
||||
@@ -3539,9 +3545,7 @@ Compressor.prototype.compress = function(node) {
|
||||
if (!var_def.value) return;
|
||||
exprs.push(make_node(AST_Assign, var_def, {
|
||||
operator: "=",
|
||||
left: var_def.name.convert_symbol(AST_SymbolRef, function(ref) {
|
||||
ref.definition().references.push(ref);
|
||||
}),
|
||||
left: var_def.name.convert_symbol(AST_SymbolRef, process_to_assign),
|
||||
right: var_def.value,
|
||||
}));
|
||||
});
|
||||
@@ -9084,9 +9088,7 @@ Compressor.prototype.compress = function(node) {
|
||||
body: make_sequence(self.body, body_exprs),
|
||||
});
|
||||
}
|
||||
body_refs.forEach(function(ref) {
|
||||
ref.definition().references.push(ref);
|
||||
});
|
||||
body_refs.forEach(process_to_assign);
|
||||
}
|
||||
if (alt_exprs) {
|
||||
[].push.apply(body, alt_defuns);
|
||||
@@ -9100,9 +9102,7 @@ Compressor.prototype.compress = function(node) {
|
||||
body: make_sequence(self.alternative, alt_exprs),
|
||||
});
|
||||
}
|
||||
alt_refs.forEach(function(ref) {
|
||||
ref.definition().references.push(ref);
|
||||
});
|
||||
alt_refs.forEach(process_to_assign);
|
||||
}
|
||||
if (var_defs.length > 0) body.push(make_node(AST_Var, self, { definitions: var_defs }));
|
||||
if (body.length > 0) {
|
||||
@@ -9146,12 +9146,8 @@ Compressor.prototype.compress = function(node) {
|
||||
}),
|
||||
}).optimize(compressor));
|
||||
}
|
||||
body_refs.forEach(function(ref) {
|
||||
ref.definition().references.push(ref);
|
||||
});
|
||||
alt_refs.forEach(function(ref) {
|
||||
ref.definition().references.push(ref);
|
||||
});
|
||||
body_refs.forEach(process_to_assign);
|
||||
alt_refs.forEach(process_to_assign);
|
||||
return make_node(AST_BlockStatement, self, { body: body }).optimize(compressor);
|
||||
}
|
||||
if (is_empty(self.body)) self = make_node(AST_If, self, {
|
||||
@@ -10450,6 +10446,7 @@ Compressor.prototype.compress = function(node) {
|
||||
scope.enclosed.push(def);
|
||||
if (!value) return;
|
||||
var sym = make_node(AST_SymbolRef, name, name);
|
||||
def.assignments++;
|
||||
def.references.push(sym);
|
||||
expressions.push(make_node(AST_Assign, self, {
|
||||
operator: "=",
|
||||
@@ -10523,6 +10520,7 @@ Compressor.prototype.compress = function(node) {
|
||||
|
||||
function process(ref, name) {
|
||||
var def = name.definition();
|
||||
def.assignments++;
|
||||
def.references.push(ref);
|
||||
var symbol = make_node(AST_SymbolVar, name, name);
|
||||
def.orig.push(symbol);
|
||||
|
||||
Reference in New Issue
Block a user