anchor.diff:    }
   
     HttpClientConnection _prepareHttpClientConnection(
  -    String host,
  -    int port,
       String method,
  -    String path,
  +    Uri url,
       [_HttpClientConnection connection]) {
  +
  +    String host = url.domain;
  +    int port = url.port == 0 ? HttpClient.DEFAULT_HTTP_PORT : url.port;
   
       void _connectionOpened(_SocketConnection socketConn,
                              _HttpClientConnection connection) {
         connection._connectionEstablished(socketConn);
  +      String path;
  +      if (url.query != "") {
  +        if (url.fragment != "") {
  +          path = "${url.path}?${url.query}#${url.fragment}";
  +        } else {
  +          path = "${url.path}?${url.query}";
  +        }
  +      } else {
  +        path = url.path;
  +      }
         HttpClientRequest request = connection.open(method, path);
         request.headers.host = host;
         request.headers.port = port;
  
positive.code:   Map<String, Queue<_SocketConnection>> _openSockets;
    Set<_SocketConnection> _activeSockets;
    Timer _evictionTimer;
    bool _shutdown;  // Has this HTTP client been shutdown?
  }
  
  
negative.code: 
    HttpClientConnection open(
        String method, String host, int port, String path) {
      // TODO(sgjesse): The path set here can contain both query and
      // fragment. They should be cracked and set correctly.
      return _open(method, new Uri.fromComponents(
          scheme: "http", domain: host, port: port, path: path));
    }
  
    HttpClientConnection _open(String method,
                               Uri uri,
                               [_HttpClientConnection connection]) {
      if (_shutdown) throw new HttpException("HttpClient shutdown");
      if (method == null || uri.domain.isEmpty() == null) {
        throw new ArgumentError(null);
      }
      return _prepareHttpClientConnection(method, uri, connection);
    }
  
    HttpClientConnection openUrl(String method, Uri url) {
  