1
0
Fork 0

Added getter/setter keywords to propParse

closure/master
Mike Gerwitz 2011-01-24 23:27:55 -05:00
parent 5a3b401647
commit 2a54662716
2 changed files with 40 additions and 2 deletions

View File

@ -229,8 +229,8 @@ exports.propParse = function( data, options )
// getter/setter // getter/setter
if ( getter || setter ) if ( getter || setter )
{ {
callbackGetter.call( callbackGetter, name, getter ); callbackGetter.call( callbackGetter, name, getter, keywords );
callbackSetter.call( callbackSetter, name, setter ); callbackSetter.call( callbackSetter, name, setter, keywords );
} }
// method // method
else if ( value instanceof Function ) else if ( value instanceof Function )

View File

@ -170,5 +170,43 @@ var common = require( './common' ),
"interpretation (" + prop + ")" "interpretation (" + prop + ")"
); );
} }
// for browsers that support it
if ( Object.prototype.__defineGetter__ !== undefined )
{
data = {};
parsed_keywords = {};
// to prevent syntax errors for environments that don't support
// getters/setters in object notation
data.__defineGetter__( 'public foo', function() {} );
data.__defineSetter__( 'public foo', function() {} );
util.propParse( data, {
getter: function( name, value, keywords )
{
parsed_keywords[ name + 'g' ] = keywords;
},
setter: function( name, value, keywords )
{
parsed_keywords[ name + 's' ] = keywords;
},
} );
assert.deepEqual(
parsed_keywords.foog,
{ 'public': true },
"Getter keywords are properly recognized and available"
);
assert.deepEqual(
parsed_keywords.foos,
{ 'public': true },
"Setter keywords are properly recognized and available"
);
}
} )(); } )();