Unlike strongly typed languages, JavaScript does not enforce a return type on a function. This means that different paths through a function can return different types of values, which can be very confusing to the user and significantly harder to maintain. In particular a function, in JavaScript, will return ``++undefined++`` in any of the following cases: * It exits without a ``++return++`` statement. * It executes a ``++return++`` with no value. This rule verifies that return values are either always or never specified for each path through a function.