improve exceptional flow compression by collapse_vars (#2880)
This commit is contained in:
@@ -1408,22 +1408,15 @@ merge(Compressor.prototype, {
|
||||
}
|
||||
|
||||
function side_effects_external(node, lhs) {
|
||||
if (node instanceof AST_Assign) {
|
||||
return side_effects_external(node.left, true)
|
||||
|| side_effects_external(node.right);
|
||||
}
|
||||
if (node instanceof AST_Definitions) return false;
|
||||
if (node instanceof AST_Assign) return side_effects_external(node.left, true);
|
||||
if (node instanceof AST_Unary) return side_effects_external(node.expression, true);
|
||||
if (node instanceof AST_VarDef) return node.value && side_effects_external(node.value);
|
||||
if (lhs) {
|
||||
if (node instanceof AST_Dot) return side_effects_external(node.expression, true);
|
||||
if (node instanceof AST_Sub) {
|
||||
return side_effects_external(node.expression, true)
|
||||
|| side_effects_external(node.property);
|
||||
}
|
||||
if (node instanceof AST_Sub) return side_effects_external(node.expression, true);
|
||||
if (node instanceof AST_SymbolRef) return node.definition().scope !== scope;
|
||||
}
|
||||
return node.has_side_effects(compressor);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user