function readCellBoundary(cellBoundary, geoJsonCoords, closedLoop) {
    const numVerts = C.getValue(cellBoundary, 'i32');
    // Note that though numVerts is an int, the coordinate doubles have to be
    // aligned to 8 bytes, hence the 8-byte offset here
    const vertsPos = cellBoundary + SZ_DBL;
    const out = [];
    // Support [lng, lat] pairs if GeoJSON is specified
    const readCoord = geoJsonCoords ? readLatLngGeoJson : readLatLng;
    for (let i = 0; i < numVerts * 2; i += 2) {
        out.push(readCoord(vertsPos + SZ_DBL * i));
    }
    if (closedLoop) {
        // Close loop if GeoJSON is specified
        out.push(out[0]);
    }
    return out;
}
Read the CellBoundary structure into a list of geo coordinate pairs
@private
@param {number}  cellBoundary       C pointer to CellBoundary struct
@param {boolean} [geoJsonCoords]    Whether to provide GeoJSON coordinate order: [lng, lat]
@param {boolean} [closedLoop]       Whether to close the loop
@return {CoordPair[]}               Array of geo coordinate pairs