| Server IP : 34.87.99.72 / Your IP : 216.73.217.31 Web Server : Apache/2.4.46 (Unix) OpenSSL/1.1.1n System : Linux zlock-bitnami-lamp-prod-v2-vm 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 User : bitnami ( 1000) PHP Version : 7.4.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /opt/bitnami/apache/htdocs/app/node_modules/es5-ext/object/ |
Upload File : |
"use strict";
var eq = require("./eq")
, isPlainObject = require("./is-plain-object")
, value = require("./valid-value");
var isArray = Array.isArray
, keys = Object.keys
, objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable
, objHasOwnProperty = Object.prototype.hasOwnProperty
, eqArr
, eqVal
, eqObj;
eqArr = function (arr1, arr2, recMap) {
var i, length = arr1.length;
if (length !== arr2.length) return false;
for (i = 0; i < length; ++i) {
if (objHasOwnProperty.call(arr1, i) !== objHasOwnProperty.call(arr2, i)) return false;
if (!eqVal(arr1[i], arr2[i], recMap)) return false;
}
return true;
};
eqObj = function (obj1, obj2, recMap) {
var k1 = keys(obj1), k2 = keys(obj2);
if (k1.length !== k2.length) return false;
return k1.every(function (key) {
if (!objPropertyIsEnumerable.call(obj2, key)) return false;
return eqVal(obj1[key], obj2[key], recMap);
});
};
eqVal = function (val1, val2, recMap) {
var i, eqX, c1, c2;
if (eq(val1, val2)) return true;
if (isPlainObject(val1)) {
if (!isPlainObject(val2)) return false;
eqX = eqObj;
} else if (isArray(val1) && isArray(val2)) {
eqX = eqArr;
} else {
return false;
}
c1 = recMap[0];
c2 = recMap[1];
i = c1.indexOf(val1);
if (i === -1) {
i = c1.push(val1) - 1;
c2[i] = [];
} else if (c2[i].indexOf(val2) !== -1) return true;
c2[i].push(val2);
return eqX(val1, val2, recMap);
};
module.exports = function (val1, val2) {
if (eq(value(val1), value(val2))) return true;
return eqVal(Object(val1), Object(val2), [[], []]);
};