diff options
author | Alex Lam S.L <alexlamsl@gmail.com> | 2020-02-15 13:04:44 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-15 13:04:44 +0000 |
commit | f0a29902acc24217881529449c7f9b8815896297 (patch) | |
tree | 376a926f874380cee6c04d5b123c18f646e976bf | |
parent | 0d820e4c0a7a1b1eeee25fb632b9496a9780b28a (diff) | |
download | tracifyjs-f0a29902acc24217881529449c7f9b8815896297.tar.gz tracifyjs-f0a29902acc24217881529449c7f9b8815896297.zip |
enhance `properties` (#3721)
-rw-r--r-- | lib/compress.js | 8 | ||||
-rw-r--r-- | test/compress/properties.js | 23 |
2 files changed, 28 insertions, 3 deletions
diff --git a/lib/compress.js b/lib/compress.js index 666f4c4c..e8a71791 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -7615,9 +7615,11 @@ merge(Compressor.prototype, { value = value.fixed_value(); } if (!value) return false; - return !(value instanceof AST_Lambda) - || compressor.parent() instanceof AST_New - || !value.contains_this(); + if (!(value instanceof AST_Lambda)) return true; + var parent = compressor.parent(); + if (parent.TYPE != "Call") return true; + if (parent.expression !== compressor.self()) return true; + return !value.contains_this(); } OPT(AST_Sub, function(self, compressor) { diff --git a/test/compress/properties.js b/test/compress/properties.js index a70ab7d8..9270f438 100644 --- a/test/compress/properties.js +++ b/test/compress/properties.js @@ -817,6 +817,29 @@ issue_2208_5: { expect_stdout: "42" } +issue_2208_6: { + options = { + inline: true, + properties: true, + side_effects: true, + } + input: { + a = 42; + console.log(("FAIL", { + p: function() { + return this.a; + } + }.p)()); + } + expect: { + a = 42; + console.log(function() { + return this.a; + }()); + } + expect_stdout: "42" +} + issue_2256: { options = { side_effects: true, |