aboutsummaryrefslogtreecommitdiff
path: root/node_modules/es5-ext/object/is-copy-deep.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/es5-ext/object/is-copy-deep.js')
-rw-r--r--node_modules/es5-ext/object/is-copy-deep.js59
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), [[], []]);
-};