code: function handleProtocol(schema, value, prop) {
      var protocols = schema.protocols
      var protocol
      var first
      var colon
      var length
      var index
  
      protocols = own.call(protocols, prop) ? protocols[prop].concat() : []
  
      if (protocols.length === 0) {
          return true
      }
  
      value = String(value)
      first = value.charAt(0)
  
      if (first === '#' || first === '/') {
          return true
      }
  
      colon = value.indexOf(':')
  
      if (colon === -1) {
          return true
      }
  
      length = protocols.length
      index = -1
  
      while (++index < length) {
          protocol = protocols[index]
  
          if (
              colon === protocol.length &&
              value.slice(0, protocol.length) === protocol
          ) {
              return true
          }
      }
  
      index = value.indexOf('?')
  
      if (index !== -1 && colon > index) {
          return true
      }
  
      index = value.indexOf('#')
  
      if (index !== -1 && colon > index) {
          return true
      }
  
      return false
  }
docs: /* Check whether `value` is a safe URL.