code: function objFilter(callback, thisArg) {
      const dst = [];
      each.call(this, (value, key, src) => {
          const result = callback.call(thisArg, value, key, src);
          if (result === BREAK) return BREAK;
          if (result) {
              dst.push(value);
          }
      });
      return dst;
  }
docs: filter function applied to objects and array's own properties not just indexed contents
  results in array of property values for which function returned true
  property order: index properties first, non-indexed properties in ascii sorted order
  
  @this        array or object
  @param callback  function(value,key,collection) returning value testing true to accumulate
  value in result if BREAK returned then breaks out of loop, returned BREAK value ignored
  @param thisArg if filter is function then what to use for this
  @return {array} of values for which callback returned true