aboutsummaryrefslogtreecommitdiff
path: root/lib/compress.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/compress.js')
-rw-r--r--lib/compress.js10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/compress.js b/lib/compress.js
index e2fde883..e4863d9f 100644
--- a/lib/compress.js
+++ b/lib/compress.js
@@ -1850,9 +1850,13 @@ merge(Compressor.prototype, {
function before(node, descend, in_list) {
if (node instanceof AST_Function
&& node.name
- && !compressor.option("keep_fnames")
- && !(node.name.definition().id in in_use_ids)) {
- node.name = null;
+ && !compressor.option("keep_fnames")) {
+ var def = node.name.definition();
+ // any declarations with same name will overshadow
+ // name of this anonymous function and can therefore
+ // never be used anywhere
+ if (!(def.id in in_use_ids) || def.orig.length > 1)
+ node.name = null;
}
if (node instanceof AST_Lambda && !(node instanceof AST_Accessor)) {
var trim = !compressor.option("keep_fargs");