Sha256: 47afe27c15487aceed41945a70fc52731104cbd791bc04d3dab77e9659ee491d

Contents?: true

Size: 939 Bytes

Versions: 15

Compression:

Stored size: 939 Bytes

Contents

'use strict';

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

  , isArray = Array.isArray
  , copy, copyItem;

copyItem = function (value, key) {
	var index;
	if (!isPlainObject(value) && !isArray(value)) return value;
	index = this[0].indexOf(value);
	if (index === -1) return copy.call(this, value);
	return this[1][index];
};

copy = function (source) {
	var target = isArray(source) ? [] : {};
	this[0].push(source);
	this[1].push(target);
	if (isArray(source)) {
		source.forEach(function (value, key) {
			target[key] = copyItem.call(this, value, key);
		}, this);
	} else {
		forEach(source, function (value, key) {
			target[key] = copyItem.call(this, value, key);
		}, this);
	}
	return target;
};

module.exports = function (source) {
	var obj = Object(value(source));
	if (obj !== source) return obj;
	return copy.call([[], []], obj);
};

Version data entries

15 entries across 12 versions & 6 rubygems

Version Path
guard-sass-lint-0.1.2 node_modules/es5-ext/object/copy-deep.js
guard-sass-lint-0.1.1 node_modules/es5-ext/object/copy-deep.js
lanes-0.8.0 node_modules/es5-ext/object/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/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/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/copy-deep.js
xcodebuild-helper-1.2.5 externals/ios-sim-master/node_modules/es5-ext/object/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/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/copy-deep.js
xcodebuild-helper-1.2.3 externals/ios-sim-master/node_modules/es5-ext/object/copy-deep.js
blackboard-3.1.9 lib/site_template/node_modules/es5-ext/object/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/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/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/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/copy-deep.js