code: function(n, indexMapFn) {
      var arr, result;
      for(var i = 0; i < n; i++) {
        result = indexMapFn.call(n, i);
        if (isDefined(result)) {
          if (!arr) {
            arr = [];
          }
          arr.push(result);
        }
      }
      return arr;
    }
docs: *
  @method times(indexMapFn)
  @returns Mixed
  @short Calls `indexMapFn` a number of times equivalent to the number.
  @extra Any non-undefined return values of `indexMapFn` will be collected
  and returned in an array.
  
  @callback indexMapFn
  
  i   The index of the current iteration.
  
  @example
  
  (8).times(logHello) -> logs "hello" 8 times
  (7).times(function(n) {
  return Math.pow(2, n);
  });
  
  @callbackParam {number} i
  @callbackReturns {any} indexMapFn
  @param {indexMapFn} indexMapFn
  
  *