From 06565a11b0d1ad2e34574072f166749770b30fce Mon Sep 17 00:00:00 2001 From: Jeff Williams Date: Sun, 23 Jun 2013 20:29:20 -0700 Subject: [PATCH] improve doop module --- lib/jsdoc/util/doop.js | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/lib/jsdoc/util/doop.js b/lib/jsdoc/util/doop.js index b8890b2c..102a6133 100644 --- a/lib/jsdoc/util/doop.js +++ b/lib/jsdoc/util/doop.js @@ -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])); } }