anchor.diff:      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();
         });
  
positive.code:             }
              _readyState = WebSocket.CLOSED;
            }
            _closeCode = transformer.closeCode;
            _closeReason = transformer.closeReason;
            _controller.close();
  
negative.code:           } else {
              _close(WebSocketStatus.PROTOCOL_ERROR);
            }
            // An error happened, set the close code set above.
            _closeCode = _outCloseCode;
            _closeReason = _outCloseReason;
            _controller.close();
          },
          onDone: () {
  