diff options
Diffstat (limited to 'node_modules/es5-ext/object/is-copy-deep.js')
-rw-r--r-- | node_modules/es5-ext/object/is-copy-deep.js | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/node_modules/es5-ext/object/is-copy-deep.js b/node_modules/es5-ext/object/is-copy-deep.js deleted file mode 100644 index a1206aead..000000000 --- a/node_modules/es5-ext/object/is-copy-deep.js +++ /dev/null @@ -1,59 +0,0 @@ -"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), [[], []]); -}; |