== Why is this an issue?

The ``++if...else++`` statement is used to make decisions based on the truthiness of a boolean expression, and the ``++if++`` block executes when the expression is truthy, while the ``++else++`` block executes when the expression is falsy.

Wrapping a boolean expression in an ``++if...else++`` statement and returning ``++true++`` or ``++false++`` in the respective blocks is redundant and unnecessary. It can also make the code harder to maintain, as it adds unnecessary lines of code that need to be read and understood. 

[source,javascript,diff-id=1,diff-type=noncompliant]
----
if (expression) {  
  return true;
} else {
  return false;
}
----

Simplify the code and return the boolean expression (or its negation) directly to make the code more concise and easier to read and maintain.

[source,javascript,diff-id=1,diff-type=compliant]
----
return expression; 
----

If the caller expects a boolean and the result of the expression is not a boolean, use double negation for proper conversion.

[source,javascript,diff-id=1,diff-type=compliant]
----
return !!expression;
----

== Resources
=== Documentation

* MDN web docs - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean[Boolean]
* MDN web docs - link:++https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else++[``++if...else++``]
* MDN web docs - link:++https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_NOT#double_not_!!++[Double NOT (``++!!++``)]

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

include::../message.adoc[]

'''
== Comments And Links
(visible only on this page)

include::../comments-and-links.adoc[]

endif::env-github,rspecator-view[]
