anchor.diff:  
   
   class _HttpClient implements HttpClient {
  -  // TODO(ajohnsen): Use eviction timeout.
     bool _closing = false;
  -
     final Map<String, Set<_HttpClientConnection>> _idleConnections
         = new HashMap<String, Set<_HttpClientConnection>>();
  -  final Set<_HttpClientConnection> _activeConnections
  -      = new HashSet<_HttpClientConnection>();
  +  final Map<String, Set<_HttpClientConnection>> _activeConnections
  +      = new HashMap<String, Set<_HttpClientConnection>>();
     final List<_Credentials> _credentials = [];
     final List<_ProxyCredentials> _proxyCredentials = [];
     Function _authenticate;
  
positive.code: 
    // Return a live connection to the idle pool.
    void _returnConnection(_HttpClientConnection connection) {
      _activeConnections.remove(connection);
      if (_closing) {
        connection.close();
        return;
      }
      if (!_idleConnections.containsKey(connection.key)) {
        _idleConnections[connection.key] = new HashSet();
      }
      _idleConnections[connection.key].add(connection);
      connection.startTimer();
      _updateTimers();
    }
  
negative.code:   // Remove a closed connnection from the active set.
    void _connectionClosed(_HttpClientConnection connection) {
      connection.stopTimer();
      var key = connection.key;
      if (_activeConnections.containsKey(key)) {
        _activeConnections[key].remove(connection);
        if (_activeConnections[key].isEmpty) {
          _activeConnections.remove(key);
        }
      }
      if (_idleConnections.containsKey(key)) {
        _idleConnections[key].remove(connection);
        if (_idleConnections[key].isEmpty) {
          _idleConnections.remove(key);
        }
      }
      _updateTimers();
  