aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard van Velzen <rvanvelzen1@gmail.com>2015-01-04 20:14:38 +0100
committerRichard van Velzen <rvanvelzen1@gmail.com>2015-01-04 20:14:38 +0100
commit0d48af3f36e99252a42b2f40d8fc6d361aa5a7b1 (patch)
tree6f51fbcf42a30965b2d7e15d690fb3d589519b8a
parent4613644cce9f64cef4115cbfff660b41d51a9b9d (diff)
downloadtracifyjs-0d48af3f36e99252a42b2f40d8fc6d361aa5a7b1.tar.gz
tracifyjs-0d48af3f36e99252a42b2f40d8fc6d361aa5a7b1.zip
Add a "keep_fnames" option to the compressor to retain function expression names
See #552. This is useful for stack traces.
-rw-r--r--lib/compress.js3
-rw-r--r--test/compress/drop-unused.js14
2 files changed, 16 insertions, 1 deletions
diff --git a/lib/compress.js b/lib/compress.js
index 2c950992..345d8ad6 100644
--- a/lib/compress.js
+++ b/lib/compress.js
@@ -62,6 +62,7 @@ function Compressor(options, false_by_default) {
unused : !false_by_default,
hoist_funs : !false_by_default,
keep_fargs : false,
+ keep_fnames : false,
hoist_vars : false,
if_return : !false_by_default,
join_vars : !false_by_default,
@@ -1666,7 +1667,7 @@ merge(Compressor.prototype, {
OPT(AST_Function, function(self, compressor){
self = AST_Lambda.prototype.optimize.call(self, compressor);
- if (compressor.option("unused")) {
+ if (compressor.option("unused") && !compressor.option("keep_fnames")) {
if (self.name && self.name.unreferenced()) {
self.name = null;
}
diff --git a/test/compress/drop-unused.js b/test/compress/drop-unused.js
index 89bf0088..de4b2220 100644
--- a/test/compress/drop-unused.js
+++ b/test/compress/drop-unused.js
@@ -163,3 +163,17 @@ used_var_in_catch: {
}
}
}
+
+keep_fnames: {
+ options = { unused: true, keep_fnames: true };
+ input: {
+ function foo() {
+ return function bar(baz) {};
+ }
+ }
+ expect: {
+ function foo() {
+ return function bar() {};
+ }
+ }
+} \ No newline at end of file