docs: function(loopable, fn, thisArg, reverse) {
  		var i, len, keys;
  		if (helpers.isArray(loopable)) {
  			len = loopable.length;
  			if (reverse) {
  				for (i = len - 1; i >= 0; i--) {
  					fn.call(thisArg, loopable[i], i);
  				}
  			} else {
  				for (i = 0; i < len; i++) {
  					fn.call(thisArg, loopable[i], i);
  				}
  			}
  		} else if (helpers.isObject(loopable)) {
  			keys = Object.keys(loopable);
  			len = keys.length;
  			for (i = 0; i < len; i++) {
  				fn.call(thisArg, loopable[keys[i]], keys[i]);
  			}
  		}
  	}