is-copy.js
 1  'use strict';
 2  
 3  var keys  = Object.keys
 4    , value = require('./valid-value');
 5  
 6  module.exports = function (a, b) {
 7  	var aKeys;
 8  	a = Object(value(a));
 9  	if (b == null) {
10  		return false;
11  	}
12  	b = Object(b);
13  	if (a === b) {
14  		return true;
15  	}
16  	return ((aKeys = keys(a)).length === keys(b).length) &&
17  		aKeys.every(function (name) {
18  			return b.propertyIsEnumerable(name) && (a[name] === b[name]);
19  		}, a);
20  };