From 9d47e64ac3f630edcec602a8c21eb860d8facc22 Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Tue, 29 Mar 2011 23:48:17 -0400 Subject: [PATCH] Properties can no longer be declared as abstract --- lib/member_builder.js | 8 ++++++++ test/test-member_builder-prop.js | 12 ++++++++++++ 2 files changed, 20 insertions(+) diff --git a/lib/member_builder.js b/lib/member_builder.js index f098258..035146c 100644 --- a/lib/member_builder.js +++ b/lib/member_builder.js @@ -187,6 +187,14 @@ exports.buildProp = function( members, meta, name, value, keywords, base ) ); } + // abstract properties do not make sense + if ( keywords[ 'abstract' ] ) + { + throw TypeError( + "Property '" + name + "' cannot be declared as abstract" + ); + } + getMemberVisibility( members, keywords )[ name ] = value; }; diff --git a/test/test-member_builder-prop.js b/test/test-member_builder-prop.js index 1953a36..de652c8 100644 --- a/test/test-member_builder-prop.js +++ b/test/test-member_builder-prop.js @@ -48,3 +48,15 @@ mb_common.assertCommon(); }, TypeError, "Cannot override method with property" ); } )(); + +/** + * Abstract properties do not make sense. Simple as that. + */ +( function testCannotDeclareAbstractProperty() +{ + assert.throws( function() + { + mb_common.buildMemberQuick( { 'abstract': true } ); + }, TypeError, "Cannot declare abstract property" ); +} )(); +