When the last statement of a switch-clause is not a break statement, the control flow "falls" into the next switch-clause. Whilst this is sometimes intentional, it is often a mistake which could lead to some unexpected behaviors. This rule doesn't apply to empty switch-clauses. Indeed those empty switch-clauses allow to specify the same behavior to a group of cases.
The following code snippet illustrates this rule:
switch (param) { case 0: // Compliant case 1: // Compliant break; case 2: // Compliant return; case 3: // Compliant throw new Error(); case 4: // Non-Compliant doSomething(); default: // Compliant doSomethingElse(); }