code: function (noProtoHost) {
          var s, self = this;
  
          // Rebuild source
          if (!self.source || noProtoHost) {
            s = '';
  
            if (!noProtoHost) {
              if (self.protocol) {
                s += self.protocol + '://';
              } else {
                s += '//';
              }
  
              if (self.userInfo) {
                s += self.userInfo + '@';
              }
  
              if (self.host) {
                s += self.host;
              }
  
              if (self.port) {
                s += ':' + self.port;
              }
            }
  
            if (self.path) {
              s += self.path;
            }
  
            if (self.query) {
              s += '?' + self.query;
            }
  
            if (self.anchor) {
              s += '#' + self.anchor;
            }
  
            self.source = s;
          }
  
          return self.source;
        }
docs: Returns the full URI of the internal structure.
  
  @method getURI
  @param {Boolean} noProtoHost Optional no host and protocol part. Defaults to false.