function baseFor(object, iteratee, keysFunc) {
      var index = -1,
          iterable = toObject(object),
          props = keysFunc(object),
          length = props.length;

      while (++index < length) {
        var key = props[index];
        if (iteratee(iterable[key], key, iterable) === false) {
          break;
        }
      }
      return object;
    }
The base implementation of `baseForIn` and `baseForOwn` which iterates
over `object` properties returned by `keysFunc` invoking `iteratee` for
each property. Iterator functions may exit iteration early by explicitly
returning `false`.

@private
@param {Object} object The object to iterate over.
@param {Function} iteratee The function invoked per iteration.
@param {Function} keysFunc The function to get the keys of `object`.
@returns {Object} Returns `object`.