diff options
Diffstat (limited to 'lib/scope.js')
-rw-r--r-- | lib/scope.js | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/scope.js b/lib/scope.js index 7ae87072..606a5a2f 100644 --- a/lib/scope.js +++ b/lib/scope.js @@ -314,9 +314,13 @@ AST_Function.DEFMETHOD("next_mangled", function(options, def){ // a function expression's argument cannot shadow the function expression's name var tricky_def = def.orig[0] instanceof AST_SymbolFunarg && this.name && this.name.definition(); + + // the function's mangled_name is null when keep_fnames is true + var tricky_name = tricky_def ? tricky_def.mangled_name || tricky_def.name : null; + while (true) { var name = AST_Lambda.prototype.next_mangled.call(this, options, def); - if (!(tricky_def && tricky_def.mangled_name == name)) + if (!tricky_name || tricky_name != name) return name; } }); |