diff --git a/src/generation/generate.rs b/src/generation/generate.rs index 7fb3a332f..0cc27b50c 100644 --- a/src/generation/generate.rs +++ b/src/generation/generate.rs @@ -8854,13 +8854,13 @@ fn gen_conditional_brace_body<'a>(opts: GenConditionalBraceBodyOptions<'a>, cont items })); } else { - items.extend(ir_helpers::with_indent({ + items.extend(ir_helpers::with_indent(ir_helpers::new_line_group({ let mut items = PrintItems::new(); let body_node_range = opts.body_node.range(); items.extend(gen_node(opts.body_node, context)); items.extend(gen_trailing_comments(&body_node_range, context)); items - })); + }))); } items.push_line_and_column(end_statements_lc); diff --git a/tests/specs/deno/Deno_ConditionalExpressionStatementBody.txt b/tests/specs/deno/Deno_ConditionalExpressionStatementBody.txt new file mode 100644 index 000000000..cb9a27eb0 --- /dev/null +++ b/tests/specs/deno/Deno_ConditionalExpressionStatementBody.txt @@ -0,0 +1,18 @@ +~~ deno: true ~~ +== should keep a conditional expression body stable when braces are added (not re-wrap the ternary) == +function w(n) { + if ("play" === n) { + var w = 1; + play({ ids: [b] }); + } else if ("queue" === n) playing() ? queue({ ids: [b] }) : queue({ ids: [b] }); +} + +[expect] +function w(n) { + if ("play" === n) { + var w = 1; + play({ ids: [b] }); + } else if ("queue" === n) { + playing() ? queue({ ids: [b] }) : queue({ ids: [b] }); + } +}