1 | import baseRange from './_baseRange';
|
2 | import isIterateeCall from './_isIterateeCall';
|
3 | import toNumber from './toNumber';
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 | function createRange(fromRight) {
|
13 | return function(start, end, step) {
|
14 | if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {
|
15 | end = step = undefined;
|
16 | }
|
17 |
|
18 | start = toNumber(start);
|
19 | start = start === start ? start : 0;
|
20 | if (end === undefined) {
|
21 | end = start;
|
22 | start = 0;
|
23 | } else {
|
24 | end = toNumber(end) || 0;
|
25 | }
|
26 | step = step === undefined ? (start < end ? 1 : -1) : (toNumber(step) || 0);
|
27 | return baseRange(start, end, step, fromRight);
|
28 | };
|
29 | }
|
30 |
|
31 | export default createRange;
|