docs: function mapObject(key, value) {
  		var c = key.charAt(0);
  		if (c === "_" || c === "$") {
  			return undefined;
  		} else if (isArray(this) && key.match(INTRINSIC)) {
  			return undefined;
  		} else if (isType(value)) {
  			return parse(value);
  		} else if (gui.Type.isComplex(value)) {
  			switch (value.constructor) {
  				case Object:
  				case Array:
  					return value;
  			}
  			return undefined;
  		} else {
  			if (isType(this)) {
  				var base = this.constructor.prototype;
  				var desc = Object.getOwnPropertyDescriptor(base, key);
  				if (desc && (desc.set || desc.get)) {
  					return undefined;
  				}
  			}
  			return value;
  		}
  	}