lib: disable default memory leak warning for AbortSignal · nodejs/node@5aec513
@@ -12,22 +12,22 @@ const { setTimeout } = require('timers/promises');
1212common.expectWarning({
1313MaxListenersExceededWarning: [
1414['Possible EventTarget memory leak detected. 3 foo listeners added to ' +
15-'EventTarget. MaxListeners is 2. Use events.setMaxListeners() ' +
15+ 'EventTarget. MaxListeners is 2. Use events.setMaxListeners() ' +
1616'to increase limit'],
1717['Possible EventTarget memory leak detected. 3 foo listeners added to ' +
18-'[MessagePort [EventTarget]]. ' +
19-'MaxListeners is 2. ' +
20-'Use events.setMaxListeners() to increase ' +
18+ '[MessagePort [EventTarget]]. ' +
19+ 'MaxListeners is 2. ' +
20+ 'Use events.setMaxListeners() to increase ' +
2121'limit'],
2222['Possible EventTarget memory leak detected. 3 foo listeners added to ' +
23-'[MessagePort [EventTarget]]. ' +
24-'MaxListeners is 2. ' +
25-'Use events.setMaxListeners() to increase ' +
23+ '[MessagePort [EventTarget]]. ' +
24+ 'MaxListeners is 2. ' +
25+ 'Use events.setMaxListeners() to increase ' +
2626'limit'],
27-['Possible EventTarget memory leak detected. 3 foo listeners added to ' +
28-'[AbortSignal]. ' +
29-'MaxListeners is 2. ' +
30-'Use events.setMaxListeners() to increase ' +
27+['Possible EventTarget memory leak detected. 2 foo listeners added to ' +
28+ '[AbortSignal]. ' +
29+ 'MaxListeners is 1. ' +
30+ 'Use events.setMaxListeners() to increase ' +
3131'limit'],
3232],
3333});
@@ -65,13 +65,25 @@ common.expectWarning({
6565mc.port1.addEventListener('foo', () => {});
6666mc.port1.addEventListener('foo', () => {});
6767mc.port1.addEventListener('foo', () => {});
68+}
686970+{
71+// No warning emitted because AbortController ignores `EventEmitter.defaultMaxListeners`
72+setMaxListeners(2);
6973const ac = new AbortController();
7074ac.signal.addEventListener('foo', () => {});
7175ac.signal.addEventListener('foo', () => {});
7276ac.signal.addEventListener('foo', () => {});
7377}
747879+{
80+// Will still warn as `setMaxListeners` can still manually set a limit
81+const ac = new AbortController();
82+setMaxListeners(1, ac.signal);
83+ac.signal.addEventListener('foo', () => {});
84+ac.signal.addEventListener('foo', () => {});
85+}
86+7587{
7688// It works for EventEmitters also
7789const ee = new EventEmitter();