[Pkg-javascript-commits] [uglifyjs] 232/491: fix `AST_PropAccess` in `collapse_vars` (take 2) (#2372)
Jonas Smedegaard
dr at jones.dk
Wed Feb 14 19:51:39 UTC 2018
This is an automated email from the git hooks/post-receive script.
js pushed a commit to annotated tag debian/3.3.10-1
in repository uglifyjs.
commit 0d2fe8e3efdb096af4044b011dd7e2e463581400
Author: Alex Lam S.L <alexlamsl at gmail.com>
Date: Tue Oct 17 22:59:15 2017 +0800
fix `AST_PropAccess` in `collapse_vars` (take 2) (#2372)
fixes #2364
---
lib/compress.js | 3 +-
test/compress/collapse_vars.js | 72 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 73 insertions(+), 2 deletions(-)
diff --git a/lib/compress.js b/lib/compress.js
index 3909c65..488cc6f 100644
--- a/lib/compress.js
+++ b/lib/compress.js
@@ -839,8 +839,7 @@ merge(Compressor.prototype, {
if (node instanceof AST_Call
|| node instanceof AST_Exit
|| node instanceof AST_PropAccess
- && (node.has_side_effects(compressor)
- || get_symbol(node).name in lvalues)
+ && (side_effects || node.has_side_effects(compressor))
|| node instanceof AST_SymbolRef
&& (lvalues[node.name]
|| side_effects && !references_in_scope(node.definition()))
diff --git a/test/compress/collapse_vars.js b/test/compress/collapse_vars.js
index baa18ea..c115763 100644
--- a/test/compress/collapse_vars.js
+++ b/test/compress/collapse_vars.js
@@ -2711,3 +2711,75 @@ issue_2364_2: {
}
}
}
+
+issue_2364_3: {
+ options = {
+ collapse_vars: true,
+ pure_getters: true,
+ }
+ input: {
+ function inc(obj) {
+ return obj.count++;
+ }
+ function foo(bar) {
+ var result = inc(bar);
+ return foo.amount = bar.count, result;
+ }
+ var data = {
+ count: 0,
+ };
+ var answer = foo(data);
+ console.log(foo.amount, answer);
+ }
+ expect: {
+ function inc(obj) {
+ return obj.count++;
+ }
+ function foo(bar) {
+ var result = inc(bar);
+ return foo.amount = bar.count, result;
+ }
+ var data = {
+ count: 0,
+ };
+ var answer = foo(data);
+ console.log(foo.amount, answer);
+ }
+ expect_stdout: "1 0"
+}
+
+issue_2364_4: {
+ options = {
+ collapse_vars: true,
+ pure_getters: true,
+ }
+ input: {
+ function inc(obj) {
+ return obj.count++;
+ }
+ function foo(bar, baz) {
+ var result = inc(bar);
+ return foo.amount = baz.count, result;
+ }
+ var data = {
+ count: 0,
+ };
+ var answer = foo(data, data);
+ console.log(foo.amount, answer);
+ }
+ expect: {
+ function inc(obj) {
+ return obj.count++;
+ }
+ function foo(bar, baz) {
+ var result = inc(bar);
+ return foo.amount = baz.count, result;
+ }
+ var data = {
+ count: 0,
+ };
+ var answer = foo(data, data);
+ console.log(foo.amount, answer);
+ }
+ expect_stdout: "1 0"
+}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/uglifyjs.git
More information about the Pkg-javascript-commits
mailing list