diff --git a/lib/web/websocket/constants.js b/lib/web/websocket/constants.js
index 76ed34a650e..e4e69901c96 100644
--- a/lib/web/websocket/constants.js
+++ b/lib/web/websocket/constants.js
@@ -1,18 +1,32 @@
 'use strict'
 
-// This is a Globally Unique Identifier unique used
-// to validate that the endpoint accepts websocket
-// connections.
-// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3
+/**
+ * This is a Globally Unique Identifier unique used to validate that the
+ * endpoint accepts websocket connections.
+ * @see https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3
+ * @type {'258EAFA5-E914-47DA-95CA-C5AB0DC85B11'}
+ */
 const uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'
 
-/** @type {PropertyDescriptor} */
+/**
+ * @type {PropertyDescriptor}
+ */
 const staticPropertyDescriptors = {
   enumerable: true,
   writable: false,
   configurable: false
 }
 
+/**
+ * The states of the WebSocket connection.
+ *
+ * @readonly
+ * @enum
+ * @property {0} CONNECTING
+ * @property {1} OPEN
+ * @property {2} CLOSING
+ * @property {3} CLOSED
+ */
 const states = {
   CONNECTING: 0,
   OPEN: 1,
@@ -20,11 +34,31 @@ const states = {
   CLOSED: 3
 }
 
+/**
+ * @readonly
+ * @enum
+ * @property {0} NOT_SENT
+ * @property {1} PROCESSING
+ * @property {2} SENT
+ */
 const sentCloseFrameState = {
   SENT: 1,
   RECEIVED: 2
 }
 
+/**
+ * The WebSocket opcodes.
+ *
+ * @readonly
+ * @enum
+ * @property {0x0} CONTINUATION
+ * @property {0x1} TEXT
+ * @property {0x2} BINARY
+ * @property {0x8} CLOSE
+ * @property {0x9} PING
+ * @property {0xA} PONG
+ * @see https://datatracker.ietf.org/doc/html/rfc6455#section-5.2
+ */
 const opcodes = {
   CONTINUATION: 0x0,
   TEXT: 0x1,
@@ -34,8 +68,23 @@ const opcodes = {
   PONG: 0xA
 }
 
-const maxUnsigned16Bit = 2 ** 16 - 1 // 65535
+/**
+ * The maximum value for an unsigned 16-bit integer.
+ *
+ * @type {65535} 2 ** 16 - 1
+ */
+const maxUnsigned16Bit = 65535
 
+/**
+ * The states of the parser.
+ *
+ * @readonly
+ * @enum
+ * @property {0} INFO
+ * @property {2} PAYLOADLENGTH_16
+ * @property {3} PAYLOADLENGTH_64
+ * @property {4} READ_DATA
+ */
 const parserStates = {
   INFO: 0,
   PAYLOADLENGTH_16: 2,
@@ -43,8 +92,20 @@ const parserStates = {
   READ_DATA: 4
 }
 
+/**
+ * An empty buffer.
+ *
+ * @type {Buffer}
+ */
 const emptyBuffer = Buffer.allocUnsafe(0)
 
+/**
+ * @readonly
+ * @property {1} text
+ * @property {2} typedArray
+ * @property {3} arrayBuffer
+ * @property {4} blob
+ */
 const sendHints = {
   text: 1,
   typedArray: 2,