[Pkg-javascript-commits] [uglifyjs] 94/228: scan assignment value in drop_unused() (#1578)
Jonas Smedegaard
dr at jones.dk
Sat Apr 15 14:25:20 UTC 2017
This is an automated email from the git hooks/post-receive script.
js pushed a commit to branch master
in repository uglifyjs.
commit 711f88dcb49bc0daf0548f3ec240f680e05dfc27
Author: Alex Lam S.L <alexlamsl at gmail.com>
Date: Wed Mar 8 18:37:32 2017 +0800
scan assignment value in drop_unused() (#1578)
those were not optimised for `unused` before, which made it necessary for `reduce_vars` to have separate steps for `keep_fnames`
docs update by @kzc
closes #1577
---
README.md | 8 ++++----
lib/compress.js | 5 +----
test/compress/drop-unused.js | 25 +++++++++++++++++++++++++
3 files changed, 30 insertions(+), 8 deletions(-)
diff --git a/README.md b/README.md
index f880fd7..a33e0b3 100644
--- a/README.md
+++ b/README.md
@@ -391,11 +391,11 @@ to set `true`; it's effectively a shortcut for `foo=true`).
- `cascade` -- small optimization for sequences, transform `x, x` into `x`
and `x = something(), x` into `x = something()`
-- `collapse_vars` -- default `false`. Collapse single-use `var` and `const`
- definitions when possible.
+- `collapse_vars` -- Collapse single-use `var` and `const` definitions
+ when possible.
-- `reduce_vars` -- default `false`. Improve optimization on variables assigned
- with and used as constant values.
+- `reduce_vars` -- Improve optimization on variables assigned with and
+ used as constant values.
- `warnings` -- display warnings when dropping unreachable code or unused
declarations etc.
diff --git a/lib/compress.js b/lib/compress.js
index f423fdd..302f8f5 100644
--- a/lib/compress.js
+++ b/lib/compress.js
@@ -1840,6 +1840,7 @@ merge(Compressor.prototype, {
}
if (drop_vars && node instanceof AST_Definitions && !(tt.parent() instanceof AST_ForIn)) {
var def = node.definitions.filter(function(def){
+ if (def.value) def.value = def.value.transform(tt);
if (def.name.definition().id in in_use_ids) return true;
var w = {
name : def.name.name,
@@ -2611,10 +2612,6 @@ merge(Compressor.prototype, {
if (compressor.option("unused")
&& def.references.length == 1
&& compressor.find_parent(AST_Scope) === def.scope) {
- if (!compressor.option("keep_fnames")
- && exp.name && exp.name.definition() === def) {
- exp.name = null;
- }
self.expression = exp;
}
}
diff --git a/test/compress/drop-unused.js b/test/compress/drop-unused.js
index 20dab3b..9c96056 100644
--- a/test/compress/drop-unused.js
+++ b/test/compress/drop-unused.js
@@ -700,3 +700,28 @@ issue_1539: {
}
}
}
+
+vardef_value: {
+ options = {
+ keep_fnames: false,
+ reduce_vars: true,
+ unused: true,
+ }
+ input: {
+ function f() {
+ function g(){
+ return x();
+ }
+ var a = g();
+ return a(42);
+ }
+ }
+ expect: {
+ function f() {
+ var a = function(){
+ return x();
+ }();
+ return a(42);
+ }
+ }
+}
--
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