GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — events,test: fix TypeError in EventEmitter warning · nodejs/node@1158f44

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
  • lib
    • events.js
  • test/parallel
    • test-event-emitter-check-listener-leaks.js
    • test-event-emitter-max-listeners-warning-for-null.js
    • test-event-emitter-max-listeners-warning-for-symbol.js
    • test-event-emitter-max-listeners-warning.js
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎lib/events.js‎

Copy file name to clipboardExpand all lines: lib/events.js
+3-2Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,8 +257,9 @@ function _addListener(target, type, listener, prepend) {
257257
if (m && m > 0 && existing.length > m) {
258258
existing.warned = true;
259259
const w = new Error('Possible EventEmitter memory leak detected. ' +
260-
`${existing.length} ${type} listeners added. ` +
261-
'Use emitter.setMaxListeners() to increase limit');
260+
`${existing.length} ${String(type)} listeners ` +
261+
'added. Use emitter.setMaxListeners() to ' +
262+
'increase limit');
262263
w.name = 'Warning';
263264
w.emitter = target;
264265
w.type = type;
Collapse file

‎test/parallel/test-event-emitter-check-listener-leaks.js‎

Copy file name to clipboardExpand all lines: test/parallel/test-event-emitter-check-listener-leaks.js
+8Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@ assert.ok(!e._events['default'].hasOwnProperty('warned'));
1313
e.on('default', function() {});
1414
assert.ok(e._events['default'].warned);
1515

16+
// symbol
17+
const symbol = Symbol('symbol');
18+
e.setMaxListeners(1);
19+
e.on(symbol, function() {});
20+
assert.ok(!e._events[symbol].hasOwnProperty('warned'));
21+
e.on(symbol, function() {});
22+
assert.ok(e._events[symbol].hasOwnProperty('warned'));
23+
1624
// specific
1725
e.setMaxListeners(5);
1826
for (let i = 0; i < 5; i++) {
Collapse file

‎test/parallel/test-event-emitter-max-listeners-warning-for-null.js‎

Copy file name to clipboard
+22Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// Flags: --no-warnings
2+
// The flag suppresses stderr output but the warning event will still emit
3+
'use strict';
4+
5+
const common = require('../common');
6+
const events = require('events');
7+
const assert = require('assert');
8+
9+
const e = new events.EventEmitter();
10+
e.setMaxListeners(1);
11+
12+
process.on('warning', common.mustCall((warning) => {
13+
assert.ok(warning instanceof Error);
14+
assert.strictEqual(warning.name, 'Warning');
15+
assert.strictEqual(warning.emitter, e);
16+
assert.strictEqual(warning.count, 2);
17+
assert.strictEqual(warning.type, null);
18+
assert.ok(warning.message.includes('2 null listeners added.'));
19+
}));
20+
21+
e.on(null, function() {});
22+
e.on(null, function() {});
Collapse file

‎test/parallel/test-event-emitter-max-listeners-warning-for-symbol.js‎

Copy file name to clipboard
+24Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Flags: --no-warnings
2+
// The flag suppresses stderr output but the warning event will still emit
3+
'use strict';
4+
5+
const common = require('../common');
6+
const events = require('events');
7+
const assert = require('assert');
8+
9+
const symbol = Symbol('symbol');
10+
11+
const e = new events.EventEmitter();
12+
e.setMaxListeners(1);
13+
14+
process.on('warning', common.mustCall((warning) => {
15+
assert.ok(warning instanceof Error);
16+
assert.strictEqual(warning.name, 'Warning');
17+
assert.strictEqual(warning.emitter, e);
18+
assert.strictEqual(warning.count, 2);
19+
assert.strictEqual(warning.type, symbol);
20+
assert.ok(warning.message.includes('2 Symbol(symbol) listeners added.'));
21+
}));
22+
23+
e.on(symbol, function() {});
24+
e.on(symbol, function() {});
Collapse file

‎test/parallel/test-event-emitter-max-listeners-warning.js‎

Copy file name to clipboardExpand all lines: test/parallel/test-event-emitter-max-listeners-warning.js
+1Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ process.on('warning', common.mustCall((warning) => {
1515
assert.strictEqual(warning.emitter, e);
1616
assert.strictEqual(warning.count, 2);
1717
assert.strictEqual(warning.type, 'event-type');
18+
assert.ok(warning.message.includes('2 event-type listeners added.'));
1819
}));
1920

2021
e.on('event-type', function() {});

0 commit comments

Comments
0 (0)
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.