Files
lodash/.internal/createRange.js
John-David Dalton 6cb3460fce Remove semicolons.
2017-02-05 22:22:04 -08:00

31 lines
840 B
JavaScript

import baseRange from './baseRange.js'
import isIterateeCall from './isIterateeCall.js'
import toFinite from '../toFinite.js'
/**
* Creates a `range` or `rangeRight` function.
*
* @private
* @param {boolean} [fromRight] Specify iterating from right to left.
* @returns {Function} Returns the new range function.
*/
function createRange(fromRight) {
return (start, end, step) => {
if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {
end = step = undefined
}
// Ensure the sign of `-0` is preserved.
start = toFinite(start)
if (end === undefined) {
end = start
start = 0
} else {
end = toFinite(end)
}
step = step === undefined ? (start < end ? 1 : -1) : toFinite(step)
return baseRange(start, end, step, fromRight)
}
}
export default createRange