src/js/libs/spiritual-gui.js
function(proto, key, def) {
		var desc;
		["getter", "setter"].forEach(function(name, set) {
			while (proto && proto[key] && !gui.Type.isDefined(def[name])) {
				proto = Object.getPrototypeOf(proto);
				desc = Object.getOwnPropertyDescriptor(proto, key);
				if (desc) {
					def[name] = desc[set ? "set" : "get"];
				}
			}
		});
		return {
			enumerable: true,
			configurable: true,
			get: def.getter || this._NOGETTER,
			set: def.setter || this._NOSETTER
		};
	}
function(proto, key, def) {
		var desc;
		["getter", "setter"].forEach(function(name, set) {
			while (proto && proto[key] && !gui.Type.isDefined(def[name])) {
				proto = Object.getPrototypeOf(proto);
				desc = Object.getOwnPropertyDescriptor(proto, key);
				if (desc) {
					def[name] = desc[set ? "set" : "get"];
				}
			}
		});
		return {
			enumerable: true,
			configurable: true,
			get: def.getter || this._NOGETTER,
			set: def.setter || this._NOSETTER
		};
	}
function ( proto , key , def ) { var desc ; [ "getter" , "setter" ] . forEach ( function ( name , set ) { while ( proto && proto [ key ] && ! gui . Type . isDefined ( def [ name ] ) ) { proto = Object . getPrototypeOf ( proto ) ; desc = Object . getOwnPropertyDescriptor ( proto , key ) ; if ( desc ) { def [ name ] = desc [ set ? "set" : "get" ] ; } } } ) ; return { enumerable : true , configurable : true , get : def . getter || this . _NOGETTER , set : def . setter || this . _NOSETTER } ; }
Compute property descriptor for getter-setter
type definition and assign it to the prototype.
@param {object} proto
@param {String} key
@param {object} def
@returns {defect}
Compute property descriptor for getter - setter type definition and assign it to the prototype .