fix corner case in spread

fixes #4363
This commit is contained in:
alexlamsl 2020-12-12 00:01:15 +08:00
parent 076739db07
commit 64d0d64646
2 changed files with 26 additions and 1 deletions

View File

@ -10051,7 +10051,9 @@ merge(Compressor.prototype, {
found = true; found = true;
var exp = prop.expression; var exp = prop.expression;
if (compressor.option("spread") && exp instanceof AST_Object && all(exp.properties, function(prop) { if (compressor.option("spread") && exp instanceof AST_Object && all(exp.properties, function(prop) {
return !(prop instanceof AST_ObjectGetter || prop instanceof AST_Spread); return !(prop instanceof AST_ObjectGetter
|| prop instanceof AST_ObjectSetter && prop.key instanceof AST_Node
|| prop instanceof AST_Spread);
})) { })) {
changed = true; changed = true;
exp.properties.forEach(function(prop) { exp.properties.forEach(function(prop) {

View File

@ -758,3 +758,26 @@ issue_4361: {
] ]
node_version: ">=8" node_version: ">=8"
} }
issue_4363: {
options = {
objects: true,
spread: true,
}
input: {
({
...{
set [console.log("PASS")](v) {},
},
});
}
expect: {
({
...{
set [console.log("PASS")](v) {},
},
});
}
expect_stdout: "PASS"
node_version: ">=8"
}