@@ -6545,7 +6545,8 @@ merge(Compressor.prototype, {
|
||||
} else if (self.left instanceof AST_SymbolRef) {
|
||||
if (self.left.is_immutable()) return strip_assignment();
|
||||
var def = self.left.definition();
|
||||
var local = def.scope.resolve() === compressor.find_parent(AST_Lambda);
|
||||
var scope = def.scope.resolve();
|
||||
var local = scope === compressor.find_parent(AST_Lambda);
|
||||
var level = 0, node, parent = self;
|
||||
do {
|
||||
node = parent;
|
||||
@@ -6553,12 +6554,13 @@ merge(Compressor.prototype, {
|
||||
if (parent instanceof AST_Assign) {
|
||||
if (!(parent.left instanceof AST_SymbolRef)) continue;
|
||||
if (parent.left.definition() !== def) continue;
|
||||
if (in_try(level, parent)) break;
|
||||
def.fixed = false;
|
||||
return strip_assignment();
|
||||
} else if (parent instanceof AST_Exit) {
|
||||
if (!local) break;
|
||||
if (in_try(level, parent)) break;
|
||||
if (is_reachable(def.scope, [ def ])) break;
|
||||
if (is_reachable(scope, [ def ])) break;
|
||||
def.fixed = false;
|
||||
return strip_assignment();
|
||||
}
|
||||
@@ -6604,9 +6606,9 @@ merge(Compressor.prototype, {
|
||||
self.right = make_node(AST_Null, right);
|
||||
var may_throw = node.may_throw(compressor);
|
||||
self.right = right;
|
||||
var scope = self.left.definition().scope.resolve();
|
||||
var parent;
|
||||
while ((parent = compressor.parent(level++)) !== scope) {
|
||||
while (parent = compressor.parent(level++)) {
|
||||
if (parent === scope) return false;
|
||||
if (parent instanceof AST_Try) {
|
||||
if (parent.bfinally) return true;
|
||||
if (may_throw && parent.bcatch) return true;
|
||||
|
||||
Reference in New Issue
Block a user