From 2f3bddbacaaafb73ed046090a74ce6558c54a218 Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Tue, 2 Jan 2018 01:24:23 +0800 Subject: [PATCH] scan within IIFEs of assigned values (#2702) fixes #2701 --- lib/compress.js | 5 ++--- test/compress/dead-code.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/lib/compress.js b/lib/compress.js index ee80901e..73cc9d7b 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -4913,9 +4913,8 @@ merge(Compressor.prototype, { if (reachable) return true; if (node instanceof AST_Scope && node !== self) { var parent = scan_scope.parent(); - if (!(parent instanceof AST_Call && parent.expression === node)) { - node.walk(find_ref); - } + if (parent instanceof AST_Call && parent.expression === node) return; + node.walk(find_ref); return true; } }); diff --git a/test/compress/dead-code.js b/test/compress/dead-code.js index 68ee4b12..32bb88e6 100644 --- a/test/compress/dead-code.js +++ b/test/compress/dead-code.js @@ -881,3 +881,31 @@ issue_2692: { } expect_stdout: "function" } + +issue_2701: { + options = { + dead_code: true, + inline: false, + } + input: { + function f(a) { + return a = function() { + return function() { + return a; + }; + }(); + } + console.log(typeof f()()); + } + expect: { + function f(a) { + return a = function() { + return function() { + return a; + }; + }(); + } + console.log(typeof f()()); + } + expect_stdout: "function" +} -- 2.34.1