lib/abaaso.js
function () {
		if ( ( server || ( !client.ie || client.version > 8 ) ) && typeof Object.defineProperty === "function" ) {
			return function ( obj, prop, descriptor ) {
				if ( !( descriptor instanceof Object ) ) {
					throw new Error( label.error.invalidArguments );
				}

				if ( descriptor.value !== undefined && descriptor.get !== undefined ) {
					delete descriptor.value;
				}

				Object.defineProperty( obj, prop, descriptor );
			};
		}
		else {
			return function ( obj, prop, descriptor ) {
				if ( !( descriptor instanceof Object ) ) {
					throw new Error( label.error.invalidArguments );
				}

				obj[prop] = descriptor.value;

				return obj;
			};
		}
	}
function () {
		if ( ( server || ( !client.ie || client.version > 8 ) ) && typeof Object.defineProperty === "function" ) {
			return function ( obj, prop, descriptor ) {
				if ( !( descriptor instanceof Object ) ) {
					throw new Error( label.error.invalidArguments );
				}

				if ( descriptor.value !== undefined && descriptor.get !== undefined ) {
					delete descriptor.value;
				}

				Object.defineProperty( obj, prop, descriptor );
			};
		}
		else {
			return function ( obj, prop, descriptor ) {
				if ( !( descriptor instanceof Object ) ) {
					throw new Error( label.error.invalidArguments );
				}

				obj[prop] = descriptor.value;

				return obj;
			};
		}
	}
function ( ) { if ( ( server || ( ! client . ie || client . version > 8 ) ) && typeof Object . defineProperty === "function" ) { return function ( obj , prop , descriptor ) { if ( ! ( descriptor instanceof Object ) ) { throw new Error ( label . error . invalidArguments ) ; } if ( descriptor . value !== undefined && descriptor . get !== undefined ) { delete descriptor . value ; } Object . defineProperty ( obj , prop , descriptor ) ; } ; } else { return function ( obj , prop , descriptor ) { if ( ! ( descriptor instanceof Object ) ) { throw new Error ( label . error . invalidArguments ) ; } obj [ prop ] = descriptor . value ; return obj ; } ; } }
Sets a property on an Object, if defineProperty cannot be used the value will be set classically

@method property
@param  {Object} obj        Object to decorate
@param  {String} prop       Name of property to set
@param  {Object} descriptor Descriptor of the property
@return {Object}            Object receiving the property
Sets a property on an Object if defineProperty cannot be used the value will be set classically