code: function reduceProperties(map, callback, initial) {
          var result = initial;
          for (var key in map) {
              result = callback(result, map[key], String(key));
          }
          return result;
      }
docs: Reduce the properties of a map.
  
  NOTE: This is intended for use with Map<T> objects. For MapLike<T> objects, use
  reduceOwnProperties instead as it offers better runtime safety.
  
  @param map The map to reduce
  @param callback An aggregation function that is called for each entry in the map
  @param initial The initial value for the reduction.