Add a "keep_fnames" option to the compressor to retain function expression names

See #552. This is useful for stack traces.
This commit is contained in:
Richard van Velzen
2015-01-04 20:14:38 +01:00
parent 4613644cce
commit 0d48af3f36
2 changed files with 16 additions and 1 deletions

View File

@@ -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;
}

View File

@@ -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() {};
}
}
}