diff --git a/lib/compress/inline.js b/lib/compress/inline.js index fea4be2a4..eec4c5c91 100644 --- a/lib/compress/inline.js +++ b/lib/compress/inline.js @@ -335,6 +335,7 @@ export function inline_into_call(self, fn, compressor) { fn.argnames.length === 1 && (fn.argnames[0] instanceof AST_SymbolFunarg) && self.args.length < 2 + && !(self.args[0] instanceof AST_Expansion) && returned instanceof AST_SymbolRef && returned.name === fn.argnames[0].name ) { diff --git a/test/compress/identity.js b/test/compress/identity.js index 49f2b1045..3d00f1164 100644 --- a/test/compress/identity.js +++ b/test/compress/identity.js @@ -249,3 +249,18 @@ inline_identity_dont_lose_this_when_arg: { } } +inline_trivial_fns_unless_arg_is_expansion: { + options = { + toplevel: true, + inline: true, + } + input: { + function n (n) { + return n; + } + (function(...o) { + const c=n(...o);console.log(c) + })("PASS"); + } + expect_stdout: "PASS" +}