Eslint: Se esperaba { después de la condición 'while'

Hice un fork de Formatting toolbar para añadir algunas cosas de formato muy personalizadas.

Tiene discourse-formatting-toolbar/assets/javascripts/lib/discourse-markdown/formatting_bbcode.js at master · MonDiscourse/discourse-formatting-toolbar · GitHub

Mi código se ve así:

function replaceTitle(text) {
  while (
    text !==
    (text = text.replace(/\[title\](.+?)\[\/title\]/gi, function (match, p) {
      return `<div class="job-title">${p}</div>`;
    }))
  );
  return text;
}

Pero eslint se queja:

    9:3  error  Se esperaba { después de la condición 'while'  curly

Intenté mover ese while y lo que sigue a una sola línea (el formato aquí lo aplican vscode y generalmente funciona con los otros plugins que administro), pero eso tampoco ayudó.

¿Alguien puede darme una pista?

EDIT: Bueno, resulta que en realidad no necesito esa función, pero aún así me gustaría saber cuál es el problema.

La razón de la advertencia de eslint es que necesitas llaves rodeando tu return text;

Es decir, debería verse así:

  while (
    text !==
    (text = text.replace(/\[title\](.+?)\[\/title\]/gi, function (match, p) {
      return `<div class="job-title">${p}</div>`;
    }))
  ) {
    return text;
  }

Aunque JavaScript permite omitir las llaves, ESLint exige un estilo de llaves consistente.

Más detalles sobre la regla curly aquí: