diff --git a/lib/propobj.js b/lib/propobj.js index a36ff01..8a1b744 100644 --- a/lib/propobj.js +++ b/lib/propobj.js @@ -90,18 +90,23 @@ exports.createPropProxy = function( base, dest, props ) ( function( prop ) { + // just in case it's already defined, so we don't throw an error + dest[ prop ] = undefined; + // public properties, when set internally, must forward to the // actual variable - dest.__defineSetter__( prop, function( val ) - { - base[ prop ] = val; - } ); + Object.defineProperty( dest, prop, { + set: function( val ) + { + base[ prop ] = val; + }, - // since we're defining a setter, we'll need to define a getter - // to return the value, or we'll simply return undefined - dest.__defineGetter__( prop, function() - { - return base[ prop ]; + get: function() + { + return base[ prop ]; + }, + + enumerable: true, } ); } ).call( null, prop ); }