From 0ba3122db5ebd96e471c220646c33235c8868a46 Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Thu, 20 Jan 2011 21:46:49 -0500 Subject: [PATCH] Member builder recognizes protected members --- lib/member_builder.js | 4 ++++ test/test-member_builder-prop.js | 25 ++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/lib/member_builder.js b/lib/member_builder.js index f6b75ee..af63d3b 100644 --- a/lib/member_builder.js +++ b/lib/member_builder.js @@ -43,5 +43,9 @@ exports.buildProp = function( members, meta, name, value, keywords ) { members[ 'public' ][ name ] = value; } + else if ( keywords[ 'protected' ] ) + { + members[ 'protected' ][ name ] = value; + } }; diff --git a/test/test-member_builder-prop.js b/test/test-member_builder-prop.js index 321d9db..c9a5cc6 100644 --- a/test/test-member_builder-prop.js +++ b/test/test-member_builder-prop.js @@ -36,10 +36,19 @@ var common = require( './common' ), ; +/** + * Partially applied function to quickly build properties using common test data + */ +function buildPropQuick( keywords ) +{ + return buildProp( members, meta, name, value, keywords ); +} + + ( function testRecognizesPublicProperty() { var keywords = { 'public': true }, - result = buildProp( members, meta, name, value, keywords ) + result = buildPropQuick( keywords ) ; assert.equal( @@ -49,3 +58,17 @@ var common = require( './common' ), ); } )(); + +( function testRecognizesProtectedProperty() +{ + var keywords = { 'protected': true }, + result = buildPropQuick( keywords ) + ; + + assert.equal( + members[ 'protected' ][ name ], + value, + "Protected properties are copied to the protected member prototype" + ); +} )(); +