From: Alex Lam S.L Date: Thu, 17 Dec 2020 19:10:16 +0000 (+0000) Subject: fix corner case in `collapse_vars` (#4391) X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=ab82be82b28c8fed0643569700d9b5ff2f093aea;p=UglifyJS.git fix corner case in `collapse_vars` (#4391) fixes #4390 --- diff --git a/lib/compress.js b/lib/compress.js index 2c50cb37..8fe0ad62 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -1776,7 +1776,9 @@ merge(Compressor.prototype, { can_replace = false; var after = stop_after; var if_hit = stop_if_hit; - for (var i = 0; !abort && i < fn.body.length; i++) { + if (fn instanceof AST_Arrow && fn.value) { + fn.value.transform(scanner); + } else for (var i = 0; !abort && i < fn.body.length; i++) { var stat = fn.body[i]; if (stat instanceof AST_Return) { if (stat.value) stat.value.transform(scanner); diff --git a/test/compress/arrows.js b/test/compress/arrows.js index eded9134..34af3505 100644 --- a/test/compress/arrows.js +++ b/test/compress/arrows.js @@ -351,3 +351,32 @@ issue_4388: { expect_stdout: "undefined" node_version: ">=4" } + +issue_4390: { + options = { + collapse_vars: true, + } + input: { + function log() { + console.log.apply(console, arguments); + } + var a = 42, b = "FAIL"; + b = "PASS"; + (c => log(b, c))(a); + log(b); + } + expect: { + function log() { + console.log.apply(console, arguments); + } + var a = 42, b = "FAIL"; + b = "PASS"; + (c => log(b, c))(a); + log(b); + } + expect_stdout: [ + "PASS 42", + "PASS", + ] + node_version: ">=4" +}