ut2 1.4.1 → 1.4.3

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 CHANGED
@@ -102,6 +102,7 @@ const debounced = debounce(() => {
102
102
  - isInteger - 整数。
103
103
  - isLength - 有效的类数组长度。
104
104
  - isMap - `Map` 对象。
105
+ - isMatch - 普通对象部分匹配的深比较。
105
106
  - isNaN - `NaN` 。
106
107
  - isNil - `undefined` 或 `null` 。
107
108
  - isNull - `null` 。
package/dist/ut2.js CHANGED
@@ -285,13 +285,10 @@
285
285
  var numberIsSafeInteger = Number.isSafeInteger;
286
286
  var objectGetOwnPropertySymbols = Object.getOwnPropertySymbols;
287
287
  var arrayAt = arrayProto.at;
288
- var VERSION = "1.4.1";
288
+ var VERSION = "1.4.3";
289
289
 
290
290
  function isFunction(value) {
291
- if (!isObject(value)) {
292
- return false;
293
- }
294
- return checkTypes(value, functionTags);
291
+ return typeof value === 'function' || checkTypes(value, functionTags);
295
292
  }
296
293
 
297
294
  function isLength(value) {
@@ -1077,7 +1074,8 @@
1077
1074
  function isDeepComparable(object, source) {
1078
1075
  return checkType(object, objectTag) && checkType(source, objectTag);
1079
1076
  }
1080
- function baseIsMatch(object, source, customizer, strictCheck, objStack, srcStack) {
1077
+ function baseIsMatch(object, source, customizer, strictCheck, objStack, srcStack, executedCustomizer) {
1078
+ if (executedCustomizer === void 0) { executedCustomizer = false; }
1081
1079
  var hasCustomizer = typeof customizer === 'function';
1082
1080
  if (isDeepComparable(object, source)) {
1083
1081
  objStack = objStack || [];
@@ -1107,7 +1105,7 @@
1107
1105
  }
1108
1106
  continue;
1109
1107
  }
1110
- if (!baseIsMatch(object[key], source[key], customizer, strictCheck, objStack, srcStack)) {
1108
+ if (!baseIsMatch(object[key], source[key], customizer, strictCheck, objStack, srcStack, true)) {
1111
1109
  return false;
1112
1110
  }
1113
1111
  }
@@ -1116,12 +1114,13 @@
1116
1114
  return true;
1117
1115
  }
1118
1116
  var result = isEqual(object, source, function (objValue, srcValue, k, obj, src) {
1119
- if (hasCustomizer) {
1117
+ if (!executedCustomizer && hasCustomizer) {
1120
1118
  var compared = customizer(objValue, srcValue, k, obj, src, objStack, srcStack);
1121
1119
  if (compared !== undefined) {
1122
1120
  return compared;
1123
1121
  }
1124
1122
  }
1123
+ executedCustomizer = false;
1125
1124
  if (isDeepComparable(objValue, srcValue)) {
1126
1125
  return baseIsMatch(objValue, srcValue, customizer, strictCheck, objStack, srcStack);
1127
1126
  }
@@ -1130,13 +1129,13 @@
1130
1129
  }
1131
1130
  function isMatch(object, source, customizer, strictCheck) {
1132
1131
  if (strictCheck === void 0) { strictCheck = false; }
1133
- if (typeof customizer === 'function' && isDeepComparable(object, source)) {
1132
+ if (typeof customizer === 'function') {
1134
1133
  var compared = customizer(object, source);
1135
1134
  if (compared !== undefined) {
1136
1135
  return !!compared;
1137
1136
  }
1138
1137
  }
1139
- return baseIsMatch(object, source, customizer, strictCheck);
1138
+ return baseIsMatch(object, source, customizer, strictCheck, undefined, undefined, true);
1140
1139
  }
1141
1140
 
1142
1141
  function isNumber(value) {