fix unsafe evaluation of objects

This commit is contained in:
alexlamsl 2017-10-22 02:51:29 +08:00
parent 96439ca246
commit c748d51856
2 changed files with 19 additions and 0 deletions

View File

@ -4486,6 +4486,7 @@ merge(Compressor.prototype, {
if (def) { if (def) {
return def.optimize(compressor); return def.optimize(compressor);
} }
if (is_lhs(self, compressor.parent())) return self;
if (compressor.option("unsafe") && self.expression instanceof AST_Object) { if (compressor.option("unsafe") && self.expression instanceof AST_Object) {
var values = self.expression.properties; var values = self.expression.properties;
for (var i = values.length; --i >= 0;) { for (var i = values.length; --i >= 0;) {

View File

@ -804,3 +804,21 @@ issue_2256: {
g.keep = g.g; g.keep = g.g;
} }
} }
lhs_prop: {
options = {
evaluate: true,
unsafe: true,
}
input: {
console.log(++{
a: 1
}.a);
}
expect: {
console.log(++{
a: 1
}.a);
}
expect_stdout: "2"
}