anchor.diff:  
   
   int _numOutstandingLoadRequests = 0;
  -
  +var _httpClient;
   
   void _httpGet(Uri uri, String libraryUri, loadCallback(List<int> data)) {
  -  var httpClient = new HttpClient();
  -  try {
  -    httpClient.getUrl(uri)
  -      .then((HttpClientRequest request) {
  -        request.persistentConnection = false;
  -        return request.close();
  -      })
  -      .then((HttpClientResponse response) {
  -        // Only create a ByteBuilder if multiple chunks are received.
  -        var builder = new BytesBuilder(copy: false);
  -        response.listen(
  -            builder.add,
  -            onDone: () {
  -              if (response.statusCode != 200) {
  -                var msg = 'Failure getting $uri: '
  -                          '${response.statusCode} ${response.reasonPhrase}';
  -                _asyncLoadError(uri.toString(), libraryUri, msg);
  -              }
  -
  -              List<int> data = builder.takeBytes();
  -              httpClient.close();
  -              loadCallback(data);
  -            },
  -            onError: (error) {
  -              _asyncLoadError(uri.toString(), libraryUri, error);
  -            });
  -      })
  -      .catchError((error) {
  -        _asyncLoadError(uri.toString(), libraryUri, error);
  -      });
  -  } catch (error) {
  -    _asyncLoadError(uri.toString(), libraryUri, error);
  -  }
  +  if (_httpClient == null) {
  +    _httpClient = new HttpClient()..maxConnectionsPerHost = 6;
  +  }
  +  _httpClient.getUrl(uri)
  +    .then((HttpClientRequest request) => request.close())
  +    .then((HttpClientResponse response) {
  +      var builder = new BytesBuilder(copy: false);
  +      response.listen(
  +          builder.add,
  +          onDone: () {
  +            if (response.statusCode != 200) {
  +              var msg = 'Failure getting $uri: '
  +                        '${response.statusCode} ${response.reasonPhrase}';
  +              _asyncLoadError(uri.toString(), libraryUri, msg);
  +            }
  +            loadCallback(builder.takeBytes());
  +          },
  +          onError: (error) {
  +            _asyncLoadError(uri.toString(), libraryUri, error);
  +          });
  +    })
  +    .catchError((error) {
  +      _asyncLoadError(uri.toString(), libraryUri, error);
  +    });
     // TODO(floitsch): remove this line. It's just here to push an event on the
     // event loop so that we invoke the scheduled microtasks. Also remove the
     // import of dart:async when this line is not needed anymore.
  
positive.code:   _asyncLoadErrorCallback(uri, libraryUri, error);
    if (_numOutstandingLoadRequests == 0) {
      _signalDoneLoading();
    }
  }
  
  
negative.code:                  "${_numOutstandingLoadRequests} requests remaining");
    if (_numOutstandingLoadRequests == 0) {
      _signalDoneLoading();
      _cleanup();
    }
  }
  
  