var clone = function(obj) {
var clonedObject;
if (obj === null || typeof obj !== 'object') {
return obj;
}
if(obj instanceof Array){
clonedObject = [];
for(var i = 0; i < obj.length; i++){
clonedObject[i] = clone(obj[i]);
}
return clonedObject;
}
if(obj instanceof Date) {
clonedObject = new Date(obj.valueOf());
return clonedObject;
}
if(obj instanceof RegExp) {
clonedObject=RegExp(obj.source,obj.flags);
return clonedObject;
}
if(obj instanceof Object) {
clonedObject = new obj.constructor();
for(var attr in obj){
if(obj.hasOwnProperty(attr)){
clonedObject[attr] = clone(obj[attr]);
}
}
return clonedObject;
}
throw new Error('Object not cloned');
};
module.exports = clone;