diff --git a/lib/compress.js b/lib/compress.js index 673426bfd0..6db9518729 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -8787,7 +8787,7 @@ merge(Compressor.prototype, { var can_inline = can_drop && compressor.option("inline") && !self.is_expr_pure(compressor); if (can_inline && stat instanceof AST_Return) { var value = stat.value; - if (exp === fn && (!value || value.is_constant_expression()) && safe_from_await_yield(fn)) { + if (exp === fn && !fn.name && (!value || value.is_constant_expression()) && safe_from_await_yield(fn)) { return make_sequence(self, convert_args(value)).optimize(compressor); } } diff --git a/test/compress/default-values.js b/test/compress/default-values.js index d4e51750f6..2e85866e0e 100644 --- a/test/compress/default-values.js +++ b/test/compress/default-values.js @@ -1661,3 +1661,23 @@ issue_4588_2_evaluate: { expect_stdout: "1" node_version: ">=6" } + +issue_4817: { + options = { + ie8: true, + inline: true, + unused: true, + } + input: { + (function f(a = console.log(typeof f)) { + return 42; + })(); + } + expect: { + (function f(a = console.log(typeof f)) { + return 42; + })(); + } + expect_stdout: "function" + node_version: ">=6" +}