49 lines
849 B
Plaintext
49 lines
849 B
Plaintext
Jump statements (``++return++``, ``++break++`` and ``++continue++``) and ``++throw++`` expressions move control flow out of the current code block. So any statements that come after a jump are dead code.
|
|
|
|
== Noncompliant Code Example
|
|
|
|
----
|
|
function fun(a) {
|
|
var i = 10;
|
|
return i + a;
|
|
i++; // Noncompliant; this is never executed
|
|
}
|
|
----
|
|
|
|
== Compliant Solution
|
|
|
|
----
|
|
function fun(int a) {
|
|
var i = 10;
|
|
return i + a;
|
|
}
|
|
----
|
|
|
|
== Exceptions
|
|
|
|
This rule ignores unreachable ``++break++`` statements in ``++switch++`` clauses.
|
|
|
|
|
|
----
|
|
switch (x) {
|
|
case 42:
|
|
return 43;
|
|
break; // Compliant
|
|
default:
|
|
doSomething();
|
|
}
|
|
----
|
|
|
|
Hoisted variables declarations without initialization are always considered reachable.
|
|
|
|
----
|
|
function bar() {
|
|
return x = function() {
|
|
x.foo = 42;
|
|
}
|
|
var x;
|
|
}
|
|
----
|
|
|
|
include::../see.adoc[]
|