function getFirstMissingIndex(iFrom, iTo) {
			const iStep = Math.sign(iTo - iFrom);
			for (let i = iFrom; i !== iTo; i += iStep) {
				if (aElements[i] === undefined || fnIsMissing?.(aElements[i])) {
					return i;
				}
			}

			return -1;
		}
Calculates the index range to be read for the given start, length and prefetch length.
Checks if <code>aElements</code> entries are available for at least half the prefetch length
left and right to it. If not, the full prefetch length is added to this side, starting at the first missing
index.

@param {any[]} aElements
  The array of available elements
@param {number} iStart
  The start index for the data request
@param {number} iLength
  The number of requested entries
@param {number} iPrefetchLength
  The number of entries to prefetch before and after the given range; <code>Infinity</code>
  is supported
@param {function(any):boolean} [fnIsMissing]
  A function determining whether the given element is missing although it is not <code>undefined</code>
@returns {object}
  An object with a member <code>start</code> for the start index for the next read and
  <code>length</code> for the number of entries to be read

@private