Skip to content

Commit

Permalink
option to prevent mangling or dropping of function names (#267)
Browse files Browse the repository at this point in the history
pass -nmf (--no-mangle-functions)
  • Loading branch information
mishoo committed Dec 9, 2011
1 parent b9cd98a commit 03f2a85
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 13 deletions.
12 changes: 9 additions & 3 deletions bin/uglifyjs
Expand Up @@ -11,6 +11,7 @@ var options = {
ast: false,
mangle: true,
mangle_toplevel: false,
no_mangle_functions: false,
squeeze: true,
make_seqs: true,
dead_code: true,
Expand Down Expand Up @@ -57,6 +58,10 @@ out: while (args.length > 0) {
case "--mangle-toplevel":
options.mangle_toplevel = true;
break;
case "-nmf":
case "--no-mangle-functions":
options.no_mangle_functions = true;
break;
case "--no-mangle":
case "-nm":
options.mangle = false;
Expand Down Expand Up @@ -278,9 +283,10 @@ function squeeze_it(code) {
}
if (options.mangle) ast = time_it("mangle", function(){
return pro.ast_mangle(ast, {
toplevel: options.mangle_toplevel,
defines: options.defines,
except: options.reserved_names
toplevel : options.mangle_toplevel,
defines : options.defines,
except : options.reserved_names,
no_functions : options.no_mangle_functions
});
});
if (options.squeeze) ast = time_it("squeeze", function(){
Expand Down
22 changes: 12 additions & 10 deletions lib/process.js
Expand Up @@ -514,17 +514,19 @@ function ast_mangle(ast, options) {
};

function _lambda(name, args, body) {
var is_defun = this[0] == "defun", extra;
if (name) {
if (is_defun) name = get_mangled(name);
else if (body.scope.references(name)) {
extra = {};
if (!(scope.uses_eval || scope.uses_with))
name = extra[name] = scope.next_mangled();
else
extra[name] = name;
if (!options.no_functions) {
var is_defun = this[0] == "defun", extra;
if (name) {
if (is_defun) name = get_mangled(name);
else if (body.scope.references(name)) {
extra = {};
if (!(scope.uses_eval || scope.uses_with))
name = extra[name] = scope.next_mangled();
else
extra[name] = name;
}
else name = null;
}
else name = null;
}
body = with_scope(body.scope, function(){
args = MAP(args, function(name){ return get_mangled(name) });
Expand Down

0 comments on commit 03f2a85

Please sign in to comment.