diff --git a/crates/oxc_prettier/src/format/mod.rs b/crates/oxc_prettier/src/format/mod.rs index e4a017d71..43eb9cf85 100644 --- a/crates/oxc_prettier/src/format/mod.rs +++ b/crates/oxc_prettier/src/format/mod.rs @@ -355,7 +355,11 @@ impl<'a> Format<'a> for ReturnStatement<'a> { impl<'a> Format<'a> for LabeledStatement<'a> { fn format(&self, p: &mut Prettier<'a>) -> Doc<'a> { - Doc::Line + if matches!(self.body, Statement::EmptyStatement(_)) { + return array!(p, self.label.format(p), ss!(":;")); + } + + array!(p, self.label.format(p), ss!(": "), format!(p, self.body)) } } diff --git a/tasks/prettier_conformance/prettier.snap.md b/tasks/prettier_conformance/prettier.snap.md index 01e8439a6..a398c56b4 100644 --- a/tasks/prettier_conformance/prettier.snap.md +++ b/tasks/prettier_conformance/prettier.snap.md @@ -1,4 +1,4 @@ -Compatibility: 63/881 (7.15%) +Compatibility: 66/881 (7.49%) # Failed @@ -653,9 +653,7 @@ Compatibility: 63/881 (7.15%) * import-reflection/valid-module-as-default-binding.mjs ### label -* label/block-statement-and-regexp.js * label/comment.js -* label/empty_label.js ### last-argument-expansion * last-argument-expansion/arrow.js @@ -981,9 +979,6 @@ Compatibility: 63/881 (7.15%) * shebang/shebang-newline.js * shebang/shebang.js -### sloppy-mode -* sloppy-mode/labeled-function-declaration.js - ### source-phase-imports * source-phase-imports/default-binding.js * source-phase-imports/import-source-attributes-declaration.js