anchor.diff:      _completer = new Completer();
       _subscription = stream.listen(
           (data) {
  +          _reportError = true;
             _controller.add(data);
           },
           onDone: () {
  
positive.code:                 _closeCompleter.complete(webSocket);
                },
                onError: (error) {
                  if (!_done(error)) {
                    _closeCompleter.completeError(error);
                  }
                });
    }
  
negative.code:   StreamController _controller;
    StreamSubscription _subscription;
    bool _issuedPause = false;
    // Only report error if the last message was a user-provided message and not a
    // ping or pong message.
    bool _reportError = false;
    Completer _closeCompleter = new Completer();
    Completer _completer;
  
  