diff options
-rw-r--r-- | lib/compress.js | 2 | ||||
-rw-r--r-- | test/compress/functions.js | 24 |
2 files changed, 25 insertions, 1 deletions
diff --git a/lib/compress.js b/lib/compress.js index 69394a3d..dfe444ad 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -6831,7 +6831,7 @@ merge(Compressor.prototype, { return arg; })).optimize(compressor); node = maintain_this_binding(compressor, compressor.parent(), compressor.self(), node); - if (replacing || best_of(compressor, self, node) === node) { + if (replacing || best_of_expression(node, self) === node) { refs.forEach(function(ref) { var def = ref.definition(); def.references.push(ref); diff --git a/test/compress/functions.js b/test/compress/functions.js index 4d753469..0cd07dda 100644 --- a/test/compress/functions.js +++ b/test/compress/functions.js @@ -4829,3 +4829,27 @@ issue_4159: { } expect_stdout: "42 42" } + +direct_inline: { + options = { + inline: true, + reduce_vars: true, + unused: true, + } + input: { + function f(a, b) { + function g(c) { + return c >> 1; + } + return g(a) + g(b); + } + console.log(f(13, 31)); + } + expect: { + function f(a, b) { + return (a >> 1) + (b >> 1); + } + console.log(f(13, 31)); + } + expect_stdout: "21" +} |