docs: function range(start, end, step) {
    const [s, e] = end == null ? [0, start] : [start, end];
    const t = step || (s > e ? -1 : 1);
  
    // This aborts the production if a bad step is given; i.e., if the step is going in a direction that does not lead
    // to the end. This prevents the function from never reaching the end value and trying to create an infinite range.
    if (Math.sign(t) !== Math.sign(e - s)) {
      return [s];
    }
  
    const result = [];
    for (let i = s; t < 0 ? i > e : i < e; i += t) {
      result.push(i);
    }
    return result;
  }