@@ -11562,16 +11562,14 @@ merge(Compressor.prototype, {
|
|||||||
node = parent;
|
node = parent;
|
||||||
parent = compressor.parent(level++);
|
parent = compressor.parent(level++);
|
||||||
if (parent instanceof AST_Assign) {
|
if (parent instanceof AST_Assign) {
|
||||||
var found = false;
|
if (parent.left instanceof AST_SymbolRef && parent.left.definition() === def) {
|
||||||
|
if (in_try(level, parent)) break;
|
||||||
|
return strip_assignment(def);
|
||||||
|
}
|
||||||
if (parent.left.match_symbol(function(node) {
|
if (parent.left.match_symbol(function(node) {
|
||||||
if (node instanceof AST_PropAccess) return true;
|
if (node instanceof AST_PropAccess) return true;
|
||||||
if (!found && node instanceof AST_SymbolRef && node.definition() === def) {
|
|
||||||
if (in_try(level, parent)) return true;
|
|
||||||
found = true;
|
|
||||||
}
|
|
||||||
})) break;
|
})) break;
|
||||||
if (!found) continue;
|
continue;
|
||||||
return strip_assignment(def);
|
|
||||||
}
|
}
|
||||||
if (parent instanceof AST_Exit) {
|
if (parent instanceof AST_Exit) {
|
||||||
if (!local) break;
|
if (!local) break;
|
||||||
|
|||||||
@@ -2127,7 +2127,7 @@ issue_4372_2: {
|
|||||||
}
|
}
|
||||||
expect: {
|
expect: {
|
||||||
var a;
|
var a;
|
||||||
[ a ] = [ "PASS", "FAIL" ];
|
[ a ] = a = [ "PASS", "FAIL" ];
|
||||||
console.log(a);
|
console.log(a);
|
||||||
}
|
}
|
||||||
expect_stdout: "PASS"
|
expect_stdout: "PASS"
|
||||||
@@ -3125,3 +3125,103 @@ issue_5114_3: {
|
|||||||
expect_stdout: "PASS"
|
expect_stdout: "PASS"
|
||||||
node_version: ">=6"
|
node_version: ">=6"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_5153_array_assign: {
|
||||||
|
options = {
|
||||||
|
dead_code: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
var a = function*() {
|
||||||
|
yield b;
|
||||||
|
}(), b;
|
||||||
|
[ b ] = b = a;
|
||||||
|
console.log(a === b ? "PASS" : "FAIL");
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
var a = function*() {
|
||||||
|
yield b;
|
||||||
|
}(), b;
|
||||||
|
[ b ] = b = a;
|
||||||
|
console.log(a === b ? "PASS" : "FAIL");
|
||||||
|
}
|
||||||
|
expect_stdout: "PASS"
|
||||||
|
node_version: ">=6"
|
||||||
|
}
|
||||||
|
|
||||||
|
issue_5153_array_var: {
|
||||||
|
options = {
|
||||||
|
dead_code: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
var a = function*() {
|
||||||
|
yield b;
|
||||||
|
}(), [ b ] = b = a;
|
||||||
|
console.log(a === b ? "PASS" : "FAIL");
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
var a = function*() {
|
||||||
|
yield b;
|
||||||
|
}(), [ b ] = b = a;
|
||||||
|
console.log(a === b ? "PASS" : "FAIL");
|
||||||
|
}
|
||||||
|
expect_stdout: "PASS"
|
||||||
|
node_version: ">=6"
|
||||||
|
}
|
||||||
|
|
||||||
|
issue_5153_object_assign: {
|
||||||
|
options = {
|
||||||
|
dead_code: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
var a = {
|
||||||
|
get p() {
|
||||||
|
return b;
|
||||||
|
},
|
||||||
|
}, b;
|
||||||
|
({
|
||||||
|
p: b
|
||||||
|
} = b = a);
|
||||||
|
console.log(a === b ? "PASS" : "FAIL");
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
var a = {
|
||||||
|
get p() {
|
||||||
|
return b;
|
||||||
|
},
|
||||||
|
}, b;
|
||||||
|
({
|
||||||
|
p: b
|
||||||
|
} = b = a);
|
||||||
|
console.log(a === b ? "PASS" : "FAIL");
|
||||||
|
}
|
||||||
|
expect_stdout: "PASS"
|
||||||
|
node_version: ">=6"
|
||||||
|
}
|
||||||
|
|
||||||
|
issue_5153_object_var: {
|
||||||
|
options = {
|
||||||
|
dead_code: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
var a = {
|
||||||
|
get p() {
|
||||||
|
return b;
|
||||||
|
},
|
||||||
|
}, {
|
||||||
|
p: b
|
||||||
|
} = b = a;
|
||||||
|
console.log(a === b ? "PASS" : "FAIL");
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
var a = {
|
||||||
|
get p() {
|
||||||
|
return b;
|
||||||
|
},
|
||||||
|
}, {
|
||||||
|
p: b
|
||||||
|
} = b = a;
|
||||||
|
console.log(a === b ? "PASS" : "FAIL");
|
||||||
|
}
|
||||||
|
expect_stdout: "PASS"
|
||||||
|
node_version: ">=6"
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user