|| node instanceof AST_Call && lhs instanceof AST_PropAccess && lhs.equivalent_to(node.expression)
|| node instanceof AST_Debugger
|| node instanceof AST_IterationStatement && !(node instanceof AST_For)
- || node instanceof AST_SymbolRef && !node.is_declared(compressor)
|| node instanceof AST_Try
|| node instanceof AST_With
- || parent instanceof AST_For && node !== parent.init) {
+ || parent instanceof AST_For && node !== parent.init
+ || (side_effects || !replace_all)
+ && (node instanceof AST_SymbolRef && !node.is_declared(compressor))) {
abort = true;
return node;
}