From 7f92a76e1ff5d06ee636b1f8b7c6e1383d2d2695 Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Thu, 20 Jan 2011 21:50:52 -0500 Subject: [PATCH] Member builder uses public prototype by default --- lib/member_builder.js | 12 +++++++----- test/test-member_builder-prop.js | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/lib/member_builder.js b/lib/member_builder.js index cfd96f3..a16f039 100644 --- a/lib/member_builder.js +++ b/lib/member_builder.js @@ -39,11 +39,7 @@ */ exports.buildProp = function( members, meta, name, value, keywords ) { - if ( keywords[ 'public' ] ) - { - members[ 'public' ][ name ] = value; - } - else if ( keywords[ 'protected' ] ) + if ( keywords[ 'protected' ] ) { members[ 'protected' ][ name ] = value; } @@ -51,5 +47,11 @@ exports.buildProp = function( members, meta, name, value, keywords ) { members[ 'private' ][ name ] = value; } + else + { + // public keyword is the default, so explicitly specifying it is only + // for clarity + members[ 'public' ][ name ] = value; + } }; diff --git a/test/test-member_builder-prop.js b/test/test-member_builder-prop.js index c6184f8..6e062dc 100644 --- a/test/test-member_builder-prop.js +++ b/test/test-member_builder-prop.js @@ -41,6 +41,8 @@ var common = require( './common' ), */ function buildPropQuick( keywords ) { + keywords = keywords || {}; + return buildProp( members, meta, name, value, keywords ); } @@ -86,3 +88,15 @@ function buildPropQuick( keywords ) ); } )(); + +( function testCopiedIntoPublicPrototypeByDefault() +{ + buildPropQuick(); + + assert.equal( + members[ 'public' ][ name ], + value, + "Properties are copied to the public member prototype by default" + ); +} )(); +