aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Lam S.L <alexlamsl@gmail.com>2017-10-22 04:19:40 +0800
committerGitHub <noreply@github.com>2017-10-22 04:19:40 +0800
commit4ae1fb3ed8380d06220fd242037bd277fc21c17d (patch)
tree9a78db912fa771fb700e9919a31ad4c1b703e711
parent011123223b8e45ab3f6d151ad038a6b8ecec2434 (diff)
downloadtracifyjs-4ae1fb3ed8380d06220fd242037bd277fc21c17d.tar.gz
tracifyjs-4ae1fb3ed8380d06220fd242037bd277fc21c17d.zip
fix `unsafe` evaluation of objects (#2388)
-rw-r--r--lib/compress.js1
-rw-r--r--test/compress/properties.js18
2 files changed, 19 insertions, 0 deletions
diff --git a/lib/compress.js b/lib/compress.js
index c7e08638..cef5d75f 100644
--- a/lib/compress.js
+++ b/lib/compress.js
@@ -4492,6 +4492,7 @@ merge(Compressor.prototype, {
if (def) {
return def.optimize(compressor);
}
+ if (is_lhs(self, compressor.parent())) return self;
if (compressor.option("unsafe") && self.expression instanceof AST_Object) {
var values = self.expression.properties;
for (var i = values.length; --i >= 0;) {
diff --git a/test/compress/properties.js b/test/compress/properties.js
index c2c43f69..c8a85697 100644
--- a/test/compress/properties.js
+++ b/test/compress/properties.js
@@ -804,3 +804,21 @@ issue_2256: {
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"
+}