Support keep_fnames in compressor, and --keep-fnames. #552
Passing `--keep-fnames` will enable it both for compressor/mangler, so that function names will not be dropped (when unused) nor mangled.
This commit is contained in:
@@ -65,6 +65,7 @@ You need to pass an argument to this option to specify the name that your module
|
|||||||
.describe("V", "Print version number and exit.")
|
.describe("V", "Print version number and exit.")
|
||||||
.describe("noerr", "Don't throw an error for unknown options in -c, -b or -m.")
|
.describe("noerr", "Don't throw an error for unknown options in -c, -b or -m.")
|
||||||
.describe("bare-returns", "Allow return outside of functions. Useful when minifying CommonJS modules.")
|
.describe("bare-returns", "Allow return outside of functions. Useful when minifying CommonJS modules.")
|
||||||
|
.describe("keep-fnames", "Do not mangle/drop function names. Useful for code relying on Function.prototype.name.")
|
||||||
|
|
||||||
.alias("p", "prefix")
|
.alias("p", "prefix")
|
||||||
.alias("o", "output")
|
.alias("o", "output")
|
||||||
@@ -160,6 +161,11 @@ if (ARGS.screw_ie8) {
|
|||||||
OUTPUT_OPTIONS.screw_ie8 = true;
|
OUTPUT_OPTIONS.screw_ie8 = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ARGS.keep_fnames) {
|
||||||
|
if (COMPRESS) COMPRESS.keep_fnames = true;
|
||||||
|
if (MANGLE) MANGLE.keep_fnames = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (BEAUTIFY)
|
if (BEAUTIFY)
|
||||||
UglifyJS.merge(OUTPUT_OPTIONS, BEAUTIFY);
|
UglifyJS.merge(OUTPUT_OPTIONS, BEAUTIFY);
|
||||||
|
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ function Compressor(options, false_by_default) {
|
|||||||
unused : !false_by_default,
|
unused : !false_by_default,
|
||||||
hoist_funs : !false_by_default,
|
hoist_funs : !false_by_default,
|
||||||
keep_fargs : false,
|
keep_fargs : false,
|
||||||
|
keep_fnames : false,
|
||||||
hoist_vars : false,
|
hoist_vars : false,
|
||||||
if_return : !false_by_default,
|
if_return : !false_by_default,
|
||||||
join_vars : !false_by_default,
|
join_vars : !false_by_default,
|
||||||
@@ -1666,7 +1667,7 @@ merge(Compressor.prototype, {
|
|||||||
|
|
||||||
OPT(AST_Function, function(self, compressor){
|
OPT(AST_Function, function(self, compressor){
|
||||||
self = AST_Lambda.prototype.optimize.call(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()) {
|
if (self.name && self.name.unreferenced()) {
|
||||||
self.name = null;
|
self.name = null;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user