SonarSource / eslint-plugin-sonarjs

SonarJS rules for ESLint

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

`prefer-single-boolean-return` clarification

zloirock opened this issue · comments

After #324 this code reports sonarjs/prefer-single-boolean-return:

function isTemplateObject(value) {
  if (!isFrozenStringArray(value, true)) return false;
  var raw = value.raw;
  if (raw.length !== value.length || !isFrozenStringArray(raw, false)) return false;
  return true;
}

How should I rewrite it (getting value.raw is an observable operation)?

I am not sure what is observable operation, but how about this?

function isTemplateObject(value) {
  if (!isFrozenStringArray(value, true)) return false;
  var raw = value.raw;
  return raw.length === value.length && isFrozenStringArray(raw, false);
}

Ah, thanks, I thought that the first if is also taken into account and recommended something like

function isTemplateObject(value) {
  var raw;
  return isFrozenStringArray(value, true)
    && (raw = value.raw).length === value.length
    && isFrozenStringArray(raw, false);
}

@B2o5T her case is correct since the condition is inverted.

Oops sorry, my mistake 😄