code: function (member, memberValue, visibility) {
          var newType = typeof memberValue,
              baseMemberValue,
              baseType,
              prototype = this._Constructor.prototype;
          _gpfAssert(!prototype.hasOwnProperty(member), "Existing own member can't be overridden");
          baseMemberValue = this._Super.prototype[member];
          baseType = typeof baseMemberValue;
          if ("undefined" !== baseType) {
              if (null !== baseMemberValue && newType !== baseType) {
                  gpf.Error.classMemberOverloadWithTypeChange();
              }
              if ("function" === newType && _gpfUsesSuper(memberValue)) {
                  memberValue = _gpfGenSuperMember(baseMemberValue, memberValue);
              }
          }
          _gpfIgnore(visibility); // TODO Handle constructor visibility
          prototype[member] = memberValue;
      }
docs: Defines a new non-static member of the class
  
  @param {String} member Name of the member to define
  @param {*} memberValue
  @param {Number} visibility Visibility of the members
  @gpf:closure