@@ -549,6 +549,7 @@ merge(Compressor.prototype, {
|
|||||||
if (var_decl.value.is_constant()) {
|
if (var_decl.value.is_constant()) {
|
||||||
var ctt = new TreeTransformer(function(node) {
|
var ctt = new TreeTransformer(function(node) {
|
||||||
if (node === ref
|
if (node === ref
|
||||||
|
&& !ctt.find_parent(AST_Destructuring)
|
||||||
&& !ctt.find_parent(AST_ForIn)) {
|
&& !ctt.find_parent(AST_ForIn)) {
|
||||||
return replace_var(node, ctt.parent(), true);
|
return replace_var(node, ctt.parent(), true);
|
||||||
}
|
}
|
||||||
@@ -581,6 +582,7 @@ merge(Compressor.prototype, {
|
|||||||
if (unwind) return node;
|
if (unwind) return node;
|
||||||
var parent = tt.parent();
|
var parent = tt.parent();
|
||||||
if (node instanceof AST_Lambda
|
if (node instanceof AST_Lambda
|
||||||
|
|| node instanceof AST_Destructuring
|
||||||
|| node instanceof AST_Try
|
|| node instanceof AST_Try
|
||||||
|| node instanceof AST_With
|
|| node instanceof AST_With
|
||||||
|| node instanceof AST_Case
|
|| node instanceof AST_Case
|
||||||
|
|||||||
@@ -1343,3 +1343,81 @@ issue_1537_for_of: {
|
|||||||
for (k of {prop: 'val'});
|
for (k of {prop: 'val'});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_1537_destructuring_1: {
|
||||||
|
options = {
|
||||||
|
collapse_vars: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
var x = 1, y = 2;
|
||||||
|
[x] = [y];
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
var x = 1;
|
||||||
|
[x] = [2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
issue_1537_destructuring_2: {
|
||||||
|
options = {
|
||||||
|
collapse_vars: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
var x = foo();
|
||||||
|
[x] = [1];
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
var x = foo();
|
||||||
|
[x] = [1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
issue_1537_destructuring_3: {
|
||||||
|
options = {
|
||||||
|
collapse_vars: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
var x = Math.random();
|
||||||
|
({p: x = 9} = {v: 1});
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
var x = Math.random();
|
||||||
|
({p: x = 9} = {v: 1});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
issue_1537_destructuring_for_in: {
|
||||||
|
options = {
|
||||||
|
collapse_vars: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
var x = 1, y = 2;
|
||||||
|
(function() {
|
||||||
|
for ([[x], y] in a);
|
||||||
|
})();
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
var x = 1, y = 2;
|
||||||
|
(function() {
|
||||||
|
for ([[x], y] in a);
|
||||||
|
})();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
issue_1537_destructuring_for_of: {
|
||||||
|
options = {
|
||||||
|
collapse_vars: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
var x = 1, y = 2;
|
||||||
|
(function() {
|
||||||
|
for ([[x], y] of a);
|
||||||
|
})();
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
var x = 1, y = 2;
|
||||||
|
(function() {
|
||||||
|
for ([[x], y] of a);
|
||||||
|
})();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user