code: function reduceOwnProperties(map, callback, initial) {
          var result = initial;
          for (var key in map)
              if (hasOwnProperty.call(map, key)) {
                  result = callback(result, map[key], String(key));
              }
          return result;
      }
docs: Reduce the properties defined on a map-like (but not from its prototype chain).
  
  NOTE: This is intended for use with MapLike<T> objects. For Map<T> objects, use
  reduceProperties instead as it offers better performance.
  
  @param map The map-like to reduce
  @param callback An aggregation function that is called for each entry in the map
  @param initial The initial value for the reduction.