24
25
public static addRange(range: OffsetRange, sortedRanges: OffsetRange[]): void {
27
>
while (i < sortedRanges.length && sortedRanges[i].endExclusive < range.start) {
28
i++;
29
}
31
>
while (j < sortedRanges.length && sortedRanges[j].start <= range.endExclusive) {
32
j++;
33
}
35
>
sortedRanges.splice(i, 0, range);
36
>
} else {
37
const start = Math.min(range.start, sortedRanges[i].start);
38
const end = Math.max(range.endExclusive, sortedRanges[j - 1].endExclusive);
39
sortedRanges.splice(i, j - i, new OffsetRange(start, end));
40
}
42
43
public static tryCreate(start: number, endExclusive: number): OffsetRange | undefined {