diff --git a/src/mol-data/int/impl/sorted-array.ts b/src/mol-data/int/impl/sorted-array.ts
index 9aed1302597de299afe4d3cd3c83976e1429d9c7..f0eecf725a023fcf3166d87377a4b620fb8186a2 100644
--- a/src/mol-data/int/impl/sorted-array.ts
+++ b/src/mol-data/int/impl/sorted-array.ts
@@ -188,17 +188,13 @@ export function union(a: Nums, b: Nums): Nums {
if (commonCount === lenA) return b;
const indices = new Int32Array(lenA + lenB - commonCount);
- let offset = 0;
+ let i = 0, j = 0, offset = 0;
// insert the "prefixes"
- let k = 0;
- for (k = 0; k < startI; k++) indices[offset++] = a[k];
- k = 0;
- while (k <= startJ && a[startI] > b[k]) indices[offset++] = b[k++];
+ for (i = 0; i < startI; i++) indices[offset++] = a[i];
+ while (j < endJ && a[startI] > b[j]) indices[offset++] = b[j++];
// insert the common part
- let i = startI;
- let j = startJ;
while (i < endI && j < endJ) {
const x = a[i], y = b[j];
if (x < y) { indices[offset++] = x; i++; }