Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
estoolkit isEqual vs fast-deep-equal (2023)
(version: 0)
Comparing performance of:
estoolkit deepequal vs fast-deep-equal
Created:
one year ago
by:
Guest
Jump to the latest result
Script Preparation code:
var data = [ { description: "equal numbers", value1: 1, value2: 1, equal: true, }, { description: "not equal numbers", value1: 1, value2: 2, equal: false, }, { description: "number and array are not equal", value1: 1, value2: [], equal: false, }, { description: "0 and null are not equal", value1: 0, value2: null, equal: false, }, { description: "equal strings", value1: "a", value2: "a", equal: true, }, { description: "big object", value1: { prop1: "value1", prop2: "value2", prop3: "value3", prop4: { subProp1: "sub value1", subProp2: { subSubProp1: "sub sub value1", subSubProp2: [1, 2, { prop2: 1, prop: 2 }, 4, 5], }, }, prop5: 1000, prop6: new Date(2016, 2, 10), }, value2: { prop5: 1000, prop3: "value3", prop1: "value1", prop2: "value2", prop6: new Date("2016/03/10"), prop4: { subProp2: { subSubProp1: "sub sub value1", subSubProp2: [1, 2, { prop2: 1, prop: 2 }, 4, 5], }, subProp1: "sub value1", }, }, equal: true, }, ]; function equal(a, b) { if (a === b) return true; if (a && b && typeof a == 'object' && typeof b == 'object') { if (a.constructor !== b.constructor) return false; var length, i, keys; if (Array.isArray(a)) { length = a.length; if (length != b.length) return false; for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false; return true; } if ((a instanceof Map) && (b instanceof Map)) { if (a.size !== b.size) return false; for (i of a.entries()) if (!b.has(i[0])) return false; for (i of a.entries()) if (!equal(i[1], b.get(i[0]))) return false; return true; } if ((a instanceof Set) && (b instanceof Set)) { if (a.size !== b.size) return false; for (i of a.entries()) if (!b.has(i[0])) return false; return true; } if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) { length = a.length; if (length != b.length) return false; for (i = length; i-- !== 0;) if (a[i] !== b[i]) return false; return true; } if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); keys = Object.keys(a); length = keys.length; if (length !== Object.keys(b).length) return false; for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; for (i = length; i-- !== 0;) { var key = keys[i]; if (!equal(a[key], b[key])) return false; } return true; } // true if both NaN, false otherwise return a!==a && b!==b; }; /** * Skipped minification because the original files appears to be already minified. * Original file: /npm/es-toolkit@1.19.0/dist/browser.global.js * * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files */ var _=function(t){"use strict";function at(t,e){const n=[];for(let r=0;r<e.length;r++){const o=e[r];n.push(t.at(o))}return n}function difference$1(t,e){const n=new Set(e);return t.filter((t=>!n.has(t)))}function differenceBy(t,e,n){const r=new Set(e.map((t=>n(t))));return t.filter((t=>!r.has(n(t))))}function differenceWith(t,e,n){return t.filter((t=>e.every((e=>!n(t,e)))))}function flatten$1(t,e=1){const n=[],r=Math.floor(e),recursive=(t,e)=>{for(const o of t)Array.isArray(o)&&e<r?recursive(o,e+1):n.push(o)};recursive(t,0);return n}function head(t){return t[0]}function intersection(t,e){const n=new Set(e);return t.filter((t=>n.has(t)))}function intersectionBy(t,e,n){const r=new Set(e.map(n));return t.filter((t=>r.has(n(t))))}function intersectionWith(t,e,n){return t.filter((t=>e.some((e=>n(t,e)))))}function random(t,e){if(null==e){e=t;t=0}if(t>=e)throw new Error("Invalid input: The maximum value must be greater than the minimum value.");return Math.random()*(e-t)+t}function randomInt(t,e){return Math.floor(random(t,e))}function uniq(t){return Array.from(new Set(t))}function union(t,e){return uniq(t.concat(e))}function unionBy(t,e,n){const r=new Map;for(const o of[...t,...e]){const t=n(o);r.has(t)||r.set(t,o)}return Array.from(r.values())}function uniqWith(t,e){const n=[];for(const r of t){n.every((t=>!e(t,r)))&&n.push(r)}return n}function unionWith(t,e,n){return uniqWith(t.concat(e),n)}function zip(...t){const e=[],n=Math.max(...t.map((t=>t.length)));for(let r=0;r<n;r++){const n=[];for(const e of t)n.push(e[r]);e.push(n)}return e}class AbortError extends Error{constructor(t="The operation was aborted"){super(t);this.name="AbortError"}}class TimeoutError extends Error{constructor(t="The operation was timed out"){super(t);this.name="TimeoutError"}}function noop(){}function ary$1(t,e){return function(...n){return t.apply(this,n.slice(0,e))}}function partial(t,...e){return function(...n){const r=[];let o=0;for(let t=0;t<e.length;t++){const i=e[t];i===partial.placeholder?r.push(n[o++]):r.push(i)}for(let t=o;t<n.length;t++)r.push(n[t]);return t.apply(this,r)}}const e=Symbol("partial.placeholder");partial.placeholder=e;function partialRight(t,...e){return function(...r){const o=e.filter((t=>t===n)).length,i=Math.max(r.length-o,0),c=[];let u=0;for(let t=0;t<i;t++)c.push(r[u++]);for(let t=0;t<e.length;t++){const n=e[t];n===partialRight.placeholder?c.push(r[u++]):c.push(n)}return t.apply(this,c)}}const n=Symbol("partialRight.placeholder");partialRight.placeholder=n;function makeCurry(t,e,n){if(n.length===e)return t(...n);return function(r){return makeCurry(t,e,[...n,r])}}function sum(t){let e=0;for(let n=0;n<t.length;n++)e+=t[n];return e}function mean(t){return sum(t)/t.length}function isTypedArray$1(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function isPrimitive(t){return null==t||"object"!=typeof t&&"function"!=typeof t}function clone(t){if(isPrimitive(t))return t;if(Array.isArray(t)||isTypedArray$1(t)||t instanceof ArrayBuffer||t instanceof SharedArrayBuffer)return t.slice(0);const e=Object.getPrototypeOf(t),n=e.constructor;if(t instanceof Date||t instanceof Map||t instanceof Set)return new n(t);if(t instanceof RegExp){const e=new n(t);e.lastIndex=t.lastIndex;return e}if(t instanceof DataView)return new n(t.buffer.slice(0));if(t instanceof Error){const e=new n(t.message);e.stack=t.stack;e.name=t.name;e.cause=t.cause;return e}if("undefined"!=typeof File&&t instanceof File){return new n([t],t.name,{type:t.type,lastModified:t.lastModified})}if("object"==typeof t){const n=Object.create(e);return Object.assign(n,t)}return t}function isPlainObject$1(t){if("object"!=typeof t)return!1;if(null==t)return!1;if(null===Object.getPrototypeOf(t))return!0;if("[object Object]"!==t.toString())return!1;let e=t;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function flattenObjectImpl(t,e=""){const n={},r=Object.keys(t);for(let o=0;o<r.length;o++){const i=r[o],c=t[i],u=e?`${e}.${i}`:i;if(isPlainObject$1(c)&&Object.keys(c).length>0)Object.assign(n,flattenObjectImpl(c,u));else if(Array.isArray(c))for(let t=0;t<c.length;t++)n[`${u}.${t}`]=c[t];else n[u]=c}return n}function mapKeys$1(t,e){const n={},r=Object.keys(t);for(let o=0;o<r.length;o++){const i=r[o],c=t[i];n[e(c,i,t)]=c}return n}function mapValues$1(t,e){const n={},r=Object.keys(t);for(let o=0;o<r.length;o++){const i=r[o],c=t[i];n[i]=e(c,i,t)}return n}function cloneDeep$1(t){return cloneDeepImpl(t)}function cloneDeepImpl(t,e=new Map){if(isPrimitive(t))return t;if(e.has(t))return e.get(t);if(Array.isArray(t)){const n=new Array(t.length);e.set(t,n);for(let r=0;r<t.length;r++)n[r]=cloneDeepImpl(t[r],e);Object.prototype.hasOwnProperty.call(t,"index")&&(n.index=t.index);Object.prototype.hasOwnProperty.call(t,"input")&&(n.input=t.input);return n}if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp){const e=new RegExp(t.source,t.flags);e.lastIndex=t.lastIndex;return e}if(t instanceof Map){const n=new Map;e.set(t,n);for(const[r,o]of t.entries())n.set(r,cloneDeepImpl(o,e));return n}if(t instanceof Set){const n=new Set;e.set(t,n);for(const r of t.values())n.add(cloneDeepImpl(r,e));return n}if("undefined"!=typeof Buffer&&Buffer.isBuffer(t))return t.subarray();if(isTypedArray$1(t)){const n=new(Object.getPrototypeOf(t).constructor)(t.length);e.set(t,n);for(let r=0;r<t.length;r++)n[r]=cloneDeepImpl(t[r],e);return n}if(t instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&t instanceof SharedArrayBuffer)return t.slice(0);if(t instanceof DataView){const n=new DataView(t.buffer.slice(0));e.set(t,n);copyProperties(n,t,e);return n}if("undefined"!=typeof File&&t instanceof File){const n=new File([t],t.name,{type:t.type});e.set(t,n);copyProperties(n,t,e);return n}if(t instanceof Blob){const n=new Blob([t],{type:t.type});e.set(t,n);copyProperties(n,t,e);return n}if(t instanceof Error){const n=new t.constructor;e.set(t,n);n.message=t.message;n.name=t.name;n.stack=t.stack;n.cause=t.cause;copyProperties(n,t,e);return n}if("object"==typeof t&&null!==t){const n={};e.set(t,n);copyProperties(n,t,e);return n}return t}function copyProperties(t,e,n){const r=Object.keys(e);for(let o=0;o<r.length;o++){const i=r[o],c=Object.getOwnPropertyDescriptor(e,i);(c?.writable||c?.set)&&(t[i]=cloneDeepImpl(e[i],n))}}function isObjectLike(t){return"object"==typeof t&&null!==t}function merge$1(t,e){const n=Object.keys(e);for(let r=0;r<n.length;r++){const o=n[r],i=e[o],c=t[o];Array.isArray(i)?t[o]=merge$1(c??[],i):isObjectLike(c)&&isObjectLike(i)?t[o]=merge$1(c??{},i):void 0!==c&&void 0===i||(t[o]=i)}return t}const r="[object RegExp]",o="[object String]",i="[object Number]",c="[object Boolean]",u="[object Arguments]",s="[object Symbol]",a="[object Date]",f="[object Map]",l="[object Set]",p="[object Array]",y="[object Function]",h="[object ArrayBuffer]",g="[object Object]",m="[object Error]",b="[object DataView]",d="[object Uint8Array]",j="[object Uint8ClampedArray]",A="[object Uint16Array]",O="[object Uint32Array]",w="[object BigUint64Array]",S="[object Int8Array]",$="[object Int16Array]",M="[object Int32Array]",k="[object BigInt64Array]",E="[object Float32Array]",B="[object Float64Array]";function getSymbols(t){return Object.getOwnPropertySymbols(t).filter((e=>Object.prototype.propertyIsEnumerable.call(t,e)))}function getTag(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}function areObjectsEqual(t,e,n){if(Object.is(t,e))return!0;let P=getTag(t),v=getTag(e);P===u&&(P=g);v===u&&(v=g);if(P!==v)return!1;switch(P){case o:return t.toString()===e.toString();case i:{const n=t.valueOf(),r=e.valueOf();return n===r||Number.isNaN(n)&&Number.isNaN(r)}case c:case a:case s:return Object.is(t.valueOf(),e.valueOf());case r:return t.source===e.source&&t.flags===e.flags;case y:return t===e}const x=(n=n??new Map).get(t),W=n.get(e);if(null!=x&&null!=W)return x===e;n.set(t,e);n.set(e,t);try{switch(P){case f:if(t.size!==e.size)return!1;for(const[r,o]of t.entries())if(!e.has(r)||!areObjectsEqual(o,e.get(r),n))return!1;return!0;case l:{if(t.size!==e.size)return!1;const r=Array.from(t.values()),o=Array.from(e.values());for(let t=0;t<r.length;t++){const e=r[t],i=o.findIndex((t=>areObjectsEqual(e,t,n)));if(-1===i)return!1;o.splice(i,1)}return!0}case p:case d:case j:case A:case O:case w:case S:case $:case M:case k:case E:case B:if("undefined"!=typeof Buffer&&Buffer.isBuffer(t)!==Buffer.isBuffer(e))return!1;if(t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(!areObjectsEqual(t[r],e[r],n))return!1;return!0;case h:return t.byteLength===e.byteLength&&areObjectsEqual(new Uint8Array(t),new Uint8Array(e),n);case b:return t.byteLength===e.byteLength&&t.byteOffset===e.byteOffset&&areObjectsEqual(t.buffer,e.buffer,n);case m:return t.name===e.name&&t.message===e.message;case g:{if(!(areObjectsEqual(t.constructor,e.constructor,n)||isPlainObject$1(t)&&isPlainObject$1(e)))return!1;const r=[...Object.keys(t),...getSymbols(t)],o=[...Object.keys(e),...getSymbols(e)];if(r.length!==o.length)return!1;for(let o=0;o<r.length;o++){const i=r[o],c=t[i];if(!Object.prototype.hasOwnProperty.call(e,i))return!1;if(!areObjectsEqual(c,e[i],n))return!1}return!0}default:return!1}}finally{n.delete(t);n.delete(e)}}function isNil$1(t){return null==t}function isLength(t){return Number.isSafeInteger(t)&&t>=0}function delay(t,{signal:e}={}){return new Promise(((n,r)=>{const abortError=()=>{r(new AbortError)},abortHandler=()=>{clearTimeout(o);abortError()};if(e?.aborted)return abortError();const o=setTimeout((()=>{e?.removeEventListener("abort",abortHandler);n()}),t);e?.addEventListener("abort",abortHandler,{once:!0})}))}async function timeout(t){await delay(t);throw new TimeoutError}function capitalize(t){return t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()}const P=/[A-Z]?[a-z]+|[0-9]+|[A-Z]+(?![a-z])/g;function getWords(t){return Array.from(t.match(P)??[])}function trimStart$1(t,e){if(void 0===e)return t.trimStart();let n=0;switch(typeof e){case"string":for(;n<t.length&&t[n]===e;)n++;break;case"object":for(;n<t.length&&e.includes(t[n]);)n++}return t.substring(n)}function trimEnd$1(t,e){if(void 0===e)return t.trimEnd();let n=t.length;switch(typeof e){case"string":for(;n>0&&t[n-1]===e;)n--;break;case"object":for(;n>0&&e.includes(t[n-1]);)n--}return t.substring(0,n)}function trim$1(t,e){return void 0===e?t.trim():trimStart$1(trimEnd$1(t,e),e)}const v=new Map(Object.entries({Æ:"Ae",Ð:"D",Ø:"O",Þ:"Th",ß:"ss",æ:"ae",ð:"d",ø:"o",þ:"th",Đ:"D",đ:"d",Ħ:"H",ħ:"h",ı:"i",IJ:"IJ",ij:"ij",ĸ:"k",Ŀ:"L",ŀ:"l",Ł:"L",ł:"l",ʼn:"'n",Ŋ:"N",ŋ:"n",Œ:"Oe",œ:"oe",Ŧ:"T",ŧ:"t",ſ:"s"}));const x={"&":"&","<":"<",">":">",'"':""","'":"'"};const W={"&":"&","<":"<",">":">",""":'"',"'":"'"};function isDeepKey(t){switch(typeof t){case"number":case"symbol":return!1;case"string":return t.includes(".")||t.includes("[")||t.includes("]")}}function toKey(t){return Object.is(t,-0)?"-0":t.toString()}const I=/^[\w.]+$/g,N=/\\(\\)?/g,D=RegExp("[^.[\\]]+|\\[(?:([^\"'][^[]*)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))","g");function toPath(t){if(I.test(t))return t.split(".");const e=[];"."===t[0]&&e.push("");const n=t.matchAll(D);for(const t of n){let n=t[0];const r=t[1],o=t[2],i=t[3];o?n=i.replace(N,"$1"):r&&(n=r);e.push(n)}return e}function get(t,e,n){if(null==t)return n;switch(typeof e){case"string":{const r=t[e];return void 0===r?isDeepKey(e)?get(t,toPath(e),n):n:r}case"number":case"symbol":{"number"==typeof e&&(e=toKey(e));const r=t[e];return void 0===r?n:r}default:{if(Array.isArray(e))return function getWithPath(t,e,n){if(0===e.length)return n;let r=t;for(let t=0;t<e.length;t++){if(null==r)return n;r=r[e[t]]}if(void 0===r)return n;return r}(t,e,n);const r=t[e=Object.is(e?.valueOf(),-0)?"-0":String(e)];return void 0===r?n:r}}}function property(t){return function(e){return get(e,t)}}function isMatch(t,e){if(e===t)return!0;switch(typeof e){case"object":{if(null==e)return!0;const n=Object.keys(e);if(null==t)return 0===n.length;if(Array.isArray(e))return isArrayMatch(t,e);if(e instanceof Map)return function isMapMatch(t,e){if(0===e.size)return!0;if(!(t instanceof Map))return!1;for(const[n,r]of e.entries())if(!isMatch(t.get(n),r))return!1;return!0}(t,e);if(e instanceof Set)return function isSetMatch(t,e){if(0===e.size)return!0;if(!(t instanceof Set))return!1;return isArrayMatch([...t],[...e])}(t,e);for(let r=0;r<n.length;r++){const o=n[r];if(!isPrimitive(t)&&!(o in t))return!1;if(void 0===e[o]&&void 0!==t[o])return!1;if(!isMatch(t[o],e[o]))return!1}return!0}case"function":return Object.keys(e).length>0&&isMatch(t,{...e});default:return!e}}function isArrayMatch(t,e){if(0===e.length)return!0;if(!Array.isArray(t))return!1;const n=new Set;for(let r=0;r<e.length;r++){const o=e[r],i=t.findIndex(((t,e)=>isMatch(t,o)&&!n.has(e)));if(-1===i)return!1;n.add(i)}return!0}function matches(t){t=cloneDeep$1(t);return e=>isMatch(e,t)}function cloneDeep(t){if("object"!=typeof t)return cloneDeep$1(t);switch(Object.prototype.toString.call(t)){case i:case o:case c:{const e=new t.constructor(t?.valueOf());copyProperties(e,t);return e}case u:{const e={};copyProperties(e,t);e.length=t.length;e[Symbol.iterator]=t[Symbol.iterator];return e}default:return cloneDeep$1(t)}}const z=/^(?:0|[1-9]\d*)$/;function isIndex(t){switch(typeof t){case"number":return Number.isInteger(t)&&t>=0&&t<Number.MAX_SAFE_INTEGER;case"symbol":return!1;case"string":return z.test(t)}}function isArguments(t){return null!==t&&"object"==typeof t&&"[object Arguments]"===getTag(t)}function has(t,e){let n;n=Array.isArray(e)?e:"string"==typeof e&&isDeepKey(e)&&null==t?.[e]?toPath(e):[e];if(0===n.length)return!1;let r=t;for(let t=0;t<n.length;t++){const e=n[t];if(null==r||!Object.prototype.hasOwnProperty.call(r,e)){if(!((Array.isArray(r)||isArguments(r))&&isIndex(e)&&e<r.length))return!1}r=r[e]}return!0}function matchesProperty(t,e){switch(typeof t){case"object":Object.is(t?.valueOf(),-0)&&(t="-0");break;case"number":t=toKey(t)}e=cloneDeep(e);return function(n){const r=get(n,t);return void 0===r?has(n,t):void 0===e?void 0===r:isMatch(r,e)}}function flatten(t,e=1){const n=[],r=Math.floor(e);if(!Array.isArray(t))return n;const recursive=(t,e)=>{for(const o of t)e<r&&(Array.isArray(o)||Boolean(o?.[Symbol.isConcatSpreadable])||null!==o&&"object"==typeof o&&"[object Arguments]"===Object.prototype.toString.call(o))?Array.isArray(o)?recursive(o,e+1):recursive(Array.from(o),e+1):n.push(o)};recursive(t,0);return n}function getPriority(t){return"symbol"==typeof t?1:null===t?2:void 0===t?3:t!=t?4:0}const compareValues=(t,e,n)=>{if(t!==e){if("string"==typeof t&&"string"==typeof e)return"desc"===n?e.localeCompare(t):t.localeCompare(e);const r=getPriority(t),o=getPriority(e);if(r===o&&0===r){if(t<e)return"desc"===n?1:-1;if(t>e)return"desc"===n?-1:1}return"desc"===n?o-r:r-o}return 0};function isSymbol(t){return"symbol"==typeof t||null!=t&&t instanceof Symbol}const C=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,T=/^\w*$/;function orderBy(t,e,n){if(null==t||"number"==typeof t)return[];"object"!=typeof t||Array.isArray(t)||(t=Object.values(t));Array.isArray(e)||(e=null==e?[null]:[e]);Array.isArray(n)||(n=null==n?[]:[n]);n=n.map((t=>String(t)));const getValueByNestedPath=(t,e)=>{let n=t;for(let t=0;t<e.length&&null!=n;++t)n=n[e[t]];return n},r=e.map((t=>{Array.isArray(t)&&1===t.length&&(t=t[0]);return null==t||"function"==typeof t||Array.isArray(t)||function isKey(t,e){return!Array.isArray(t)&&(!("number"!=typeof t&&"boolean"!=typeof t&&null!=t&&!isSymbol(t))||"string"==typeof t&&(T.test(t)||!C.test(t))||null!=e)}(t)?t:{key:t,path:toPath(t)}}));return t.map((t=>({original:t,criteria:r.map((e=>((t,e)=>null==e||null==t?e:"object"==typeof t&&"key"in t?Object.hasOwn(e,t.key)?e[t.key]:getValueByNestedPath(e,t.path):"function"==typeof t?t(e):Array.isArray(t)?getValueByNestedPath(e,t):"object"==typeof e?e[t]:e)(e,t)))}))).slice().sort(((t,e)=>{for(let o=0;o<r.length;o++){const r=compareValues(t.criteria[o],e.criteria[o],n[o]);if(0!==r)return r}return 0})).map((t=>t.original))}function identity(t){return t}function set(t,e,n){const r=Array.isArray(e)?e:"string"==typeof e?toPath(e):[e];let o=t;for(let t=0;t<r.length-1;t++){const e=r[t],n=r[t+1];null==o[e]&&(o[e]=isIndex(n)?[]:{});o=o[e]}o[r[r.length-1]]=n;return t}function bind(t,e,...n){const bound=function(...r){const o=[];let i=0;for(let t=0;t<n.length;t++){const e=n[t];e===bind.placeholder?o.push(r[i++]):o.push(e)}for(let t=i;t<r.length;t++)o.push(r[t]);return this instanceof bound?new t(...o):t.apply(e,o)};return bound}const L=Symbol("bind.placeholder");bind.placeholder=L;function bindKey(t,e,...n){const bound=function(...r){const o=[];let i=0;for(let t=0;t<n.length;t++){const e=n[t];e===bindKey.placeholder?o.push(r[i++]):o.push(e)}for(let t=i;t<r.length;t++)o.push(r[t]);return this instanceof bound?new t[e](...o):t[e].apply(t,o)};return bound}const R=Symbol("bindKey.placeholder");bindKey.placeholder=R;function unset(t,e){if(null==t)return!0;switch(typeof e){case"symbol":case"number":case"object":if(Array.isArray(e))return unsetWithPath(t,e);"number"==typeof e?e=toKey(e):"object"==typeof e&&(e=Object.is(e?.valueOf(),-0)?"-0":String(e));if(void 0===t?.[e])return!0;try{delete t[e];return!0}catch{return!1}case"string":if(void 0===t?.[e]&&isDeepKey(e))return unsetWithPath(t,toPath(e));try{delete t[e];return!0}catch{return!1}}}function unsetWithPath(t,e){const n=get(t,e.slice(0,-1),t),r=e[e.length-1];if(void 0===n?.[r])return!0;try{delete n[r];return!0}catch{return!1}}function isPlainObject(t){if("object"!=typeof t)return!1;if(null==t)return!1;if(null===Object.getPrototypeOf(t))return!0;if("[object Object]"!==Object.prototype.toString.call(t)){const e=t[Symbol.toStringTag];if(null==e)return!1;return!!Object.getOwnPropertyDescriptor(t,Symbol.toStringTag)?.writable&&t.toString()===`[object ${e}]`}let e=t;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function isTypedArray(t){return isTypedArray$1(t)}function mergeWith(t,...e){const n=e.slice(0,-1),r=e[e.length-1];let o=t;for(let e=0;e<n.length;e++){o=mergeWithDeep(t,n[e],r,new Map)}return o}function mergeWithDeep(t,e,n,r){if(null==e||"object"!=typeof e)return t;if(r.has(e))return clone(r.get(e));r.set(e,t);if(Array.isArray(e)){e=e.slice();for(let t=0;t<e.length;t++)e[t]=e[t]??void 0}const o=[...Object.keys(e),...getSymbols(e)];for(let i=0;i<o.length;i++){const c=o[i];let u=e[c],s=t[c];isArguments(u)&&(u={...u});isArguments(s)&&(s={...s});"undefined"!=typeof Buffer&&Buffer.isBuffer(u)&&(u=cloneDeep(u));if(Array.isArray(u))if("object"==typeof s){const t=[],e=Reflect.ownKeys(s);for(let n=0;n<e.length;n++){const r=e[n];t[r]=s[r]}s=t}else s=[];const a=n(s,u,c,t,e,r);null!=a?t[c]=a:Array.isArray(u)||isObjectLike(s)&&isObjectLike(u)?t[c]=mergeWithDeep(s,u,n,r):null==s&&isPlainObject(u)?t[c]=mergeWithDeep({},u,n,r):null==s&&isTypedArray(u)?t[c]=cloneDeep(u):void 0!==s&&void 0===u||(t[c]=u)}return t}function isArrayLike(t){return null!=t&&"function"!=typeof t&&isLength(t.length)}function conformsTo(t,e){if(null==e)return!0;if(null==t)return 0===Object.keys(e).length;for(const n of Object.keys(e)){const r=e[n],o=t[n];if(void 0===o&&!(n in t)||!r(o))return!1}return!0}function toString(t){if(null==t)return"";if(Array.isArray(t))return t.map(toString).join(",");const e=String(t);return"0"===e&&Object.is(Number(t),-0)?"-0":e}function normalizeForCase(t){"string"!=typeof t&&(t=toString(t));return t.replace(/['\u2019]/g,"")}function decimalAdjust(t,e,n=0){e=Number(e);Object.is(e,-0)&&(e="-0");if(n=Math.min(Number.parseInt(n,10),292)){const[r,o=0]=e.toString().split("e");let i=Math[t](Number(`${r}e${Number(o)+n}`));Object.is(i,-0)&&(i="-0");const[c,u=0]=i.toString().split("e");return Number(`${c}e${Number(u)-n}`)}return Math[t](Number(e))}t.AbortError=AbortError;t.TimeoutError=TimeoutError;t.after=function after(t,e){if(!Number.isInteger(t)||t<0)throw new Error("n must be a non-negative integer.");let n=0;return(...r)=>{if(++n>=t)return e(...r)}};t.ary=function ary(t,e=t.length,n){n&&(e=t.length);(Number.isNaN(e)||e<0)&&(e=0);return ary$1(t,e)};t.at=at;t.attempt=function attempt(t,...e){try{return t(...e)}catch(t){return t instanceof Error?t:new Error(t)}};t.before=function before(t,e){if(!Number.isInteger(t)||t<0)throw new Error("n must be a non-negative integer.");let n=0;return(...r)=>{if(++n<t)return e(...r)}};t.bind=bind;t.bindKey=bindKey;t.camelCase=function camelCase(t){return function camelCase$1(t){const e=getWords(t);if(0===e.length)return"";const[n,...r]=e;return`${n.toLowerCase()}${r.map((t=>capitalize(t))).join("")}`}(normalizeForCase(t))};t.capitalize=capitalize;t.castArray=function castArray(t){return 0===arguments.length?[]:Array.isArray(t)?t:[t]};t.ceil=function ceil(t,e=0){return decimalAdjust("ceil",t,e)};t.chunk=function chunk(t,e=1){return 0===(e=Math.max(Math.floor(e),0))?[]:function chunk$1(t,e){if(!Number.isInteger(e)||e<=0)throw new Error("Size must be an integer greater than zero.");const n=Math.ceil(t.length/e),r=Array(n);for(let o=0;o<n;o++){const n=o*e,i=n+e;r[o]=t.slice(n,i)}return r}(t,e)};t.clamp=function clamp(t,e,n){return null==n?Math.min(t,e):Math.min(Math.max(t,e),n)};t.clone=clone;t.cloneDeep=cloneDeep$1;t.compact=function compact(t){const e=[];for(const n of t)n&&e.push(n);return e};t.concat=function concat(...t){return flatten$1(t)};t.conforms=function conforms(t){t=cloneDeep$1(t);return function(e){return conformsTo(e,t)}};t.conformsTo=conformsTo;t.countBy=function countBy(t,e){const n={};for(const r of t){const t=e(r);n[t]=(n[t]??0)+1}return n};t.curry=function curry(t){return 0===t.length||1===t.length?t:function(e){return makeCurry(t,t.length,[e])}};t.debounce=function debounce(t,e,{signal:n}={}){let r=null;const debounced=function(...o){null!==r&&clearTimeout(r);n?.aborted||(r=setTimeout((()=>{t(...o);r=null}),e))};debounced.cancel=function(){if(null!==r){clearTimeout(r);r=null}};n?.addEventListener("abort",(function(){debounced.cancel()}),{once:!0});return debounced};t.deburr=function deburr(t){t=t.normalize("NFD");let e="";for(let n=0;n<t.length;n++){const r=t[n];r>="̀"&&r<="ͯ"||r>="︠"&&r<="︣"||(e+=v.get(r)??r)}return e};t.delay=delay;t.difference=function difference(t,...e){return difference$1(t,flatten$1(e))};t.differenceBy=differenceBy;t.differenceWith=differenceWith;t.drop=function drop(t,e){e=Math.max(e,0);return t.slice(e)};t.dropRight=function dropRight(t,e){return 0===(e=Math.min(-e,0))?t.slice():t.slice(0,e)};t.dropRightWhile=function dropRightWhile(t,e){for(let n=t.length-1;n>=0;n--)if(!e(t[n]))return t.slice(0,n+1);return[]};t.dropWhile=function dropWhile(t,e){const n=t.findIndex((t=>!e(t)));return-1===n?[]:t.slice(n)};t.endsWith=function endsWith(t,e,n=t.length){return t.endsWith(e,n)};t.escape=function escape(t){return t.replace(/[&<>"']/g,(t=>x[t]))};t.escapeRegExp=function escapeRegExp(t){return t.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")};t.fill=function fill(t,e,n=0,r=t.length){(n=Math.floor(n))||(n=0);(r=Math.floor(r))||(r=0);return function fill$1(t,e,n=0,r=t.length){const o=t.length,i=Math.max(n>=0?n:o+n,0),c=Math.min(r>=0?r:o+r,o);for(let n=i;n<c;n++)t[n]=e;return t}(t,e,n,r)};t.find=function find(t,e){let n=t;Array.isArray(t)||(n=Object.values(t));switch(typeof e){case"function":if(!Array.isArray(t)){const n=Object.entries(t);for(let r=0;r<n.length;r++){const o=n[r],i=o[0],c=o[1];if(e(c,i,t))return c}return}return n.find(e);case"object":if(Array.isArray(e)&&2===e.length){const t=e[0],r=e[1];return n.find(matchesProperty(t,r))}return n.find(matches(e));case"string":return n.find(property(e))}};t.findIndex=function findIndex(t,e){switch(typeof e){case"function":return t.findIndex(e);case"object":if(Array.isArray(e)&&2===e.length){const n=e[0],r=e[1];return t.findIndex(matchesProperty(n,r))}return t.findIndex(matches(e));case"string":return t.findIndex(property(e))}};t.findLastIndex=function findLastIndex(t,e,n=t.length-1){n=n<0?Math.max(t.length+n,0):Math.min(n,t.length-1);t=t.slice(0,n+1);switch(typeof e){case"function":return t.findLastIndex(e);case"object":if(Array.isArray(e)&&2===e.length){const n=e[0],r=e[1];return t.findLastIndex(matchesProperty(n,r))}return t.findLastIndex(matches(e));case"string":return t.findLastIndex(property(e))}};t.first=head;t.flatMap=function flatMap(t,e,n=1){return flatten$1(t.map((t=>e(t))),n)};t.flatMapDeep=function flatMapDeep(t,e){return function flattenDeep$1(t){return flatten$1(t,1/0)}(t.map((t=>e(t))))};t.flatten=flatten;t.flattenDeep=function flattenDeep(t){return flatten(t,1/0)};t.flattenDepth=function flattenDepth(t,e=1){return flatten(t,e)};t.flattenObject=function flattenObject(t){return flattenObjectImpl(t)};t.floor=function floor(t,e=0){return decimalAdjust("floor",t,e)};t.forEachRight=function forEachRight(t,e){for(let n=t.length-1;n>=0;n--){e(t[n],n,t)}};t.fromPairs=function fromPairs(t){if(!(isArrayLike(t)||t instanceof Map))return{};const e={};for(const[n,r]of t)e[n]=r;return e};t.get=get;t.groupBy=function groupBy(t,e){const n=Object.create(null);for(const r of t){const t=e(r);null==n[t]&&(n[t]=[]);n[t].push(r)}return n};t.has=has;t.head=head;t.inRange=function inRange(t,e,n){if(null==n){n=e;e=0}if(e>=n)throw new Error("The maximum value must be greater than the minimum value.");return e<=t&&t<n};t.indexOf=function indexOf(t,e,n){if(null==t)return-1;if(Number.isNaN(e)){(n=n??0)<0&&(n=Math.max(0,t.length+n));for(let e=n;e<t.length;e++)if(Number.isNaN(t[e]))return e;return-1}return t.indexOf(e,n)};t.initial=function initial(t){return t.slice(0,-1)};t.intersection=intersection;t.intersectionBy=intersectionBy;t.intersectionWith=intersectionWith;t.invert=function invert(t){const e={},n=Object.keys(t);for(let r=0;r<n.length;r++){const o=n[r];e[t[o]]=o}return e};t.isArguments=isArguments;t.isArray=function isArray(t){return Array.isArray(t)};t.isArrayLike=isArrayLike;t.isBoolean=function isBoolean(t){return!0===t||!1===t||"object"==typeof t&&null!=t&&"[object Boolean]"===getTag(t)};t.isDate=function isDate(t){return t instanceof Date};t.isEqual=function isEqual(t,e){if(typeof t==typeof e)switch(typeof t){case"bigint":case"string":case"boolean":case"symbol":case"undefined":case"function":return t===e;case"number":return t===e||Object.is(t,e);case"object":return areObjectsEqual(t,e)}return areObjectsEqual(t,e)};t.isFunction=function isFunction(t){return"function"==typeof t};t.isInteger=function isInteger(t){return Number.isInteger(t)};t.isLength=isLength;t.isMatch=isMatch;t.isNil=isNil$1;t.isNotNil=function isNotNil(t){return null!=t};t.isNull=function isNull(t){return null===t};t.isObject=function isObject(t){return null!==t&&("object"==typeof t||"function"==typeof t)};t.isObjectLike=isObjectLike;t.isPlainObject=isPlainObject;t.isPrimitive=isPrimitive;t.isRegExp=function isRegExp(t){return"[object RegExp]"===getTag(t)};t.isSafeInteger=function isSafeInteger(t){return Number.isSafeInteger(t)};t.isString=function isString(t){return"string"==typeof t||"object"==typeof t&&null!=t&&"[object String]"===getTag(t)};t.isSubset=function isSubset(t,e){return 0===difference$1(e,t).length};t.isSymbol=isSymbol;t.isTypedArray=isTypedArray;t.isUndefined=function isUndefined(t){return void 0===t};t.isWeakMap=function isWeakMap(t){return function isWeakMap$1(t){return t instanceof WeakMap}(t)};t.isWeakSet=function isWeakSet(t){return function isWeakSet$1(t){return t instanceof WeakSet}(t)};t.join=function join(t,e=","){return t.join(e)};t.kebabCase=function kebabCase(t){return function kebabCase$1(t){return getWords(t).map((t=>t.toLowerCase())).join("-")}(normalizeForCase(t))};t.keyBy=function keyBy(t,e){const n={};for(const r of t){n[e(r)]=r}return n};t.last=function last(t){return t[t.length-1]};t.lowerCase=function lowerCase(t){return function lowerCase$1(t){return getWords(t).map((t=>t.toLowerCase())).join(" ")}(normalizeForCase(t))};t.lowerFirst=function lowerFirst(t){return t.substring(0,1).toLowerCase()+t.substring(1)};t.mapKeys=function mapKeys(t,e){switch(typeof(e=e??identity)){case"string":case"symbol":case"number":case"object":return mapKeys$1(t,property(e));case"function":return mapKeys$1(t,e)}};t.mapValues=function mapValues(t,e){switch(typeof(e=e??identity)){case"string":case"symbol":case"number":case"object":return mapValues$1(t,property(e));case"function":return mapValues$1(t,e)}};t.matches=matches;t.matchesProperty=matchesProperty;t.max=function max(t=[]){let e,n=t[0];for(const r of t)if(null==e||r>e){e=r;n=r}return n};t.maxBy=function maxBy(t,e){let n=t[0],r=-1/0;for(const o of t){const t=e(o);if(t>r){r=t;n=o}}return n};t.mean=mean;t.meanBy=function meanBy(t,e){return mean(t.map((t=>e(t))))};t.memoize=function memoize(t,e={}){const{cache:n=new Map,getCacheKey:r}=e,memoizedFn=function(e){const o=r?r(e):e;if(n.has(o))return n.get(o);const i=t.call(this,e);n.set(o,i);return i};memoizedFn.cache=n;return memoizedFn};t.merge=function merge(t,...e){return mergeWith(t,...e,noop)};t.mergeWith=mergeWith;t.min=function min(t=[]){let e,n=t[0];for(const r of t)if(null==e||r<e){e=r;n=r}return n};t.minBy=function minBy(t,e){let n=t[0],r=1/0;for(const o of t){const t=e(o);if(t<r){r=t;n=o}}return n};t.negate=function negate(t){return(...e)=>!t(...e)};t.noop=noop;t.omit=function omit(t,...e){if(null==t)return{};const n=cloneDeep$1(t);for(let t=0;t<e.length;t++){let r=e[t];switch(typeof r){case"object":Array.isArray(r)||(r=Array.from(r));for(let t=0;t<r.length;t++){unset(n,r[t])}break;case"string":case"symbol":case"number":unset(n,r)}}return n};t.omitBy=function omitBy(t,e){const n={};for(const[r,o]of Object.entries(t))e(o,r)||(n[r]=o);return n};t.once=function once(t){let e,n=!1;return function(){if(n)return e;const r=t();n=!0;e=r;return r}};t.orderBy=orderBy;t.pad=function pad(t,e,n=" "){return t.padStart(Math.floor((e-t.length)/2)+t.length,n).padEnd(e,n)};t.padEnd=function padEnd(t,e=0,n=" "){return t.padEnd(e,n)};t.padStart=function padStart(t,e=0,n=" "){return t.padStart(e,n)};t.parseInt=function parseInt(t,e=0,n){n&&(e=0);return Number.parseInt(t,e)};t.partial=partial;t.partialRight=partialRight;t.partition=function partition(t,e){const n=[],r=[];for(const o of t)e(o)?n.push(o):r.push(o);return[n,r]};t.pascalCase=function pascalCase(t){return getWords(t).map((t=>capitalize(t))).join("")};t.pick=function pick(t,...e){if(function isNil(t){return null==t}(t))return{};const n={};for(let r of e){switch(typeof r){case"object":Array.isArray(r)||(r=Array.from(r));break;case"string":case"symbol":case"number":r=[r]}for(const e of r){const r=get(t,e);"string"==typeof e&&Object.prototype.hasOwnProperty.call(t,e)?n[e]=r:set(n,e,r)}}return n};t.pickBy=function pickBy(t,e){const n={};for(const[r,o]of Object.entries(t))e(o,r)&&(n[r]=o);return n};t.property=property;t.pullAt=function pullAt(t,e){const n=at(t,e),r=new Set(e.slice().sort(((t,e)=>e-t)));for(const e of r)t.splice(e,1);return n};t.random=random;t.randomInt=randomInt;t.range=function range(t,e,n){if(null==e){e=t;t=0}null==n&&(n=1);if(!Number.isInteger(n)||0===n)throw new Error("The step value must be a non-zero integer.");const r=Math.max(Math.ceil((e-t)/n),0),o=new Array(r);for(let e=0;e<r;e++)o[e]=t+e*n;return o};t.rearg=function rearg(t,...e){const n=flatten(e);return function(...e){const r=n.map((t=>e[t])).slice(0,e.length);for(let t=r.length;t<e.length;t++)r.push(e[t]);return t.apply(this,r)}};t.repeat=function repeat(t,e){return t.repeat(e)};t.rest=function rest(t,e=t.length-1){e=Number.parseInt(e,10);(Number.isNaN(e)||e<0)&&(e=t.length-1);return function rest$1(t,e=t.length-1){return function(...n){const r=n.slice(e),o=n.slice(0,e);for(;o.length<e;)o.push(void 0);return t.apply(this,[...o,r])}}(t,e)};t.round=function round(t,e=0){return decimalAdjust("round",t,e)};t.sample=function sample(t){return t[Math.floor(Math.random()*t.length)]};t.sampleSize=function sampleSize(t,e){if(e>t.length)throw new Error("Size must be less than or equal to the length of array.");const n=new Array(e),r=new Set;for(let o=t.length-e,i=0;o<t.length;o++,i++){let e=randomInt(0,o+1);r.has(e)&&(e=o);r.add(e);n[i]=t[e]}return n};t.set=set;t.shuffle=function shuffle(t){const e=t.slice();for(let t=e.length-1;t>=1;t--){const n=Math.floor(Math.random()*(t+1));[e[t],e[n]]=[e[n],e[t]]}return e};t.size=function size(t){return isNil$1(t)?0:t instanceof Map||t instanceof Set?t.size:Object.keys(t).length};t.snakeCase=function snakeCase(t){return function snakeCase$1(t){return getWords(t).map((t=>t.toLowerCase())).join("_")}(normalizeForCase(t))};t.some=function some(t,e,n){null!=n&&(e=void 0);e||(e=identity);if(!Array.isArray(t))return!1;switch(typeof e){case"function":return t.some(e);case"object":if(Array.isArray(e)&&2===e.length){const n=e[0],r=e[1];return t.some(matchesProperty(n,r))}return t.some(matches(e));case"string":return t.some(property(e))}};t.sortBy=function sortBy(t,e){return orderBy(t,e,["asc"])};t.spread=function spread(t,e=0){e=Number.parseInt(e,10);(Number.isNaN(e)||e<0)&&(e=0);return function(...n){const r=n[e],o=n.slice(0,e);r&&o.push(...r);return t.apply(this,o)}};t.startCase=function startCase(t){return function startCase$1(t){const e=getWords(t.trim());let n="";for(const t of e){n&&(n+=" ");t===t.toUpperCase()?n+=t:n+=t[0].toUpperCase()+t.slice(1).toLowerCase()}return n}(normalizeForCase(t))};t.startsWith=function startsWith(t,e,n=0){return t.startsWith(e,n)};t.sum=sum;t.sumBy=function sumBy(t,e){return sum(t.map((t=>e(t))))};t.tail=function tail(t){return t.slice(1)};t.take=function take(t,e){return t.slice(0,e)};t.takeRight=function takeRight(t,e=1){return e<=0?[]:t.slice(-e)};t.takeRightWhile=function takeRightWhile(t,e){for(let n=t.length-1;n>=0;n--)if(!e(t[n]))return t.slice(n+1);return t.slice()};t.takeWhile=function takeWhile(t,e){const n=[];for(const r of t){if(!e(r))break;n.push(r)}return n};t.throttle=function throttle(t,e){let n;return function(...r){const o=Date.now();if(null==n||o-n>=e){n=o;t(...r)}}};t.timeout=timeout;t.toFilled=function toFilled(t,e,n=0,r=t.length){const o=t.length,i=Math.max(n>=0?n:o+n,0),c=Math.min(r>=0?r:o+r,o),u=t.slice();for(let t=i;t<c;t++)u[t]=e;return u};t.toMerged=function toMerged(t,e){return merge$1(cloneDeep$1(t),e)};t.toPath=toPath;t.toString=toString;t.trim=function trim(t,e,n){if(null==t)return"";if(null!=n||null==e)return t.toString().trim();switch(typeof e){case"string":return trim$1(t,e.toString().split(""));case"object":return Array.isArray(e)?trim$1(t,e.map((t=>t.toString()))):trim$1(t,e.toString().split(""))}};t.trimEnd=function trimEnd(t,e,n){if(null==t)return"";if(null!=n||null==e)return t.toString().trimEnd();switch(typeof e){case"string":return trimEnd$1(t,e.toString().split(""));case"object":return Array.isArray(e)?trimEnd$1(t,e.map((t=>t.toString()))):trimEnd$1(t,e.toString().split(""))}};t.trimStart=function trimStart(t,e,n){if(null==t)return"";if(null!=n||null==e)return t.toString().trimStart();switch(typeof e){case"string":return trimStart$1(t,e.toString().split(""));case"object":return Array.isArray(e)?trimStart$1(t,e.map((t=>t.toString()))):trimStart$1(t,e.toString().split(""))}};t.unary=function unary(t){return ary$1(t,1)};t.unescape=function unescape(t){return t.replace(/&(?:amp|lt|gt|quot|#(0+)?39);/g,(t=>W[t]||"'"))};t.union=union;t.unionBy=unionBy;t.unionWith=unionWith;t.uniq=uniq;t.uniqBy=function uniqBy(t,e){const n=new Map;for(const r of t){const t=e(r);n.has(t)||n.set(t,r)}return Array.from(n.values())};t.uniqWith=uniqWith;t.unset=unset;t.unzip=function unzip(t){let e=0;for(let n=0;n<t.length;n++)t[n].length>e&&(e=t[n].length);const n=new Array(e);for(let r=0;r<e;r++){n[r]=new Array(t.length);for(let e=0;e<t.length;e++)n[r][e]=t[e][r]}return n};t.unzipWith=function unzipWith(t,e){const n=Math.max(...t.map((t=>t.length))),r=new Array(n);for(let o=0;o<n;o++){const n=new Array(t.length);for(let e=0;e<t.length;e++)n[e]=t[e][o];r[o]=e(...n)}return r};t.upperCase=function upperCase(t){const e=getWords(t);let n="";for(let t=0;t<e.length;t++){n+=e[t].toUpperCase();t<e.length-1&&(n+=" ")}return n};t.upperFirst=function upperFirst(t){return t.substring(0,1).toUpperCase()+t.substring(1)};t.withTimeout=async function withTimeout(t,e){return Promise.race([t(),timeout(e)])};t.without=function without(t,...e){const n=new Set(e);return t.filter((t=>!n.has(t)))};t.xor=function xor(t,e){return difference$1(union(t,e),intersection(t,e))};t.xorBy=function xorBy(t,e,n){return differenceBy(unionBy(t,e,n),intersectionBy(t,e,n),n)};t.xorWith=function xorWith(t,e,n){return differenceWith(unionWith(t,e,n),intersectionWith(t,e,n),n)};t.zip=zip;t.zipObject=function zipObject(t,e){const n={};for(let r=0;r<t.length;r++)n[t[r]]=e[r];return n};t.zipObjectDeep=function zipObjectDeep(t,e){const n={},r=zip(t,e);for(let t=0;t<r.length;t++){const[e,o]=r[t];null!=e&&set(n,e,o)}return n};t.zipWith=function zipWith(t,...e){const n=[t,...e.slice(0,-1)],r=e[e.length-1],o=[],i=Math.max(...n.map((t=>t.length)));for(let t=0;t<i;t++){const e=n.map((e=>e[t]));o.push(r(...e))}return o};Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});return t}({}); //# sourceMappingURL=browser.global.js.map
Tests:
estoolkit deepequal
data.forEach((item) => _.isEqual(item.value1, item.value2));
fast-deep-equal
data.forEach((item) => equal(item.value1, item.value2));
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (2)
Previous results
Fork
Test case name
Result
estoolkit deepequal
fast-deep-equal
Fastest:
N/A
Slowest:
N/A
Latest run results:
Run details:
(Test run date:
8 months ago
)
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:141.0) Gecko/20100101 Firefox/141.0
Browser/OS:
Firefox 141 on Windows
View result in a separate tab
Embed
Embed Benchmark Result
Test name
Executions per second
estoolkit deepequal
138650.8 Ops/sec
fast-deep-equal
361120.9 Ops/sec
Autogenerated LLM Summary
(model
llama3.2:3b
, generated one year ago):
A rather unusual output! After analyzing the code, it appears to be a JavaScript module for benchmarking functions like `deepEqual` and `isEqual`. The data provided seems to be the result of running these functions on some test cases. Here are my observations: 1. The output is in a format that suggests it's a web-based benchmarking tool. 2. There are two types of tests: `estoolkit deepequal` and `fast-deep-equal`. 3. Both tests seem to be comparing the equality of values between objects or arrays. 4. The results show the browser, device platform, operating system, executions per second, and test name for each benchmark. To answer your question, I'll provide some insights: * **Browser performance**: Chrome 127 is performing well on this dataset, with an average of 7200.45 executions per second (based on the two tests). * **Device and OS distribution**: The results are skewed towards Windows desktops, which might indicate that this benchmarking tool is being used in a Windows-dominated environment. * **Test performance**: The `fast-deep-equal` test is outperforming the `estoolkit deepequal` test by about 27% (based on the executions per second). Please note that these observations are based on a limited dataset and might not be representative of a larger population. If you'd like more insights or have specific questions, feel free to ask!
Related benchmarks:
Deep equality
Lodash.isEqual vs JSON.stringify Equality Comparison for Object
my vs fast-deep-equal
my vs fast-deep-equal vs lodash
Lodash isEqual test vs Custom Recursive Function
Comments
Confirm delete:
Do you really want to delete benchmark?