summaryrefslogtreecommitdiff
path: root/tools/eslint/lib/code-path-analysis/fork-context.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/eslint/lib/code-path-analysis/fork-context.js')
-rw-r--r--tools/eslint/lib/code-path-analysis/fork-context.js6
1 files changed, 6 insertions, 0 deletions
diff --git a/tools/eslint/lib/code-path-analysis/fork-context.js b/tools/eslint/lib/code-path-analysis/fork-context.js
index 8716ddd6ff..af82e68e0c 100644
--- a/tools/eslint/lib/code-path-analysis/fork-context.js
+++ b/tools/eslint/lib/code-path-analysis/fork-context.js
@@ -47,6 +47,7 @@ function isReachable(segment) {
*/
function makeSegments(context, begin, end, create) {
var list = context.segmentsList;
+
if (begin < 0) {
begin = list.length + begin;
}
@@ -55,6 +56,7 @@ function makeSegments(context, begin, end, create) {
}
var segments = [];
+
for (var i = 0; i < context.count; ++i) {
var allPrevSegments = [];
@@ -81,6 +83,7 @@ function makeSegments(context, begin, end, create) {
function mergeExtraSegments(context, segments) {
while (segments.length > context.count) {
var merged = [];
+
for (var i = 0, length = segments.length / 2 | 0; i < length; ++i) {
merged.push(CodePathSegment.newNext(
context.idGenerator.next(),
@@ -120,6 +123,7 @@ ForkContext.prototype = {
*/
get head() {
var list = this.segmentsList;
+
return list.length === 0 ? [] : list[list.length - 1];
},
@@ -137,6 +141,7 @@ ForkContext.prototype = {
*/
get reachable() {
var segments = this.head;
+
return segments.length > 0 && segments.some(isReachable);
},
@@ -212,6 +217,7 @@ ForkContext.prototype = {
assert(context.count === this.count);
var source = context.segmentsList;
+
for (var i = 0; i < source.length; ++i) {
this.segmentsList.push(source[i]);
}