fix corner case in inline (#3595)
This commit is contained in:
@@ -862,13 +862,9 @@ merge(Compressor.prototype, {
|
||||
|
||||
AST_Toplevel.DEFMETHOD("reset_opt_flags", function(compressor) {
|
||||
var tw = new TreeWalker(compressor.option("reduce_vars") ? function(node, descend) {
|
||||
node._squeezed = false;
|
||||
node._optimized = false;
|
||||
reset_flags(node);
|
||||
return node.reduce_vars(tw, descend, compressor);
|
||||
} : function(node) {
|
||||
node._squeezed = false;
|
||||
node._optimized = false;
|
||||
});
|
||||
} : reset_flags);
|
||||
// Flow control for visiting `AST_Defun`s
|
||||
tw.defun_ids = Object.create(null);
|
||||
tw.defun_visited = Object.create(null);
|
||||
@@ -881,6 +877,12 @@ merge(Compressor.prototype, {
|
||||
// - backup & restore via `save_ids` when visiting out-of-order sections
|
||||
tw.safe_ids = Object.create(null);
|
||||
this.walk(tw);
|
||||
|
||||
function reset_flags(node) {
|
||||
node._squeezed = false;
|
||||
node._optimized = false;
|
||||
if (node instanceof AST_Scope) delete node._var_names;
|
||||
}
|
||||
});
|
||||
|
||||
AST_Symbol.DEFMETHOD("fixed_value", function(final) {
|
||||
@@ -5582,6 +5584,11 @@ merge(Compressor.prototype, {
|
||||
definitions: decls
|
||||
}));
|
||||
[].splice.apply(scope.body, args);
|
||||
fn.enclosed.forEach(function(def) {
|
||||
if (scope.var_names()[def.name]) return;
|
||||
scope.enclosed.push(def);
|
||||
scope.var_names()[def.name] = true;
|
||||
});
|
||||
return expressions;
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user