From 2069e684707f078d8f5f4f4a3f026ea89c491418 Mon Sep 17 00:00:00 2001 From: Luigi Pinca Date: Sat, 7 Nov 2020 08:56:02 +0100 Subject: [PATCH] [fix] Fix the enumerability of some properties Make the `CONNECTING`, `OPEN`, `CLOSING`, `CLOSED`, `binaryType`, `bufferedAmount`, `extensions`, `onclose`, `onerror`, `onmessage`, `onopen`, `protocol`, `readyState`, and `url` properties enumerable. --- lib/websocket.js | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/lib/websocket.js b/lib/websocket.js index fa994ff91..09fb6710b 100644 --- a/lib/websocket.js +++ b/lib/websocket.js @@ -74,19 +74,6 @@ class WebSocket extends EventEmitter { } } - get CONNECTING() { - return WebSocket.CONNECTING; - } - get CLOSING() { - return WebSocket.CLOSING; - } - get CLOSED() { - return WebSocket.CLOSED; - } - get OPEN() { - return WebSocket.OPEN; - } - /** * This deviates from the WHATWG interface since ws doesn't support the * required default "blob" type (instead we define a custom "nodebuffer" @@ -394,10 +381,21 @@ class WebSocket extends EventEmitter { } readyStates.forEach((readyState, i) => { - Object.defineProperty(WebSocket, readyState, { - enumerable: true, - value: i - }); + const descriptor = { enumerable: true, value: i }; + + Object.defineProperty(WebSocket.prototype, readyState, descriptor); + Object.defineProperty(WebSocket, readyState, descriptor); +}); + +[ + 'binaryType', + 'bufferedAmount', + 'extensions', + 'protocol', + 'readyState', + 'url' +].forEach((property) => { + Object.defineProperty(WebSocket.prototype, property, { enumerable: true }); }); // @@ -406,6 +404,8 @@ readyStates.forEach((readyState, i) => { // ['open', 'error', 'close', 'message'].forEach((method) => { Object.defineProperty(WebSocket.prototype, `on${method}`, { + configurable: true, + enumerable: true, /** * Return the listener of the event. *