66 lines
1.1 KiB
Plaintext
66 lines
1.1 KiB
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[]
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::message.adoc[]
|
|
|
|
include::../highlighting.adoc[]
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::../comments-and-links.adoc[]
|
|
endif::env-github,rspecator-view[]
|