time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

_baseRange.js (850B)


      1 /* Built-in method references for those with the same name as other `lodash` methods. */
      2 var nativeCeil = Math.ceil,
      3     nativeMax = Math.max;
      4 
      5 /**
      6  * The base implementation of `_.range` and `_.rangeRight` which doesn't
      7  * coerce arguments.
      8  *
      9  * @private
     10  * @param {number} start The start of the range.
     11  * @param {number} end The end of the range.
     12  * @param {number} step The value to increment or decrement by.
     13  * @param {boolean} [fromRight] Specify iterating from right to left.
     14  * @returns {Array} Returns the range of numbers.
     15  */
     16 function baseRange(start, end, step, fromRight) {
     17   var index = -1,
     18       length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),
     19       result = Array(length);
     20 
     21   while (length--) {
     22     result[fromRight ? length : ++index] = start;
     23     start += step;
     24   }
     25   return result;
     26 }
     27 
     28 module.exports = baseRange;