ut2 1.5.0 → 1.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/ut2.js +31 -22
- package/dist/ut2.js.map +1 -1
- package/dist/ut2.min.js +1 -1
- package/dist/ut2.min.js.map +1 -1
- package/es/chunk.js +2 -1
- package/es/inRange.js +2 -1
- package/es/internals/decimalAdjust.js +2 -1
- package/es/internals/helpers.js +1 -1
- package/es/internals/native.js +10 -1
- package/es/internals/root.js +6 -4
- package/es/isInteger.js +2 -2
- package/es/isSafeInteger.js +2 -2
- package/es/random.js +4 -3
- package/es/randomInt.js +4 -3
- package/es/times.js +2 -2
- package/es/unzip.js +2 -1
- package/lib/chunk.js +2 -1
- package/lib/inRange.js +2 -1
- package/lib/internals/decimalAdjust.js +2 -1
- package/lib/internals/helpers.js +1 -1
- package/lib/internals/native.js +9 -0
- package/lib/internals/root.js +6 -4
- package/lib/isInteger.js +1 -1
- package/lib/isSafeInteger.js +1 -1
- package/lib/random.js +4 -3
- package/lib/randomInt.js +4 -3
- package/lib/times.js +1 -1
- package/lib/unzip.js +2 -1
- package/package.json +2 -2
- package/types/internals/native.d.ts +9 -0
- package/types/internals/root.d.ts +1 -1
package/es/internals/helpers.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { objectProtoToString, argumentsTag, functionProtoToString } from './native.js';
|
|
2
2
|
|
|
3
|
-
var VERSION = "1.5.
|
|
3
|
+
var VERSION = "1.5.2";
|
|
4
4
|
var supportedArgumentsType = objectProtoToString.call((function () { return arguments; })()) === argumentsTag;
|
|
5
5
|
var FUNC_ERROR_TEXT = 'Expected a function';
|
|
6
6
|
function toSource(func) {
|
package/es/internals/native.js
CHANGED
|
@@ -13,9 +13,18 @@ var symbolToStringTag = symbolExisted ? Symbol.toStringTag : undefined;
|
|
|
13
13
|
var arrayProto = Array.prototype;
|
|
14
14
|
var arrayProtoSlice = arrayProto.slice;
|
|
15
15
|
var arrayProtoAt = arrayProto.at;
|
|
16
|
+
var mathMin = Math.min;
|
|
17
|
+
var mathMax = Math.max;
|
|
18
|
+
var mathRandom = Math.random;
|
|
19
|
+
var mathFloor = Math.floor;
|
|
20
|
+
var mathCeil = Math.ceil;
|
|
21
|
+
var mathAbs = Math.abs;
|
|
16
22
|
var numberIsFinite = Number.isFinite;
|
|
17
23
|
var numberIsInteger = Number.isInteger;
|
|
18
24
|
var numberIsSafeInteger = Number.isSafeInteger;
|
|
25
|
+
var globalThisExisted = typeof globalThis === 'object' && globalThis;
|
|
26
|
+
var globalExisted = typeof global === 'object' && global;
|
|
27
|
+
var selfExisted = typeof self === 'object' && self;
|
|
19
28
|
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
|
|
20
29
|
var MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991;
|
|
21
30
|
var MAX_ARRAY_LENGTH = 4294967295;
|
|
@@ -41,4 +50,4 @@ var promiseTag = '[object Promise]';
|
|
|
41
50
|
var setTag = '[object Set]';
|
|
42
51
|
var weakMapTag = '[object WeakMap]';
|
|
43
52
|
|
|
44
|
-
export { MAX_ARRAY_LENGTH, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, argumentsTag, arrayBufferTag, arrayProto, arrayProtoAt, arrayProtoSlice, arrayTag, blobTag, booleanTag, dataViewTag, dateTag, domExceptionTag, errorTag, functionProto, functionProtoToString, functionTags, mapTag, numberIsFinite, numberIsInteger, numberIsSafeInteger, numberTag, objectGetOwnPropertySymbols, objectGetPrototypeOf, objectKeys, objectProto, objectProtoHasOwnProperty, objectProtoPropertyIsEnumerable, objectProtoToString, objectTag, promiseTag, regExpTag, setTag, stringTag, symbolProto, symbolTag, symbolToStringTag, typedArrayTags, weakMapTag, weakSetTag };
|
|
53
|
+
export { MAX_ARRAY_LENGTH, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, argumentsTag, arrayBufferTag, arrayProto, arrayProtoAt, arrayProtoSlice, arrayTag, blobTag, booleanTag, dataViewTag, dateTag, domExceptionTag, errorTag, functionProto, functionProtoToString, functionTags, globalExisted, globalThisExisted, mapTag, mathAbs, mathCeil, mathFloor, mathMax, mathMin, mathRandom, numberIsFinite, numberIsInteger, numberIsSafeInteger, numberTag, objectGetOwnPropertySymbols, objectGetPrototypeOf, objectKeys, objectProto, objectProtoHasOwnProperty, objectProtoPropertyIsEnumerable, objectProtoToString, objectTag, promiseTag, regExpTag, selfExisted, setTag, stringTag, symbolProto, symbolTag, symbolToStringTag, typedArrayTags, weakMapTag, weakSetTag };
|
package/es/internals/root.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
var
|
|
1
|
+
import { globalThisExisted, globalExisted, selfExisted } from './native.js';
|
|
2
|
+
|
|
3
|
+
var freeGlobalThis = globalThisExisted && globalThis.Object === Object && globalThis;
|
|
4
|
+
var freeGlobal = globalExisted && global.Object === Object && global;
|
|
5
|
+
var freeSelf = selfExisted && self.Object === Object && self;
|
|
6
|
+
var root = freeGlobalThis || freeGlobal || freeSelf || Function('return this')();
|
|
5
7
|
var root$1 = root;
|
|
6
8
|
|
|
7
9
|
export { root$1 as default };
|
package/es/isInteger.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { numberIsInteger } from './internals/native.js';
|
|
1
|
+
import { numberIsInteger, mathFloor } from './internals/native.js';
|
|
2
2
|
import isFinite from './isFinite.js';
|
|
3
3
|
|
|
4
4
|
function isInteger(value) {
|
|
5
|
-
return numberIsInteger ? numberIsInteger(value) : isFinite(value) &&
|
|
5
|
+
return numberIsInteger ? numberIsInteger(value) : isFinite(value) && mathFloor(value) === value;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
export { isInteger as default };
|
package/es/isSafeInteger.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { numberIsSafeInteger, MAX_SAFE_INTEGER } from './internals/native.js';
|
|
1
|
+
import { numberIsSafeInteger, mathAbs, MAX_SAFE_INTEGER } from './internals/native.js';
|
|
2
2
|
import isInteger from './isInteger.js';
|
|
3
3
|
|
|
4
4
|
function isSafeInteger(value) {
|
|
5
|
-
return numberIsSafeInteger ? numberIsSafeInteger(value) : isInteger(value) &&
|
|
5
|
+
return numberIsSafeInteger ? numberIsSafeInteger(value) : isInteger(value) && mathAbs(value) <= MAX_SAFE_INTEGER;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
export { isSafeInteger as default };
|
package/es/random.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { mathMin, mathMax, mathRandom } from './internals/native.js';
|
|
1
2
|
import toFinite from './toFinite.js';
|
|
2
3
|
|
|
3
4
|
function random(lower, upper) {
|
|
@@ -5,9 +6,9 @@ function random(lower, upper) {
|
|
|
5
6
|
if (upper === void 0) { upper = 1; }
|
|
6
7
|
lower = toFinite(lower);
|
|
7
8
|
upper = toFinite(upper);
|
|
8
|
-
var min =
|
|
9
|
-
var max =
|
|
10
|
-
return min +
|
|
9
|
+
var min = mathMin(lower, upper);
|
|
10
|
+
var max = mathMax(lower, upper);
|
|
11
|
+
return min + mathRandom() * (max - min);
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
export { random as default };
|
package/es/randomInt.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { mathCeil, mathMin, mathFloor, mathMax, mathRandom } from './internals/native.js';
|
|
1
2
|
import toFinite from './toFinite.js';
|
|
2
3
|
|
|
3
4
|
function randomInt(lower, upper) {
|
|
@@ -5,14 +6,14 @@ function randomInt(lower, upper) {
|
|
|
5
6
|
if (upper === void 0) { upper = 1; }
|
|
6
7
|
lower = toFinite(lower);
|
|
7
8
|
upper = toFinite(upper);
|
|
8
|
-
var min =
|
|
9
|
-
var max =
|
|
9
|
+
var min = mathCeil(mathMin(lower, upper) || 0);
|
|
10
|
+
var max = mathFloor(mathMax(lower, upper) || 0);
|
|
10
11
|
if (min > max) {
|
|
11
12
|
var temp = min;
|
|
12
13
|
min = max;
|
|
13
14
|
max = temp;
|
|
14
15
|
}
|
|
15
|
-
return
|
|
16
|
+
return mathFloor(min + mathRandom() * (max - min + 1));
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
export { randomInt as default };
|
package/es/times.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import identity from './identity.js';
|
|
2
|
-
import { MAX_SAFE_INTEGER, MAX_ARRAY_LENGTH } from './internals/native.js';
|
|
2
|
+
import { MAX_SAFE_INTEGER, mathMin, mathFloor, MAX_ARRAY_LENGTH } from './internals/native.js';
|
|
3
3
|
import isInteger from './isInteger.js';
|
|
4
4
|
import isFinite from './isFinite.js';
|
|
5
5
|
|
|
@@ -9,7 +9,7 @@ function times(n, iteratee) {
|
|
|
9
9
|
return [];
|
|
10
10
|
}
|
|
11
11
|
var index = 0;
|
|
12
|
-
var length =
|
|
12
|
+
var length = mathMin(isInteger(n) ? n : mathFloor(isFinite(n) ? n : 0), MAX_ARRAY_LENGTH);
|
|
13
13
|
var result = Array(length);
|
|
14
14
|
var func = typeof iteratee === 'function' ? iteratee : identity;
|
|
15
15
|
while (index < length) {
|
package/es/unzip.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { mathMax } from './internals/native.js';
|
|
1
2
|
import isArray from './isArray.js';
|
|
2
3
|
import isArrayLikeObject from './isArrayLikeObject.js';
|
|
3
4
|
|
|
@@ -8,7 +9,7 @@ function unzip(array) {
|
|
|
8
9
|
var length = 0;
|
|
9
10
|
array = array.filter(function (group) {
|
|
10
11
|
if (isArrayLikeObject(group)) {
|
|
11
|
-
length =
|
|
12
|
+
length = mathMax(group.length, length);
|
|
12
13
|
return true;
|
|
13
14
|
}
|
|
14
15
|
return false;
|
package/lib/chunk.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var native = require('./internals/native.js');
|
|
3
4
|
var isArray = require('./isArray.js');
|
|
4
5
|
var toLength = require('./toLength.js');
|
|
5
6
|
|
|
@@ -10,7 +11,7 @@ function chunk(array, size) {
|
|
|
10
11
|
return [];
|
|
11
12
|
}
|
|
12
13
|
var length = array.length;
|
|
13
|
-
var result = Array(
|
|
14
|
+
var result = Array(native.mathCeil(length / size));
|
|
14
15
|
var resIndex = 0, index = 0;
|
|
15
16
|
while (index < length) {
|
|
16
17
|
result[resIndex++] = array.slice(index, (index += size));
|
package/lib/inRange.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var native = require('./internals/native.js');
|
|
3
4
|
var toNumber = require('./toNumber.js');
|
|
4
5
|
|
|
5
6
|
function inRange(number, start, end) {
|
|
@@ -7,7 +8,7 @@ function inRange(number, start, end) {
|
|
|
7
8
|
number = toNumber(number);
|
|
8
9
|
start = toNumber(start);
|
|
9
10
|
end = toNumber(end);
|
|
10
|
-
return number >=
|
|
11
|
+
return number >= native.mathMin(start, end) && number < native.mathMax(start, end);
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
module.exports = inRange;
|
|
@@ -4,12 +4,13 @@ var isFinite = require('../isFinite.js');
|
|
|
4
4
|
var toInteger = require('../toInteger.js');
|
|
5
5
|
var toNumber = require('../toNumber.js');
|
|
6
6
|
var toString = require('../toString.js');
|
|
7
|
+
var native = require('./native.js');
|
|
7
8
|
|
|
8
9
|
function decimalAdjust(type, value, precision) {
|
|
9
10
|
if (precision === void 0) { precision = 0; }
|
|
10
11
|
var func = Math[type];
|
|
11
12
|
value = toNumber(value);
|
|
12
|
-
precision =
|
|
13
|
+
precision = native.mathMin(toInteger(precision), 292);
|
|
13
14
|
if (precision === 0 || !isFinite(value)) {
|
|
14
15
|
return func(value);
|
|
15
16
|
}
|
package/lib/internals/helpers.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var native = require('./native.js');
|
|
4
4
|
|
|
5
|
-
exports.VERSION = "1.5.
|
|
5
|
+
exports.VERSION = "1.5.2";
|
|
6
6
|
exports.supportedArgumentsType = native.objectProtoToString.call((function () { return arguments; })()) === native.argumentsTag;
|
|
7
7
|
exports.FUNC_ERROR_TEXT = 'Expected a function';
|
|
8
8
|
function toSource(func) {
|
package/lib/internals/native.js
CHANGED
|
@@ -15,9 +15,18 @@ exports.symbolToStringTag = symbolExisted ? Symbol.toStringTag : undefined;
|
|
|
15
15
|
exports.arrayProto = Array.prototype;
|
|
16
16
|
exports.arrayProtoSlice = exports.arrayProto.slice;
|
|
17
17
|
exports.arrayProtoAt = exports.arrayProto.at;
|
|
18
|
+
exports.mathMin = Math.min;
|
|
19
|
+
exports.mathMax = Math.max;
|
|
20
|
+
exports.mathRandom = Math.random;
|
|
21
|
+
exports.mathFloor = Math.floor;
|
|
22
|
+
exports.mathCeil = Math.ceil;
|
|
23
|
+
exports.mathAbs = Math.abs;
|
|
18
24
|
exports.numberIsFinite = Number.isFinite;
|
|
19
25
|
exports.numberIsInteger = Number.isInteger;
|
|
20
26
|
exports.numberIsSafeInteger = Number.isSafeInteger;
|
|
27
|
+
exports.globalThisExisted = typeof globalThis === 'object' && globalThis;
|
|
28
|
+
exports.globalExisted = typeof global === 'object' && global;
|
|
29
|
+
exports.selfExisted = typeof self === 'object' && self;
|
|
21
30
|
exports.MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
|
|
22
31
|
exports.MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991;
|
|
23
32
|
exports.MAX_ARRAY_LENGTH = 4294967295;
|
package/lib/internals/root.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
var
|
|
6
|
-
var
|
|
3
|
+
var native = require('./native.js');
|
|
4
|
+
|
|
5
|
+
var freeGlobalThis = native.globalThisExisted && globalThis.Object === Object && globalThis;
|
|
6
|
+
var freeGlobal = native.globalExisted && global.Object === Object && global;
|
|
7
|
+
var freeSelf = native.selfExisted && self.Object === Object && self;
|
|
8
|
+
var root = freeGlobalThis || freeGlobal || freeSelf || Function('return this')();
|
|
7
9
|
var root$1 = root;
|
|
8
10
|
|
|
9
11
|
module.exports = root$1;
|
package/lib/isInteger.js
CHANGED
|
@@ -4,7 +4,7 @@ var native = require('./internals/native.js');
|
|
|
4
4
|
var isFinite = require('./isFinite.js');
|
|
5
5
|
|
|
6
6
|
function isInteger(value) {
|
|
7
|
-
return native.numberIsInteger ? native.numberIsInteger(value) : isFinite(value) &&
|
|
7
|
+
return native.numberIsInteger ? native.numberIsInteger(value) : isFinite(value) && native.mathFloor(value) === value;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
module.exports = isInteger;
|
package/lib/isSafeInteger.js
CHANGED
|
@@ -4,7 +4,7 @@ var native = require('./internals/native.js');
|
|
|
4
4
|
var isInteger = require('./isInteger.js');
|
|
5
5
|
|
|
6
6
|
function isSafeInteger(value) {
|
|
7
|
-
return native.numberIsSafeInteger ? native.numberIsSafeInteger(value) : isInteger(value) &&
|
|
7
|
+
return native.numberIsSafeInteger ? native.numberIsSafeInteger(value) : isInteger(value) && native.mathAbs(value) <= native.MAX_SAFE_INTEGER;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
module.exports = isSafeInteger;
|
package/lib/random.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var native = require('./internals/native.js');
|
|
3
4
|
var toFinite = require('./toFinite.js');
|
|
4
5
|
|
|
5
6
|
function random(lower, upper) {
|
|
@@ -7,9 +8,9 @@ function random(lower, upper) {
|
|
|
7
8
|
if (upper === void 0) { upper = 1; }
|
|
8
9
|
lower = toFinite(lower);
|
|
9
10
|
upper = toFinite(upper);
|
|
10
|
-
var min =
|
|
11
|
-
var max =
|
|
12
|
-
return min +
|
|
11
|
+
var min = native.mathMin(lower, upper);
|
|
12
|
+
var max = native.mathMax(lower, upper);
|
|
13
|
+
return min + native.mathRandom() * (max - min);
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
module.exports = random;
|
package/lib/randomInt.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var native = require('./internals/native.js');
|
|
3
4
|
var toFinite = require('./toFinite.js');
|
|
4
5
|
|
|
5
6
|
function randomInt(lower, upper) {
|
|
@@ -7,14 +8,14 @@ function randomInt(lower, upper) {
|
|
|
7
8
|
if (upper === void 0) { upper = 1; }
|
|
8
9
|
lower = toFinite(lower);
|
|
9
10
|
upper = toFinite(upper);
|
|
10
|
-
var min =
|
|
11
|
-
var max =
|
|
11
|
+
var min = native.mathCeil(native.mathMin(lower, upper) || 0);
|
|
12
|
+
var max = native.mathFloor(native.mathMax(lower, upper) || 0);
|
|
12
13
|
if (min > max) {
|
|
13
14
|
var temp = min;
|
|
14
15
|
min = max;
|
|
15
16
|
max = temp;
|
|
16
17
|
}
|
|
17
|
-
return
|
|
18
|
+
return native.mathFloor(min + native.mathRandom() * (max - min + 1));
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
module.exports = randomInt;
|
package/lib/times.js
CHANGED
|
@@ -11,7 +11,7 @@ function times(n, iteratee) {
|
|
|
11
11
|
return [];
|
|
12
12
|
}
|
|
13
13
|
var index = 0;
|
|
14
|
-
var length =
|
|
14
|
+
var length = native.mathMin(isInteger(n) ? n : native.mathFloor(isFinite(n) ? n : 0), native.MAX_ARRAY_LENGTH);
|
|
15
15
|
var result = Array(length);
|
|
16
16
|
var func = typeof iteratee === 'function' ? iteratee : identity;
|
|
17
17
|
while (index < length) {
|
package/lib/unzip.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var native = require('./internals/native.js');
|
|
3
4
|
var isArray = require('./isArray.js');
|
|
4
5
|
var isArrayLikeObject = require('./isArrayLikeObject.js');
|
|
5
6
|
|
|
@@ -10,7 +11,7 @@ function unzip(array) {
|
|
|
10
11
|
var length = 0;
|
|
11
12
|
array = array.filter(function (group) {
|
|
12
13
|
if (isArrayLikeObject(group)) {
|
|
13
|
-
length =
|
|
14
|
+
length = native.mathMax(group.length, length);
|
|
14
15
|
return true;
|
|
15
16
|
}
|
|
16
17
|
return false;
|
package/package.json
CHANGED
|
@@ -15,9 +15,18 @@ export declare const symbolToStringTag: typeof Symbol.toStringTag | undefined;
|
|
|
15
15
|
export declare const arrayProto: any[];
|
|
16
16
|
export declare const arrayProtoSlice: (start?: number | undefined, end?: number | undefined) => any[];
|
|
17
17
|
export declare const arrayProtoAt: (index: number) => any;
|
|
18
|
+
export declare const mathMin: (...values: number[]) => number;
|
|
19
|
+
export declare const mathMax: (...values: number[]) => number;
|
|
20
|
+
export declare const mathRandom: () => number;
|
|
21
|
+
export declare const mathFloor: (x: number) => number;
|
|
22
|
+
export declare const mathCeil: (x: number) => number;
|
|
23
|
+
export declare const mathAbs: (x: number) => number;
|
|
18
24
|
export declare const numberIsFinite: (number: unknown) => boolean;
|
|
19
25
|
export declare const numberIsInteger: (number: unknown) => boolean;
|
|
20
26
|
export declare const numberIsSafeInteger: (number: unknown) => boolean;
|
|
27
|
+
export declare const globalThisExisted: false | typeof globalThis;
|
|
28
|
+
export declare const globalExisted: false | typeof globalThis;
|
|
29
|
+
export declare const selfExisted: false | (Window & typeof globalThis);
|
|
21
30
|
/**
|
|
22
31
|
* 最大安全整数。
|
|
23
32
|
*
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const root:
|
|
1
|
+
declare const root: typeof globalThis;
|
|
2
2
|
export default root;
|