anchor.diff:  import 'dart:html';
   import 'dart:typed_data';
   
  +import 'package:async/async.dart';
   import 'package:stack_trace/stack_trace.dart';
   
   import 'src/base_client.dart';
  -import 'src/base_request.dart';
  -import 'src/byte_stream.dart';
   import 'src/exception.dart';
  -import 'src/streamed_response.dart';
  +import 'src/request.dart';
  +import 'src/response.dart';
   
   // TODO(nweiz): Move this under src/, re-export from lib/http.dart, and use this
   // automatically from [new Client] once sdk#24581 is fixed.
  
positive.code:   /// Creates a new HTTP client.
    BrowserClient();
  
    /// Whether to send credentials such as cookies or authorization headers for
    /// cross-site requests.
    ///
    /// Defaults to `false`.
    bool withCredentials = false;
  
    /// Sends an HTTP request and asynchronously returns the response.
    Future<StreamedResponse> send(BaseRequest request) async {
      var bytes = await request.finalize().toBytes();
      var xhr = new HttpRequest();
      _xhrs.add(xhr);
      _openHttpRequest(xhr, request.method, request.url.toString(), asynch: true);
      xhr.responseType = 'blob';
      xhr.withCredentials = withCredentials;
      request.headers.forEach(xhr.setRequestHeader);
  
      var completer = new Completer<StreamedResponse>();
      xhr.onLoad.first.then((_) {
        // TODO(nweiz): Set the response type to "arraybuffer" when issue 18542
        // is fixed.
  
negative.code: 
        reader.onLoad.first.then((_) {
          var body = reader.result as Uint8List;
          completer.complete(new Response(
              xhr.responseUrl,
              xhr.status,
              reasonPhrase: xhr.statusText,
              body: new Stream.fromIterable([body]),
              headers: xhr.responseHeaders));
        });
  
        reader.onError.first.then((error) {
  