anchor.diff:              }
               _readyState = WebSocket.CLOSED;
             }
  +          // Protocol close, use close code from transformer.
             _closeCode = transformer.closeCode;
             _closeReason = transformer.closeReason;
             _controller.close();
  
positive.code:           } else {
              _close(WebSocketStatus.PROTOCOL_ERROR);
            }
            _controller.close();
          },
          onDone: () {
  
negative.code:     if (_closeTimer == null && !_controller.isClosed) {
        // When closing the web-socket, we no longer accept data.
        _closeTimer = new Timer(const Duration(seconds: 5), () {
          // Reuse code and reason from the local close.
          _closeCode = _outCloseCode;
          _closeReason = _outCloseReason;
          _subscription.cancel();
          _controller.close();
        });
  