From: Alex Lam S.L Date: Mon, 1 Jan 2018 17:24:23 +0000 (+0800) Subject: scan within IIFEs of assigned values (#2702) X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=2f3bddbacaaafb73ed046090a74ce6558c54a218;p=UglifyJS.git scan within IIFEs of assigned values (#2702) fixes #2701 --- 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" +}