lib/conbo.js
function(obj, propName, value)
{
	if (conbo.isAccessor(obj, propName)) return;
	if (arguments.length < 3) value = obj[propName];
	
	var enumerable = propName.indexOf('_') != 0;
	var internalName = '__'+propName;
	
	__definePrivateProperty(obj, internalName, value);

	var getter = function()
	{
		return this[internalName];
	};

	var setter = function(newValue)
	{
		if (!conbo.isEqual(newValue, this[internalName])) 
		{
			this[internalName] = newValue;
			__dispatchChange(this, propName);
		}
	};
	
	Object.defineProperty(obj, propName, {enumerable:enumerable, configurable:true, get:getter, set:setter});
}
function(obj, propName, value)
{
	if (conbo.isAccessor(obj, propName)) return;
	if (arguments.length < 3) value = obj[propName];
	
	var enumerable = propName.indexOf('_') != 0;
	var internalName = '__'+propName;
	
	__definePrivateProperty(obj, internalName, value);

	var getter = function()
	{
		return this[internalName];
	};

	var setter = function(newValue)
	{
		if (!conbo.isEqual(newValue, this[internalName])) 
		{
			this[internalName] = newValue;
			__dispatchChange(this, propName);
		}
	};
	
	Object.defineProperty(obj, propName, {enumerable:enumerable, configurable:true, get:getter, set:setter});
}
function ( obj , propName , value ) { if ( conbo . isAccessor ( obj , propName ) ) return ; if ( arguments . length < 3 ) value = obj [ propName ] ; var enumerable = propName . indexOf ( '_' ) != 0 ; var internalName = '__' + propName ; __definePrivateProperty ( obj , internalName , value ) ; var getter = function ( ) { return this [ internalName ] ; } ; var setter = function ( newValue ) { if ( ! conbo . isEqual ( newValue , this [ internalName ] ) ) { this [ internalName ] = newValue ; __dispatchChange ( this , propName ) ; } } ; Object . defineProperty ( obj , propName , { enumerable : enumerable , configurable : true , get : getter , set : setter } ) ; }
Creates a property which can be bound to DOM elements and others

@param	{Object}	obj	- The EventDispatcher object on which the property will be defined
@param	{string}	propName - The name of the property to be defined
@param	{*}			[value] - The initial value of the property (optional)
@private
Creates a property which can be bound to DOM elements and others