improve doop module

This commit is contained in:
Jeff Williams 2013-06-23 20:29:20 -07:00
parent 44d9ec6831
commit 06565a11b0

View File

@ -4,7 +4,6 @@
*/
function doop(o) {
var clone;
var descriptor;
var props;
var i;
var l;
@ -17,17 +16,11 @@ function doop(o) {
}
}
else {
// TODO: replace some of this with Object.create()?
// TODO: are we getting circular refs, etc., because we're not calling doop() on the
// descriptor?
clone = {};
clone = Object.create(o);
props = Object.getOwnPropertyNames(o);
for (i = 0, l = props.length; i < l; i++) {
descriptor = Object.getOwnPropertyDescriptor(o, props[i]);
if (descriptor.value instanceof Object) {
descriptor.value = doop(descriptor.value);
}
Object.defineProperty(clone, props[i], descriptor);
Object.defineProperty(clone, props[i],
Object.getOwnPropertyDescriptor(o, props[i]));
}
}