ut2 1.2.1 → 1.3.0
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 +36 -35
- package/dist/ut2.js +440 -264
- package/dist/ut2.js.map +1 -1
- package/dist/ut2.min.js +1 -1
- package/dist/ut2.min.js.map +1 -1
- package/es/eq.js +3 -5
- package/es/index.js +30 -29
- package/es/internals/compare.js +23 -6
- package/es/internals/getTag.js +7 -9
- package/es/internals/helpers.js +4 -4
- package/es/internals/native.js +17 -1
- package/es/isArguments.js +1 -3
- package/es/isArrayBuffer.js +1 -3
- package/es/isEqual.js +185 -0
- package/es/isSafeInteger.js +1 -3
- package/es/isTypedArray.js +1 -15
- package/lib/eq.js +3 -5
- package/lib/index.js +60 -58
- package/lib/internals/compare.js +23 -6
- package/lib/internals/getTag.js +6 -8
- package/lib/internals/helpers.js +3 -3
- package/lib/internals/native.js +16 -0
- package/lib/isArguments.js +1 -3
- package/lib/isArrayBuffer.js +1 -3
- package/lib/isEqual.js +187 -0
- package/lib/isSafeInteger.js +1 -3
- package/lib/isTypedArray.js +1 -15
- package/package.json +1 -1
- package/types/difference.d.ts +1 -1
- package/types/eq.d.ts +2 -2
- package/types/index.d.ts +42 -41
- package/types/internals/helpers.d.ts +0 -1
- package/types/internals/native.d.ts +16 -0
- package/types/intersection.d.ts +1 -1
- package/types/isArguments.d.ts +1 -1
- package/types/isArray.d.ts +1 -1
- package/types/isArrayBuffer.d.ts +1 -1
- package/types/isArrayLike.d.ts +1 -1
- package/types/isArrayLikeObject.d.ts +1 -1
- package/types/isBlob.d.ts +1 -1
- package/types/isBoolean.d.ts +1 -1
- package/types/isBuffer.d.ts +1 -1
- package/types/isDataView.d.ts +1 -1
- package/types/isDate.d.ts +1 -1
- package/types/isElement.d.ts +1 -1
- package/types/isEmpty.d.ts +1 -1
- package/types/isEqual.d.ts +44 -0
- package/types/isError.d.ts +1 -1
- package/types/isFinite.d.ts +1 -1
- package/types/isFunction.d.ts +1 -1
- package/types/isInteger.d.ts +1 -1
- package/types/isLength.d.ts +1 -1
- package/types/isMap.d.ts +1 -1
- package/types/isNaN.d.ts +1 -1
- package/types/isNil.d.ts +1 -1
- package/types/isNull.d.ts +1 -1
- package/types/isNumber.d.ts +1 -1
- package/types/isObject.d.ts +1 -1
- package/types/isObjectLike.d.ts +1 -1
- package/types/isPlainObject.d.ts +1 -1
- package/types/isPromiseLike.d.ts +1 -1
- package/types/isRegExp.d.ts +1 -1
- package/types/isSafeInteger.d.ts +1 -1
- package/types/isSet.d.ts +1 -1
- package/types/isString.d.ts +1 -1
- package/types/isSymbol.d.ts +1 -1
- package/types/isTypedArray.d.ts +1 -1
- package/types/isUndefined.d.ts +1 -1
- package/types/isWeakMap.d.ts +1 -1
- package/types/isWeakSet.d.ts +1 -1
- package/types/union.d.ts +1 -1
- package/types/uniq.d.ts +1 -1
- package/types/xor.d.ts +1 -1
- package/es/internals/sameValue.js +0 -10
- package/lib/internals/sameValue.js +0 -12
- package/types/internals/sameValue.d.ts +0 -12
package/dist/ut2.js
CHANGED
|
@@ -18,6 +18,12 @@
|
|
|
18
18
|
var propertyIsEnumerable = objectProto.propertyIsEnumerable;
|
|
19
19
|
var functionToString = Function.prototype.toString;
|
|
20
20
|
var objectCtorString = functionToString.call(Object);
|
|
21
|
+
var symbolProto = Symbol ? Symbol.prototype : undefined;
|
|
22
|
+
var symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
|
|
23
|
+
symbolProto ? symbolProto.toString : undefined;
|
|
24
|
+
var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
|
|
25
|
+
var arrayProto = Array.prototype;
|
|
26
|
+
var arrSlice = Array.prototype.slice;
|
|
21
27
|
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
|
|
22
28
|
var MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991;
|
|
23
29
|
var MAX_ARRAY_LENGTH = 4294967295;
|
|
@@ -37,6 +43,16 @@
|
|
|
37
43
|
}
|
|
38
44
|
return '';
|
|
39
45
|
}
|
|
46
|
+
var numberTag = '[object Number]';
|
|
47
|
+
var booleanTag = '[object Boolean]';
|
|
48
|
+
var stringTag = '[object String]';
|
|
49
|
+
var dateTag = '[object Date]';
|
|
50
|
+
var regExpTag = '[object RegExp]';
|
|
51
|
+
var symbolTag = '[object Symbol]';
|
|
52
|
+
var errorTag = '[object Error]';
|
|
53
|
+
var arrayBufferTag = '[object ArrayBuffer]';
|
|
54
|
+
var argumentsTag = '[object Arguments]';
|
|
55
|
+
var arrayTag = '[object Array]';
|
|
40
56
|
var objectTag = '[object Object]';
|
|
41
57
|
var dataViewTag = '[object DataView]';
|
|
42
58
|
var mapTag = '[object Map]';
|
|
@@ -61,11 +77,11 @@
|
|
|
61
77
|
}
|
|
62
78
|
|
|
63
79
|
function getRawTag(value) {
|
|
64
|
-
var isOwn = hasOwnProperty.call(value,
|
|
65
|
-
var tag = value[
|
|
80
|
+
var isOwn = hasOwnProperty.call(value, symToStringTag);
|
|
81
|
+
var tag = value[symToStringTag];
|
|
66
82
|
var unmasked = false;
|
|
67
83
|
try {
|
|
68
|
-
value[
|
|
84
|
+
value[symToStringTag] = undefined;
|
|
69
85
|
unmasked = true;
|
|
70
86
|
}
|
|
71
87
|
catch (e) {
|
|
@@ -73,18 +89,16 @@
|
|
|
73
89
|
var result = objectToString.call(value);
|
|
74
90
|
if (unmasked) {
|
|
75
91
|
if (isOwn) {
|
|
76
|
-
value[
|
|
92
|
+
value[symToStringTag] = tag;
|
|
77
93
|
}
|
|
78
94
|
else {
|
|
79
|
-
delete value[
|
|
95
|
+
delete value[symToStringTag];
|
|
80
96
|
}
|
|
81
97
|
}
|
|
82
98
|
return result;
|
|
83
99
|
}
|
|
84
100
|
function _getTag(value) {
|
|
85
|
-
return
|
|
86
|
-
? getRawTag(value)
|
|
87
|
-
: objectToString.call(value);
|
|
101
|
+
return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString.call(value);
|
|
88
102
|
}
|
|
89
103
|
var getTag = _getTag;
|
|
90
104
|
if ((dataViewExisted && objectToString.call(new DataView(new ArrayBuffer(1))) !== dataViewTag) ||
|
|
@@ -198,30 +212,12 @@
|
|
|
198
212
|
return isArray(array) ? array.filter(function (item) { return !!item; }) : [];
|
|
199
213
|
}
|
|
200
214
|
|
|
201
|
-
var argType = 'Arguments';
|
|
202
|
-
var supportedArgumentsType = isType((function () { return arguments; })(), argType);
|
|
203
|
-
var FUNC_ERROR_TEXT = 'Expected a function';
|
|
204
|
-
var numberIsFinite = Number.isFinite;
|
|
205
|
-
var numberIsInteger = Number.isInteger;
|
|
206
|
-
var numberIsSafeInteger = Number.isSafeInteger;
|
|
207
|
-
var objectGetOwnPropertySymbols = Object.getOwnPropertySymbols;
|
|
208
|
-
var arrayAt = Array.prototype.at;
|
|
209
|
-
var objectIs = Object.is;
|
|
210
|
-
var VERSION = "1.2.1";
|
|
211
|
-
|
|
212
|
-
function sameValue(value, other) {
|
|
213
|
-
if (typeof objectIs === 'function') {
|
|
214
|
-
return objectIs(value, other);
|
|
215
|
-
}
|
|
216
|
-
return value === other ? value !== 0 || 1 / value === 1 / other : value != value && other != other;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
215
|
function eq(value, other, strictCheck) {
|
|
220
216
|
if (strictCheck === void 0) { strictCheck = false; }
|
|
221
|
-
if (
|
|
222
|
-
return
|
|
217
|
+
if (value === other) {
|
|
218
|
+
return strictCheck ? value !== 0 || 1 / value === 1 / other : true;
|
|
223
219
|
}
|
|
224
|
-
return value
|
|
220
|
+
return value !== value && other !== other;
|
|
225
221
|
}
|
|
226
222
|
|
|
227
223
|
function createIteratee(iteratee) {
|
|
@@ -277,6 +273,16 @@
|
|
|
277
273
|
});
|
|
278
274
|
}
|
|
279
275
|
|
|
276
|
+
var argType = 'Arguments';
|
|
277
|
+
var supportedArgumentsType = isType((function () { return arguments; })(), argType);
|
|
278
|
+
var FUNC_ERROR_TEXT = 'Expected a function';
|
|
279
|
+
var numberIsFinite = Number.isFinite;
|
|
280
|
+
var numberIsInteger = Number.isInteger;
|
|
281
|
+
var numberIsSafeInteger = Number.isSafeInteger;
|
|
282
|
+
var objectGetOwnPropertySymbols = Object.getOwnPropertySymbols;
|
|
283
|
+
var arrayAt = arrayProto.at;
|
|
284
|
+
var VERSION = "1.3.0";
|
|
285
|
+
|
|
280
286
|
function isFunction(value) {
|
|
281
287
|
if (!isObject(value)) {
|
|
282
288
|
return false;
|
|
@@ -468,26 +474,59 @@
|
|
|
468
474
|
return value;
|
|
469
475
|
}
|
|
470
476
|
|
|
477
|
+
function baseToString(value) {
|
|
478
|
+
if (typeof value === 'string') {
|
|
479
|
+
return value;
|
|
480
|
+
}
|
|
481
|
+
if (isArray(value)) {
|
|
482
|
+
return "".concat(value.map(baseToString));
|
|
483
|
+
}
|
|
484
|
+
if (isSymbol(value)) {
|
|
485
|
+
return value.toString();
|
|
486
|
+
}
|
|
487
|
+
var result = '' + value;
|
|
488
|
+
return result == '0' && 1 / value === -Infinity ? '-0' : result;
|
|
489
|
+
}
|
|
490
|
+
function toString(value) {
|
|
491
|
+
return value == null ? '' : baseToString(value);
|
|
492
|
+
}
|
|
493
|
+
|
|
471
494
|
function compareAsc(value, other) {
|
|
472
|
-
if (isSymbol(value)
|
|
495
|
+
if (isSymbol(value) && isSymbol(other)) {
|
|
473
496
|
return 0;
|
|
474
497
|
}
|
|
475
|
-
if (value
|
|
498
|
+
if (isSymbol(value)) {
|
|
499
|
+
return 1;
|
|
500
|
+
}
|
|
501
|
+
if (isSymbol(other)) {
|
|
502
|
+
return -1;
|
|
503
|
+
}
|
|
504
|
+
var valStr = toString(value);
|
|
505
|
+
var othStr = toString(other);
|
|
506
|
+
if (valStr > othStr) {
|
|
476
507
|
return 1;
|
|
477
508
|
}
|
|
478
|
-
|
|
509
|
+
if (valStr < othStr) {
|
|
479
510
|
return -1;
|
|
480
511
|
}
|
|
481
512
|
return 0;
|
|
482
513
|
}
|
|
483
514
|
function compareDesc(value, other) {
|
|
484
|
-
if (isSymbol(value)
|
|
515
|
+
if (isSymbol(value) && isSymbol(other)) {
|
|
485
516
|
return 0;
|
|
486
517
|
}
|
|
487
|
-
if (value
|
|
518
|
+
if (isSymbol(value)) {
|
|
519
|
+
return -1;
|
|
520
|
+
}
|
|
521
|
+
if (isSymbol(other)) {
|
|
522
|
+
return 1;
|
|
523
|
+
}
|
|
524
|
+
var valStr = toString(value);
|
|
525
|
+
var othStr = toString(other);
|
|
526
|
+
if (valStr > othStr) {
|
|
488
527
|
return -1;
|
|
489
528
|
}
|
|
490
|
-
|
|
529
|
+
if (valStr < othStr) {
|
|
491
530
|
return 1;
|
|
492
531
|
}
|
|
493
532
|
return 0;
|
|
@@ -709,25 +748,377 @@
|
|
|
709
748
|
return baseDebounce(func, wait, immediate, true);
|
|
710
749
|
}
|
|
711
750
|
|
|
712
|
-
function
|
|
713
|
-
|
|
751
|
+
function isArguments(value) {
|
|
752
|
+
if (supportedArgumentsType) {
|
|
753
|
+
return isObjectLike(value) && isType(value, argType);
|
|
754
|
+
}
|
|
755
|
+
return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');
|
|
714
756
|
}
|
|
715
757
|
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
758
|
+
var freeExports = typeof exports === 'object' && exports && !exports.nodeType && exports;
|
|
759
|
+
var freeModule = freeExports && typeof module === 'object' && module && !module.nodeType && module;
|
|
760
|
+
var moduleExports = freeModule && freeModule.exports === freeExports;
|
|
761
|
+
var freeProcess = moduleExports && root.process;
|
|
762
|
+
var nodeUtil = (function () {
|
|
763
|
+
try {
|
|
764
|
+
var types = freeModule && freeModule.require && freeModule.require('util').types;
|
|
765
|
+
if (types) {
|
|
766
|
+
return types;
|
|
767
|
+
}
|
|
768
|
+
return freeProcess && freeProcess.binding && freeProcess.binding('util');
|
|
719
769
|
}
|
|
720
|
-
|
|
721
|
-
return "".concat(value.map(baseToString));
|
|
770
|
+
catch (e) {
|
|
722
771
|
}
|
|
723
|
-
|
|
724
|
-
|
|
772
|
+
})();
|
|
773
|
+
var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer;
|
|
774
|
+
var nodeIsDate = nodeUtil && nodeUtil.isDate;
|
|
775
|
+
var nodeIsMap = nodeUtil && nodeUtil.isMap;
|
|
776
|
+
var nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;
|
|
777
|
+
var nodeIsSet = nodeUtil && nodeUtil.isSet;
|
|
778
|
+
var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
|
|
779
|
+
|
|
780
|
+
function isArrayBuffer(value) {
|
|
781
|
+
return nodeIsArrayBuffer ? nodeIsArrayBuffer(value) : isObjectLike(value) && isType(value, 'ArrayBuffer');
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
function isBlob(value) {
|
|
785
|
+
return (blobExisted && value instanceof Blob) || isType(value, ['Blob', 'File']);
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
function isBoolean(value) {
|
|
789
|
+
return value === true || value === false || isType(value, 'Boolean');
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
function isBuffer(value) {
|
|
793
|
+
if (typeof Buffer === 'function' && typeof Buffer.isBuffer === 'function') {
|
|
794
|
+
return Buffer.isBuffer(value);
|
|
725
795
|
}
|
|
726
|
-
|
|
727
|
-
return result == '0' && 1 / value === -Infinity ? '-0' : result;
|
|
796
|
+
return false;
|
|
728
797
|
}
|
|
729
|
-
|
|
730
|
-
|
|
798
|
+
|
|
799
|
+
function isDataView(value) {
|
|
800
|
+
return isType(value, 'DataView');
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
function isDate(value) {
|
|
804
|
+
return nodeIsDate ? nodeIsDate(value) : isObjectLike(value) && isType(value, 'Date');
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
function isPlainObject(value) {
|
|
808
|
+
if (!isObjectLike(value) || !isType(value, 'Object')) {
|
|
809
|
+
return false;
|
|
810
|
+
}
|
|
811
|
+
var proto = Object.getPrototypeOf(Object(value));
|
|
812
|
+
if (proto === null) {
|
|
813
|
+
return true;
|
|
814
|
+
}
|
|
815
|
+
var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
|
|
816
|
+
return typeof Ctor === 'function' && Ctor instanceof Ctor && functionToString.call(Ctor) === objectCtorString;
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
function isElement(value) {
|
|
820
|
+
return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
function isPrototype(value) {
|
|
824
|
+
if (typeof value !== 'object') {
|
|
825
|
+
return false;
|
|
826
|
+
}
|
|
827
|
+
var Ctor = value.constructor;
|
|
828
|
+
var proto = typeof Ctor === 'function' ? Ctor.prototype : objectProto;
|
|
829
|
+
return value === proto;
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
function keys(value) {
|
|
833
|
+
if (!isPrototype(value)) {
|
|
834
|
+
return Object.keys(value);
|
|
835
|
+
}
|
|
836
|
+
var result = [];
|
|
837
|
+
for (var key in Object(value)) {
|
|
838
|
+
if (hasOwnProperty.call(value, key) && key !== 'constructor') {
|
|
839
|
+
result.push(key);
|
|
840
|
+
}
|
|
841
|
+
}
|
|
842
|
+
return result;
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
function isMap(value) {
|
|
846
|
+
return nodeIsMap ? nodeIsMap(value) : isObjectLike(value) && isType(value, 'Map');
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
function isSet(value) {
|
|
850
|
+
return nodeIsSet ? nodeIsSet(value) : isObjectLike(value) && isType(value, 'Set');
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
function isEmpty(value) {
|
|
854
|
+
if (value == null) {
|
|
855
|
+
return true;
|
|
856
|
+
}
|
|
857
|
+
if (isMap(value) || isSet(value)) {
|
|
858
|
+
return !value.size;
|
|
859
|
+
}
|
|
860
|
+
if (isObjectLike(value)) {
|
|
861
|
+
return !keys(value).length;
|
|
862
|
+
}
|
|
863
|
+
if (isArrayLike(value)) {
|
|
864
|
+
return !value.length;
|
|
865
|
+
}
|
|
866
|
+
return true;
|
|
867
|
+
}
|
|
868
|
+
|
|
869
|
+
function getSymbols(object) {
|
|
870
|
+
if (!objectGetOwnPropertySymbols || object === null) {
|
|
871
|
+
return [];
|
|
872
|
+
}
|
|
873
|
+
return objectGetOwnPropertySymbols(object).filter(function (item) {
|
|
874
|
+
return propertyIsEnumerable.call(object, item);
|
|
875
|
+
});
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
function allKeys(object) {
|
|
879
|
+
if (!isObject(object)) {
|
|
880
|
+
return [];
|
|
881
|
+
}
|
|
882
|
+
return Object.keys(object).concat(getSymbols(object));
|
|
883
|
+
}
|
|
884
|
+
|
|
885
|
+
function isNil(value) {
|
|
886
|
+
return value == null;
|
|
887
|
+
}
|
|
888
|
+
|
|
889
|
+
function isTypedArray(value) {
|
|
890
|
+
if (nodeIsTypedArray) {
|
|
891
|
+
return nodeIsTypedArray(value);
|
|
892
|
+
}
|
|
893
|
+
return isObjectLike(value) && isLength(value.length) && isType(value, ['Float32Array', 'Float64Array', 'Int8Array', 'Int16Array', 'Int32Array', 'Uint8Array', 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'BigInt64Array', 'BigUint64Array']);
|
|
894
|
+
}
|
|
895
|
+
|
|
896
|
+
function mapToArray(map) {
|
|
897
|
+
var result = [];
|
|
898
|
+
map.forEach(function (value, key) {
|
|
899
|
+
result.push([key, value]);
|
|
900
|
+
});
|
|
901
|
+
return orderBy(result, function (item) { return item[0]; });
|
|
902
|
+
}
|
|
903
|
+
function setToArray(set) {
|
|
904
|
+
var result = [];
|
|
905
|
+
set.forEach(function (value) {
|
|
906
|
+
result.push(value);
|
|
907
|
+
});
|
|
908
|
+
return orderBy(result);
|
|
909
|
+
}
|
|
910
|
+
function argToArray(arg) {
|
|
911
|
+
return arrSlice.call(arg);
|
|
912
|
+
}
|
|
913
|
+
function toBufferView(bufferSource) {
|
|
914
|
+
return new Uint8Array(bufferSource.buffer || bufferSource, bufferSource.byteOffset || 0, bufferSource.byteLength);
|
|
915
|
+
}
|
|
916
|
+
function isDomNode(obj) {
|
|
917
|
+
return isObjectLike(obj) && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string' && typeof obj.isEqualNode === 'function';
|
|
918
|
+
}
|
|
919
|
+
function isEqualDeep(value, other, customizer, strictCheck, valueStack, otherStack) {
|
|
920
|
+
if (eq(value, other, strictCheck)) {
|
|
921
|
+
return true;
|
|
922
|
+
}
|
|
923
|
+
var valType = typeof value;
|
|
924
|
+
var othType = typeof other;
|
|
925
|
+
if (strictCheck && valType !== othType) {
|
|
926
|
+
return false;
|
|
927
|
+
}
|
|
928
|
+
if (isNil(value) || isNil(other) || (valType !== 'object' && othType !== 'object')) {
|
|
929
|
+
return false;
|
|
930
|
+
}
|
|
931
|
+
var tag = getTag$1(value);
|
|
932
|
+
if (tag !== getTag$1(other)) {
|
|
933
|
+
return false;
|
|
934
|
+
}
|
|
935
|
+
var convert;
|
|
936
|
+
switch (tag) {
|
|
937
|
+
case numberTag:
|
|
938
|
+
return eq(+value, +other, strictCheck);
|
|
939
|
+
case booleanTag:
|
|
940
|
+
case dateTag:
|
|
941
|
+
return strictCheck ? +value === +other : eq(+value, +other);
|
|
942
|
+
case stringTag:
|
|
943
|
+
case regExpTag:
|
|
944
|
+
return '' + value === '' + other;
|
|
945
|
+
case symbolTag:
|
|
946
|
+
return symbolValueOf ? symbolValueOf.call(value) === symbolValueOf.call(other) : false;
|
|
947
|
+
case errorTag:
|
|
948
|
+
return value.name == other.name && value.message == other.message;
|
|
949
|
+
case dataViewTag:
|
|
950
|
+
case arrayBufferTag:
|
|
951
|
+
if (value.byteLength !== other.byteLength || (value.byteOffset && value.byteOffset !== other.byteOffset)) {
|
|
952
|
+
return false;
|
|
953
|
+
}
|
|
954
|
+
convert = toBufferView;
|
|
955
|
+
break;
|
|
956
|
+
case mapTag:
|
|
957
|
+
convert = mapToArray;
|
|
958
|
+
break;
|
|
959
|
+
case setTag:
|
|
960
|
+
convert = setToArray;
|
|
961
|
+
break;
|
|
962
|
+
case argumentsTag:
|
|
963
|
+
convert = argToArray;
|
|
964
|
+
break;
|
|
965
|
+
}
|
|
966
|
+
if (convert) {
|
|
967
|
+
return isEqualDeep(convert(value), convert(other), customizer, strictCheck, valueStack, otherStack);
|
|
968
|
+
}
|
|
969
|
+
if (isDomNode(value) && isDomNode(other)) {
|
|
970
|
+
return value.isEqualNode(other);
|
|
971
|
+
}
|
|
972
|
+
var areArrays = tag === arrayTag;
|
|
973
|
+
if (!areArrays && isTypedArray(value)) {
|
|
974
|
+
if (value.byteLength !== other.byteLength) {
|
|
975
|
+
return false;
|
|
976
|
+
}
|
|
977
|
+
if (value.buffer === other.buffer && value.byteOffset === other.byteOffset) {
|
|
978
|
+
return true;
|
|
979
|
+
}
|
|
980
|
+
areArrays = true;
|
|
981
|
+
}
|
|
982
|
+
if (isBuffer(value)) {
|
|
983
|
+
if (!isBuffer(other)) {
|
|
984
|
+
return false;
|
|
985
|
+
}
|
|
986
|
+
areArrays = true;
|
|
987
|
+
}
|
|
988
|
+
valueStack = valueStack || [];
|
|
989
|
+
otherStack = otherStack || [];
|
|
990
|
+
var length = valueStack.length;
|
|
991
|
+
while (length--) {
|
|
992
|
+
if (valueStack[length] === value) {
|
|
993
|
+
return otherStack[length] === other;
|
|
994
|
+
}
|
|
995
|
+
}
|
|
996
|
+
valueStack.push(value);
|
|
997
|
+
otherStack.push(other);
|
|
998
|
+
var result = true;
|
|
999
|
+
var hasCustomizer = typeof customizer === 'function';
|
|
1000
|
+
if (areArrays) {
|
|
1001
|
+
length = value.length;
|
|
1002
|
+
if (length !== other.length) {
|
|
1003
|
+
return false;
|
|
1004
|
+
}
|
|
1005
|
+
while (length--) {
|
|
1006
|
+
if (hasCustomizer) {
|
|
1007
|
+
var compared = customizer(value[length], other[length], length, value, other, valueStack, otherStack);
|
|
1008
|
+
if (compared !== undefined) {
|
|
1009
|
+
result = !!compared;
|
|
1010
|
+
break;
|
|
1011
|
+
}
|
|
1012
|
+
}
|
|
1013
|
+
if (!isEqualDeep(value[length], other[length], customizer, strictCheck, valueStack, otherStack)) {
|
|
1014
|
+
result = false;
|
|
1015
|
+
break;
|
|
1016
|
+
}
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
else if (tag === objectTag) {
|
|
1020
|
+
var keys = allKeys(value);
|
|
1021
|
+
length = keys.length;
|
|
1022
|
+
if (allKeys(other).length !== length) {
|
|
1023
|
+
return false;
|
|
1024
|
+
}
|
|
1025
|
+
var skipCtor = false;
|
|
1026
|
+
while (length--) {
|
|
1027
|
+
var key = keys[length];
|
|
1028
|
+
if (hasCustomizer) {
|
|
1029
|
+
var compared = customizer(value[key], other[key], key, value, other, valueStack, otherStack);
|
|
1030
|
+
if (compared !== undefined) {
|
|
1031
|
+
result = !!compared;
|
|
1032
|
+
break;
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
|
+
if (!(hasOwnProperty.call(other, key) && isEqualDeep(value[key], other[key], customizer, strictCheck, valueStack, otherStack))) {
|
|
1036
|
+
result = false;
|
|
1037
|
+
break;
|
|
1038
|
+
}
|
|
1039
|
+
if (!skipCtor && key === 'constructor') {
|
|
1040
|
+
skipCtor = true;
|
|
1041
|
+
}
|
|
1042
|
+
}
|
|
1043
|
+
if (result && !skipCtor) {
|
|
1044
|
+
var valCtor = value.constructor;
|
|
1045
|
+
var othCtor = other.constructor;
|
|
1046
|
+
if (valCtor !== othCtor && !(isFunction(valCtor) && valCtor instanceof valCtor && isFunction(othCtor) && othCtor instanceof othCtor) && 'constructor' in value && 'constructor' in other) {
|
|
1047
|
+
result = false;
|
|
1048
|
+
}
|
|
1049
|
+
}
|
|
1050
|
+
}
|
|
1051
|
+
else {
|
|
1052
|
+
result = false;
|
|
1053
|
+
}
|
|
1054
|
+
valueStack.pop();
|
|
1055
|
+
otherStack.pop();
|
|
1056
|
+
return result;
|
|
1057
|
+
}
|
|
1058
|
+
function isEqual(value, other, customizer, strictCheck) {
|
|
1059
|
+
if (strictCheck === void 0) { strictCheck = false; }
|
|
1060
|
+
if (typeof customizer === 'function') {
|
|
1061
|
+
var result = customizer(value, other);
|
|
1062
|
+
if (result !== undefined) {
|
|
1063
|
+
return !!result;
|
|
1064
|
+
}
|
|
1065
|
+
}
|
|
1066
|
+
return isEqualDeep(value, other, customizer, strictCheck);
|
|
1067
|
+
}
|
|
1068
|
+
|
|
1069
|
+
function isError(value) {
|
|
1070
|
+
if (!isObjectLike(value)) {
|
|
1071
|
+
return false;
|
|
1072
|
+
}
|
|
1073
|
+
return value instanceof Error || isType(value, ['Error', 'DOMException']);
|
|
1074
|
+
}
|
|
1075
|
+
|
|
1076
|
+
function isFinite(value) {
|
|
1077
|
+
return numberIsFinite ? numberIsFinite(value) : typeof value === 'number' && root.isFinite(value);
|
|
1078
|
+
}
|
|
1079
|
+
|
|
1080
|
+
function isInteger(value) {
|
|
1081
|
+
return numberIsInteger ? numberIsInteger(value) : isFinite(value) && Math.floor(value) === value;
|
|
1082
|
+
}
|
|
1083
|
+
|
|
1084
|
+
function isNumber(value) {
|
|
1085
|
+
return typeof value === 'number' || (isObjectLike(value) && isType(value, 'Number'));
|
|
1086
|
+
}
|
|
1087
|
+
|
|
1088
|
+
function isNaN(value) {
|
|
1089
|
+
return isNumber(value) && root.isNaN(value);
|
|
1090
|
+
}
|
|
1091
|
+
|
|
1092
|
+
function isNull(value) {
|
|
1093
|
+
return value === null;
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1096
|
+
function isPromiseLike(value) {
|
|
1097
|
+
return isObject(value) && typeof value.then === 'function';
|
|
1098
|
+
}
|
|
1099
|
+
|
|
1100
|
+
function isRegExp(value) {
|
|
1101
|
+
return nodeIsRegExp ? nodeIsRegExp(value) : isObjectLike(value) && isType(value, 'RegExp');
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1104
|
+
function isSafeInteger(value) {
|
|
1105
|
+
return numberIsSafeInteger ? numberIsSafeInteger(value) : isInteger(value) && Math.abs(value) <= MAX_SAFE_INTEGER;
|
|
1106
|
+
}
|
|
1107
|
+
|
|
1108
|
+
function isString(value) {
|
|
1109
|
+
return typeof value === 'string' || (isObjectLike(value) && isType(value, 'String'));
|
|
1110
|
+
}
|
|
1111
|
+
|
|
1112
|
+
function isUndefined(value) {
|
|
1113
|
+
return value === void 0;
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1116
|
+
function isWeakMap(value) {
|
|
1117
|
+
return isObjectLike(value) && isType(value, 'WeakMap');
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
function isWeakSet(value) {
|
|
1121
|
+
return isObjectLike(value) && isType(value, 'WeakSet');
|
|
731
1122
|
}
|
|
732
1123
|
|
|
733
1124
|
function decimalAdjust(type, value, precision) {
|
|
@@ -856,22 +1247,6 @@
|
|
|
856
1247
|
return min + Math.random() * (max - min);
|
|
857
1248
|
}
|
|
858
1249
|
|
|
859
|
-
function getSymbols(object) {
|
|
860
|
-
if (!objectGetOwnPropertySymbols || object === null) {
|
|
861
|
-
return [];
|
|
862
|
-
}
|
|
863
|
-
return objectGetOwnPropertySymbols(object).filter(function (item) {
|
|
864
|
-
return propertyIsEnumerable.call(object, item);
|
|
865
|
-
});
|
|
866
|
-
}
|
|
867
|
-
|
|
868
|
-
function allKeys(object) {
|
|
869
|
-
if (!isObject(object)) {
|
|
870
|
-
return [];
|
|
871
|
-
}
|
|
872
|
-
return Object.keys(object).concat(getSymbols(object));
|
|
873
|
-
}
|
|
874
|
-
|
|
875
1250
|
function getKeysIn(object) {
|
|
876
1251
|
var result = [];
|
|
877
1252
|
for (var key in object) {
|
|
@@ -1096,206 +1471,6 @@
|
|
|
1096
1471
|
return splitCaseWords(string, pattern).reduce(function (prev, cur, index) { return prev + (index ? ' ' : '') + cur.toUpperCase(); }, '');
|
|
1097
1472
|
}
|
|
1098
1473
|
|
|
1099
|
-
function isArguments(value) {
|
|
1100
|
-
if (supportedArgumentsType) {
|
|
1101
|
-
return isObjectLike(value) && isType(value, argType);
|
|
1102
|
-
}
|
|
1103
|
-
return (isObjectLike(value) &&
|
|
1104
|
-
hasOwnProperty.call(value, 'callee') &&
|
|
1105
|
-
!propertyIsEnumerable.call(value, 'callee'));
|
|
1106
|
-
}
|
|
1107
|
-
|
|
1108
|
-
var freeExports = typeof exports === 'object' && exports && !exports.nodeType && exports;
|
|
1109
|
-
var freeModule = freeExports && typeof module === 'object' && module && !module.nodeType && module;
|
|
1110
|
-
var moduleExports = freeModule && freeModule.exports === freeExports;
|
|
1111
|
-
var freeProcess = moduleExports && root.process;
|
|
1112
|
-
var nodeUtil = (function () {
|
|
1113
|
-
try {
|
|
1114
|
-
var types = freeModule && freeModule.require && freeModule.require('util').types;
|
|
1115
|
-
if (types) {
|
|
1116
|
-
return types;
|
|
1117
|
-
}
|
|
1118
|
-
return freeProcess && freeProcess.binding && freeProcess.binding('util');
|
|
1119
|
-
}
|
|
1120
|
-
catch (e) {
|
|
1121
|
-
}
|
|
1122
|
-
})();
|
|
1123
|
-
var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer;
|
|
1124
|
-
var nodeIsDate = nodeUtil && nodeUtil.isDate;
|
|
1125
|
-
var nodeIsMap = nodeUtil && nodeUtil.isMap;
|
|
1126
|
-
var nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;
|
|
1127
|
-
var nodeIsSet = nodeUtil && nodeUtil.isSet;
|
|
1128
|
-
var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
|
|
1129
|
-
|
|
1130
|
-
function isArrayBuffer(value) {
|
|
1131
|
-
return nodeIsArrayBuffer
|
|
1132
|
-
? nodeIsArrayBuffer(value)
|
|
1133
|
-
: isObjectLike(value) && isType(value, 'ArrayBuffer');
|
|
1134
|
-
}
|
|
1135
|
-
|
|
1136
|
-
function isBlob(value) {
|
|
1137
|
-
return (blobExisted && value instanceof Blob) || isType(value, ['Blob', 'File']);
|
|
1138
|
-
}
|
|
1139
|
-
|
|
1140
|
-
function isBoolean(value) {
|
|
1141
|
-
return value === true || value === false || isType(value, 'Boolean');
|
|
1142
|
-
}
|
|
1143
|
-
|
|
1144
|
-
function isBuffer(value) {
|
|
1145
|
-
if (typeof Buffer === 'function' && typeof Buffer.isBuffer === 'function') {
|
|
1146
|
-
return Buffer.isBuffer(value);
|
|
1147
|
-
}
|
|
1148
|
-
return false;
|
|
1149
|
-
}
|
|
1150
|
-
|
|
1151
|
-
function isDataView(value) {
|
|
1152
|
-
return isType(value, 'DataView');
|
|
1153
|
-
}
|
|
1154
|
-
|
|
1155
|
-
function isDate(value) {
|
|
1156
|
-
return nodeIsDate ? nodeIsDate(value) : isObjectLike(value) && isType(value, 'Date');
|
|
1157
|
-
}
|
|
1158
|
-
|
|
1159
|
-
function isPlainObject(value) {
|
|
1160
|
-
if (!isObjectLike(value) || !isType(value, 'Object')) {
|
|
1161
|
-
return false;
|
|
1162
|
-
}
|
|
1163
|
-
var proto = Object.getPrototypeOf(Object(value));
|
|
1164
|
-
if (proto === null) {
|
|
1165
|
-
return true;
|
|
1166
|
-
}
|
|
1167
|
-
var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
|
|
1168
|
-
return typeof Ctor === 'function' && Ctor instanceof Ctor && functionToString.call(Ctor) === objectCtorString;
|
|
1169
|
-
}
|
|
1170
|
-
|
|
1171
|
-
function isElement(value) {
|
|
1172
|
-
return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);
|
|
1173
|
-
}
|
|
1174
|
-
|
|
1175
|
-
function isPrototype(value) {
|
|
1176
|
-
if (typeof value !== 'object') {
|
|
1177
|
-
return false;
|
|
1178
|
-
}
|
|
1179
|
-
var Ctor = value.constructor;
|
|
1180
|
-
var proto = typeof Ctor === 'function' ? Ctor.prototype : objectProto;
|
|
1181
|
-
return value === proto;
|
|
1182
|
-
}
|
|
1183
|
-
|
|
1184
|
-
function keys(value) {
|
|
1185
|
-
if (!isPrototype(value)) {
|
|
1186
|
-
return Object.keys(value);
|
|
1187
|
-
}
|
|
1188
|
-
var result = [];
|
|
1189
|
-
for (var key in Object(value)) {
|
|
1190
|
-
if (hasOwnProperty.call(value, key) && key !== 'constructor') {
|
|
1191
|
-
result.push(key);
|
|
1192
|
-
}
|
|
1193
|
-
}
|
|
1194
|
-
return result;
|
|
1195
|
-
}
|
|
1196
|
-
|
|
1197
|
-
function isMap(value) {
|
|
1198
|
-
return nodeIsMap ? nodeIsMap(value) : isObjectLike(value) && isType(value, 'Map');
|
|
1199
|
-
}
|
|
1200
|
-
|
|
1201
|
-
function isSet(value) {
|
|
1202
|
-
return nodeIsSet ? nodeIsSet(value) : isObjectLike(value) && isType(value, 'Set');
|
|
1203
|
-
}
|
|
1204
|
-
|
|
1205
|
-
function isEmpty(value) {
|
|
1206
|
-
if (value == null) {
|
|
1207
|
-
return true;
|
|
1208
|
-
}
|
|
1209
|
-
if (isMap(value) || isSet(value)) {
|
|
1210
|
-
return !value.size;
|
|
1211
|
-
}
|
|
1212
|
-
if (isObjectLike(value)) {
|
|
1213
|
-
return !keys(value).length;
|
|
1214
|
-
}
|
|
1215
|
-
if (isArrayLike(value)) {
|
|
1216
|
-
return !value.length;
|
|
1217
|
-
}
|
|
1218
|
-
return true;
|
|
1219
|
-
}
|
|
1220
|
-
|
|
1221
|
-
function isError(value) {
|
|
1222
|
-
if (!isObjectLike(value)) {
|
|
1223
|
-
return false;
|
|
1224
|
-
}
|
|
1225
|
-
return value instanceof Error || isType(value, ['Error', 'DOMException']);
|
|
1226
|
-
}
|
|
1227
|
-
|
|
1228
|
-
function isInteger(value) {
|
|
1229
|
-
return numberIsInteger ? numberIsInteger(value) : isFinite(value) && Math.floor(value) === value;
|
|
1230
|
-
}
|
|
1231
|
-
|
|
1232
|
-
function isNumber(value) {
|
|
1233
|
-
return typeof value === 'number' || (isObjectLike(value) && isType(value, 'Number'));
|
|
1234
|
-
}
|
|
1235
|
-
|
|
1236
|
-
function isNaN(value) {
|
|
1237
|
-
return isNumber(value) && root.isNaN(value);
|
|
1238
|
-
}
|
|
1239
|
-
|
|
1240
|
-
function isNil(value) {
|
|
1241
|
-
return value == null;
|
|
1242
|
-
}
|
|
1243
|
-
|
|
1244
|
-
function isNull(value) {
|
|
1245
|
-
return value === null;
|
|
1246
|
-
}
|
|
1247
|
-
|
|
1248
|
-
function isPromiseLike(value) {
|
|
1249
|
-
return isObject(value) && typeof value.then === 'function';
|
|
1250
|
-
}
|
|
1251
|
-
|
|
1252
|
-
function isRegExp(value) {
|
|
1253
|
-
return nodeIsRegExp ? nodeIsRegExp(value) : isObjectLike(value) && isType(value, 'RegExp');
|
|
1254
|
-
}
|
|
1255
|
-
|
|
1256
|
-
function isSafeInteger(value) {
|
|
1257
|
-
return numberIsSafeInteger
|
|
1258
|
-
? numberIsSafeInteger(value)
|
|
1259
|
-
: isInteger(value) && Math.abs(value) <= MAX_SAFE_INTEGER;
|
|
1260
|
-
}
|
|
1261
|
-
|
|
1262
|
-
function isString(value) {
|
|
1263
|
-
return typeof value === 'string' || (isObjectLike(value) && isType(value, 'String'));
|
|
1264
|
-
}
|
|
1265
|
-
|
|
1266
|
-
function isTypedArray(value) {
|
|
1267
|
-
if (nodeIsTypedArray) {
|
|
1268
|
-
return nodeIsTypedArray(value);
|
|
1269
|
-
}
|
|
1270
|
-
return (isObjectLike(value) &&
|
|
1271
|
-
isLength(value.length) &&
|
|
1272
|
-
isType(value, [
|
|
1273
|
-
'Float32Array',
|
|
1274
|
-
'Float64Array',
|
|
1275
|
-
'Int8Array',
|
|
1276
|
-
'Int16Array',
|
|
1277
|
-
'Int32Array',
|
|
1278
|
-
'Uint8Array',
|
|
1279
|
-
'Uint8ClampedArray',
|
|
1280
|
-
'Uint16Array',
|
|
1281
|
-
'Uint32Array',
|
|
1282
|
-
'BigInt64Array',
|
|
1283
|
-
'BigUint64Array'
|
|
1284
|
-
]));
|
|
1285
|
-
}
|
|
1286
|
-
|
|
1287
|
-
function isUndefined(value) {
|
|
1288
|
-
return value === void 0;
|
|
1289
|
-
}
|
|
1290
|
-
|
|
1291
|
-
function isWeakMap(value) {
|
|
1292
|
-
return isObjectLike(value) && isType(value, 'WeakMap');
|
|
1293
|
-
}
|
|
1294
|
-
|
|
1295
|
-
function isWeakSet(value) {
|
|
1296
|
-
return isObjectLike(value) && isType(value, 'WeakSet');
|
|
1297
|
-
}
|
|
1298
|
-
|
|
1299
1474
|
function conformsTo(object, source) {
|
|
1300
1475
|
var props = allKeys(source);
|
|
1301
1476
|
var length = props.length;
|
|
@@ -1439,6 +1614,7 @@
|
|
|
1439
1614
|
exports.isDate = isDate;
|
|
1440
1615
|
exports.isElement = isElement;
|
|
1441
1616
|
exports.isEmpty = isEmpty;
|
|
1617
|
+
exports.isEqual = isEqual;
|
|
1442
1618
|
exports.isError = isError;
|
|
1443
1619
|
exports.isFinite = isFinite;
|
|
1444
1620
|
exports.isFunction = isFunction;
|