Skip to content

Commit 0b1cb3a

Browse files
committed
Fix removal of event listeners for runSocket
The code previously used was only working with the patched Sentry method, not when Sentry was inactive. Since a Websocket is inheriting from EventTarget, the method signature usually requires two arguments. See https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener
1 parent c5518bb commit 0b1cb3a

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

app/assets/javascripts/editor/execution.js

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,21 +49,25 @@ CodeOceanEditorWebsocket = {
4949
// Remove event listeners for Promise handling.
5050
// This is especially useful in case of an error, where a `close` event might follow the `error` event.
5151
const teardown = () => {
52-
this.websocket.websocket.removeEventListener(closeListener);
53-
this.websocket.websocket.removeEventListener(errorListener);
52+
this.websocket.websocket.removeEventListener('close', closeListener);
53+
this.websocket.websocket.removeEventListener('error', errorListener);
5454
};
5555

56-
// We are using event listeners (and not `onError` or `onClose`) here, since these listeners should never be overwritten.
57-
// With `onError` or `onClose`, a new assignment would overwrite a previous one.
58-
const closeListener = this.websocket.websocket.addEventListener('close', () => {
56+
const closeListener = () => {
5957
resolve();
6058
teardown();
61-
});
62-
const errorListener = this.websocket.websocket.addEventListener('error', (error) => {
59+
}
60+
61+
const errorListener = (error) => {
6362
reject(error);
6463
teardown();
6564
this.websocket.killWebSocket(); // In case of error, ensure we always close the connection.
66-
});
65+
}
66+
67+
// We are using event listeners (and not `onError` or `onClose`) here, since these listeners should never be overwritten.
68+
// With `onError` or `onClose`, a new assignment would overwrite a previous one.
69+
this.websocket.websocket.addEventListener('close', closeListener);
70+
this.websocket.websocket.addEventListener('error', errorListener);
6771
});
6872
});
6973
},

0 commit comments

Comments
 (0)