function baseProperty(key) {
  return function(object) {
    return object == null ? undefined : toObject(object)[key];
  };
}
Performs a binary search of `array` to determine the index at which `value`
should be inserted into `array` in order to maintain its sort order.

@private
@param {Array} array The sorted array to inspect.
@param {*} value The value to evaluate.
@param {boolean} [retHighest] Specify returning the highest qualified index.
@returns {number} Returns the index at which `value` should be inserted
 into `array`.