PATH:
usr
/
local
/
lib
/
node_modules
/
gulp
/
node_modules
/
es5-ext
/
object
"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), [[], []]); };
[-] is-callable.js
[edit]
[-] compact.js
[edit]
[-] copy-deep.js
[edit]
[-] first-key.js
[edit]
[-] ensure-finite-number.js
[edit]
[-] find.js
[edit]
[-] validate-stringifiable-value.js
[edit]
[-] validate-array-like.js
[edit]
[-] validate-array-like-object.js
[edit]
[-] ensure-natural-number.js
[edit]
[-] ensure-promise.js
[edit]
[-] mixin-prototypes.js
[edit]
[-] map-keys.js
[edit]
[-] is-array-like.js
[edit]
[-] is-value.js
[edit]
[-] is-integer.js
[edit]
[-] copy.js
[edit]
[-] is-empty.js
[edit]
[-] is.js
[edit]
[+]
..
[+]
keys
[-] some.js
[edit]
[-] key-of.js
[edit]
[-] find-key.js
[edit]
[+]
assign
[-] is-promise.js
[edit]
[-] is-copy-deep.js
[edit]
[-] validate-stringifiable.js
[edit]
[-] flatten.js
[edit]
[-] is-object.js
[edit]
[-] unserialize.js
[edit]
[-] ensure-thenable.js
[edit]
[-] valid-value.js
[edit]
[-] eq.js
[edit]
[-] valid-object.js
[edit]
[+]
entries
[-] is-plain-function.js
[edit]
[-] get-property-names.js
[edit]
[-] ensure-plain-object.js
[edit]
[-] assign-deep.js
[edit]
[-] ensure-natural-number-value.js
[edit]
[-] is-plain-object.js
[edit]
[-] is-thenable.js
[edit]
[-] count.js
[edit]
[-] index.js
[edit]
[-] to-array.js
[edit]
[-] _iterate.js
[edit]
[-] primitive-set.js
[edit]
[-] compare.js
[edit]
[-] is-finite-number.js
[edit]
[-] map.js
[edit]
[-] filter.js
[edit]
[-] every.js
[edit]
[-] ensure-plain-function.js
[edit]
[-] safe-traverse.js
[edit]
[-] create.js
[edit]
[-] is-copy.js
[edit]
[-] is-natural-number-value.js
[edit]
[-] clear.js
[edit]
[-] ensure-array.js
[edit]
[-] is-natural-number.js
[edit]
[-] valid-callable.js
[edit]
[-] for-each.js
[edit]
[+]
set-prototype-of
[-] normalize-options.js
[edit]
[-] serialize.js
[edit]
[-] is-number-value.js
[edit]
[-] mixin.js
[edit]
[-] ensure-integer.js
[edit]