docs: function (list, x, prop) {
              var val, mid, low = 0, high = list.length;
              while (low < high) {
                  mid = Math.floor((low + high) / 2);
                  val = prop ? list[mid][prop] : list[mid];
                  if (val < x) {
                      low = mid + 1;
                  } else {
                      high = mid;
                  }
              }
              return low;
          }