diff options
Diffstat (limited to 'std/node/events_test.ts')
-rw-r--r-- | std/node/events_test.ts | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/std/node/events_test.ts b/std/node/events_test.ts index 20d68baa3..74b4a3978 100644 --- a/std/node/events_test.ts +++ b/std/node/events_test.ts @@ -667,3 +667,21 @@ Deno.test({ assertEquals(ee.listenerCount("error"), 0); }, }); + +// Event emitter's `on` previously referenced addListener internally, so overriding addListener +// would cause a deadlock +// This is a regression test +Deno.test("Elements that extend EventEmitter listener alias don't end up in a deadlock", () => { + class X extends EventEmitter { + addListener(eventName: string, listener: () => void) { + return super.on(eventName, listener); + } + } + + const x = new X(); + try { + x.on("x", () => {}); + } catch (e) { + fail(); + } +}); |