code: function assignClosest(flatCoordinates, offset1, offset2, stride, x, y, closestPoint) {
    const x1 = flatCoordinates[offset1];
    const y1 = flatCoordinates[offset1 + 1];
    const dx = flatCoordinates[offset2] - x1;
    const dy = flatCoordinates[offset2 + 1] - y1;
    let offset;
    if (dx === 0 && dy === 0) {
      offset = offset1;
    } else {
      const t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);
      if (t > 1) {
        offset = offset2;
      } else if (t > 0) {
        for (let i = 0; i < stride; ++i) {
          closestPoint[i] = lerp(flatCoordinates[offset1 + i],
            flatCoordinates[offset2 + i], t);
        }
        closestPoint.length = stride;
        return;
      } else {
        offset = offset1;
      }
    }
    for (let i = 0; i < stride; ++i) {
      closestPoint[i] = flatCoordinates[offset + i];
    }
    closestPoint.length = stride;
  }
docs: Returns the point on the 2D line segment flatCoordinates[offset1] to
  flatCoordinates[offset2] that is closest to the point (x, y).  Extra
  dimensions are linearly interpolated.
  @param {Array<number>} flatCoordinates Flat coordinates.
  @param {number} offset1 Offset 1.
  @param {number} offset2 Offset 2.
  @param {number} stride Stride.
  @param {number} x X.
  @param {number} y Y.
  @param {Array<number>} closestPoint Closest point.