Sha256: dfca60d3c8c39f5ddef1b50590af7aae7e166da32a128e1fa5956d530764b0d1

Contents?: true

Size: 1.34 KB

Versions: 29

Compression:

Stored size: 1.34 KB

Contents

'use strict';

var eq            = require('./eq')
  , isPlainObject = require('./is-plain-object')
  , value         = require('./valid-value')

  , isArray = Array.isArray, keys = Object.keys
  , propertyIsEnumerable = Object.prototype.propertyIsEnumerable

  , eqArr, eqVal, eqObj;

eqArr = function (a, b, recMap) {
	var i, l = a.length;
	if (l !== b.length) return false;
	for (i = 0; i < l; ++i) {
		if (a.hasOwnProperty(i) !== b.hasOwnProperty(i)) return false;
		if (!eqVal(a[i], b[i], recMap)) return false;
	}
	return true;
};

eqObj = function (a, b, recMap) {
	var k1 = keys(a), k2 = keys(b);
	if (k1.length !== k2.length) return false;
	return k1.every(function (key) {
		if (!propertyIsEnumerable.call(b, key)) return false;
		return eqVal(a[key], b[key], recMap);
	});
};

eqVal = function (a, b, recMap) {
	var i, eqX, c1, c2;
	if (eq(a, b)) return true;
	if (isPlainObject(a)) {
		if (!isPlainObject(b)) return false;
		eqX = eqObj;
	} else if (isArray(a) && isArray(b)) {
		eqX = eqArr;
	} else {
		return false;
	}
	c1 = recMap[0];
	c2 = recMap[1];
	i = c1.indexOf(a);
	if (i !== -1) {
		if (c2[i].indexOf(b) !== -1) return true;
	} else {
		i = c1.push(a) - 1;
		c2[i] = [];
	}
	c2[i].push(b);
	return eqX(a, b, recMap);
};

module.exports = function (a, b) {
	if (eq(value(a), value(b))) return true;
	return eqVal(Object(a), Object(b), [[], []]);
};

Version data entries

29 entries across 19 versions & 7 rubygems

Version Path
guard-sass-lint-0.1.2 node_modules/es5-ext/object/is-copy-deep.js
guard-sass-lint-0.1.1 node_modules/es5-ext/object/is-copy-deep.js
lanes-0.8.0 node_modules/es5-ext/object/is-copy-deep.js
node-compiler-0.9.1 vendor/node/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-copy-deep.js
node-compiler-0.9.0 vendor/node-v7.2.1/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-copy-deep.js
node-compiler-0.8.0 vendor/node-v7.2.0/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-copy-deep.js
xcodebuild-helper-1.2.5 externals/ios-sim-master/node_modules/es5-ext/object/is-copy-deep.js
node-compiler-0.7.0 vendor/node-v7.1.0/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-copy-deep.js
node-compiler-0.7.0 vendor/node-v6.9.1/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/is-copy-deep.js
xcodebuild-helper-1.2.3 externals/ios-sim-master/node_modules/es5-ext/object/is-copy-deep.js
blackboard-3.1.9 lib/site_template/node_modules/es5-ext/object/is-copy-deep.js
eslint_node_modules-1.6.0.1 vendor/node_modules/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/object/is-copy-deep.js
eslint_node_modules-1.6.0.1 vendor/node_modules/eslint/node_modules/escope/node_modules/es6-map/node_modules/es5-ext/object/is-copy-deep.js
eslint_node_modules-1.6.0 vendor/node_modules/eslint/node_modules/escope/node_modules/es6-map/node_modules/es5-ext/object/is-copy-deep.js
eslint_node_modules-1.6.0 vendor/node_modules/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/object/is-copy-deep.js
entangled-0.0.16 spec/dummy/public/node_modules/bower/node_modules/inquirer/node_modules/cli-color/node_modules/es5-ext/object/is-copy-deep.js
entangled-0.0.16 spec/dummy/public/node_modules/bower/node_modules/insight/node_modules/inquirer/node_modules/cli-color/node_modules/es5-ext/object/is-copy-deep.js
entangled-0.0.15 spec/dummy/public/node_modules/bower/node_modules/inquirer/node_modules/cli-color/node_modules/es5-ext/object/is-copy-deep.js
entangled-0.0.15 spec/dummy/public/node_modules/bower/node_modules/insight/node_modules/inquirer/node_modules/cli-color/node_modules/es5-ext/object/is-copy-deep.js
entangled-0.0.14 spec/dummy/public/node_modules/bower/node_modules/inquirer/node_modules/cli-color/node_modules/es5-ext/object/is-copy-deep.js