@@ -597,9 +597,10 @@ merge(Compressor.prototype, {
|
||||
function scan_declaration(tw, lhs, fixed, visit) {
|
||||
var scanner = new TreeWalker(function(node) {
|
||||
if (node instanceof AST_DestructuredArray) {
|
||||
reset_flags(node);
|
||||
var save = fixed;
|
||||
node.elements.forEach(function(node, index) {
|
||||
if (node instanceof AST_Hole) return;
|
||||
if (node instanceof AST_Hole) return reset_flags(node);
|
||||
fixed = function() {
|
||||
return make_node(AST_Sub, node, {
|
||||
expression: save(),
|
||||
@@ -614,8 +615,10 @@ merge(Compressor.prototype, {
|
||||
return true;
|
||||
}
|
||||
if (node instanceof AST_DestructuredObject) {
|
||||
reset_flags(node);
|
||||
var save = fixed;
|
||||
node.properties.forEach(function(node) {
|
||||
reset_flags(node);
|
||||
if (node.key instanceof AST_Node) {
|
||||
push(tw);
|
||||
node.key.walk(tw);
|
||||
@@ -1112,6 +1115,13 @@ merge(Compressor.prototype, {
|
||||
node.DEFMETHOD("reduce_vars", func);
|
||||
});
|
||||
|
||||
function reset_flags(node) {
|
||||
node._squeezed = false;
|
||||
node._optimized = false;
|
||||
delete node.fixed;
|
||||
if (node instanceof AST_Scope) delete node._var_names;
|
||||
}
|
||||
|
||||
AST_Toplevel.DEFMETHOD("reset_opt_flags", function(compressor) {
|
||||
var tw = new TreeWalker(compressor.option("reduce_vars") ? function(node, descend) {
|
||||
reset_flags(node);
|
||||
@@ -1129,13 +1139,6 @@ 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;
|
||||
delete node.fixed;
|
||||
if (node instanceof AST_Scope) delete node._var_names;
|
||||
}
|
||||
});
|
||||
|
||||
AST_Symbol.DEFMETHOD("fixed_value", function() {
|
||||
|
||||
Reference in New Issue
Block a user