diff options
author | Richard van Velzen <rvanvelzen1@gmail.com> | 2015-01-04 20:14:38 +0100 |
---|---|---|
committer | Richard van Velzen <rvanvelzen1@gmail.com> | 2015-01-04 20:14:38 +0100 |
commit | 0d48af3f36e99252a42b2f40d8fc6d361aa5a7b1 (patch) | |
tree | 6f51fbcf42a30965b2d7e15d690fb3d589519b8a | |
parent | 4613644cce9f64cef4115cbfff660b41d51a9b9d (diff) | |
download | tracifyjs-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.js | 3 | ||||
-rw-r--r-- | test/compress/drop-unused.js | 14 |
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 |