WebSocket.close doesn't like passing null arguments
diff --git a/lib/html.dart b/lib/html.dart
index 9d0b070..c0ef9a1 100644
--- a/lib/html.dart
+++ b/lib/html.dart
@@ -105,7 +105,15 @@
   /// Pipes user events to [_webSocket].
   void _listen() {
     _controller.local.stream.listen((message) => _webSocket.send(message),
-        onDone: () => _webSocket.close(_localCloseCode, _localCloseReason));
+        onDone: () {
+      if (_localCloseCode != null && _localCloseReason != null) {
+        _webSocket.close(_localCloseCode, _localCloseReason);
+      } else if (_localCloseCode != null) {
+        _webSocket.close(_localCloseCode);
+      } else {
+        _webSocket.close();
+      }
+    });
   }
 }