| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent a08a1fe commit cc18fd9
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -33,7 +33,6 @@ const { | |||
| 33 | 33 | ErrorCaptureStackTrace, | |
| 34 | 34 | FunctionPrototypeBind, | |
| 35 | 35 | FunctionPrototypeCall, | |
| 36 | - NumberIsNaN, | ||
| 37 | 36 | NumberMAX_SAFE_INTEGER, | |
| 38 | 37 | ObjectDefineProperty, | |
| 39 | 38 | ObjectDefineProperties, | |
@@ -69,7 +68,6 @@ const { | |||
| 69 | 68 | codes: { | |
| 70 | 69 | ERR_INVALID_ARG_TYPE, | |
| 71 | 70 | ERR_INVALID_THIS, | |
| 72 | - ERR_OUT_OF_RANGE, | ||
| 73 | 71 | ERR_UNHANDLED_ERROR | |
| 74 | 72 | }, | |
| 75 | 73 | genericNodeError, | |
@@ -80,6 +78,7 @@ const { | |||
| 80 | 78 | validateAbortSignal, | |
| 81 | 79 | validateBoolean, | |
| 82 | 80 | validateFunction, | |
| 81 | + validateNumber, | ||
| 83 | 82 | validateString, | |
| 84 | 83 | } = require('internal/validators'); | |
| 85 | 84 | ||
@@ -278,11 +277,7 @@ ObjectDefineProperty(EventEmitter, 'defaultMaxListeners', { | |||
| 278 | 277 | return defaultMaxListeners; | |
| 279 | 278 | }, | |
| 280 | 279 | set: function(arg) { | |
| 281 | - if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) { | ||
| 282 | - throw new ERR_OUT_OF_RANGE('defaultMaxListeners', | ||
| 283 | - 'a non-negative number', | ||
| 284 | - arg); | ||
| 285 | - } | ||
| 280 | + validateNumber(arg, 'defaultMaxListeners', 0); | ||
| 286 | 281 | defaultMaxListeners = arg; | |
| 287 | 282 | } | |
| 288 | 283 | }); | |
@@ -312,8 +307,7 @@ ObjectDefineProperties(EventEmitter, { | |||
| 312 | 307 | */ | |
| 313 | 308 | EventEmitter.setMaxListeners = | |
| 314 | 309 | function(n = defaultMaxListeners, ...eventTargets) { | |
| 315 | - if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) | ||
| 316 | - throw new ERR_OUT_OF_RANGE('n', 'a non-negative number', n); | ||
| 310 | + validateNumber(n, 'setMaxListeners', 0); | ||
| 317 | 311 | if (eventTargets.length === 0) { | |
| 318 | 312 | defaultMaxListeners = n; | |
| 319 | 313 | } else { | |
@@ -409,9 +403,7 @@ function emitUnhandledRejectionOrErr(ee, err, type, args) { | |||
| 409 | 403 | * @returns {EventEmitter} | |
| 410 | 404 | */ | |
| 411 | 405 | EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) { | |
| 412 | - if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) { | ||
| 413 | - throw new ERR_OUT_OF_RANGE('n', 'a non-negative number', n); | ||
| 414 | - } | ||
| 406 | + validateNumber(n, 'setMaxListeners', 0); | ||
| 415 | 407 | this._maxListeners = n; | |
| 416 | 408 | return this; | |
| 417 | 409 | }; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -23,24 +23,22 @@ | |||
| 23 | 23 | const common = require('../common'); | |
| 24 | 24 | const assert = require('assert'); | |
| 25 | 25 | const events = require('events'); | |
| 26 | - const { inspect } = require('util'); | ||
| 27 | 26 | const e = new events.EventEmitter(); | |
| 28 | 27 | ||
| 29 | 28 | e.on('maxListeners', common.mustCall()); | |
| 30 | 29 | ||
| 31 | 30 | // Should not corrupt the 'maxListeners' queue. | |
| 32 | 31 | e.setMaxListeners(42); | |
| 33 | 32 | ||
| 34 | - const throwsObjs = [NaN, -1, 'and even this']; | ||
| 33 | + const rangeErrorObjs = [NaN, -1]; | ||
| 34 | + const typeErrorObj = 'and even this'; | ||
| 35 | 35 | ||
| 36 | - for (const obj of throwsObjs) { | ||
| 36 | + for (const obj of rangeErrorObjs) { | ||
| 37 | 37 | assert.throws( | |
| 38 | 38 | () => e.setMaxListeners(obj), | |
| 39 | 39 | { | |
| 40 | 40 | code: 'ERR_OUT_OF_RANGE', | |
| 41 | 41 | name: 'RangeError', | |
| 42 | - message: 'The value of "n" is out of range. ' + | ||
| 43 | - `It must be a non-negative number. Received ${inspect(obj)}`, | ||
| 44 | 42 | } | |
| 45 | 43 | ); | |
| 46 | 44 | ||
@@ -49,22 +47,40 @@ for (const obj of throwsObjs) { | |||
| 49 | 47 | { | |
| 50 | 48 | code: 'ERR_OUT_OF_RANGE', | |
| 51 | 49 | name: 'RangeError', | |
| 52 | - message: 'The value of "defaultMaxListeners" is out of range. ' + | ||
| 53 | - `It must be a non-negative number. Received ${inspect(obj)}`, | ||
| 54 | 50 | } | |
| 55 | 51 | ); | |
| 56 | 52 | } | |
| 57 | 53 | ||
| 54 | + assert.throws( | ||
| 55 | + () => e.setMaxListeners(typeErrorObj), | ||
| 56 | + { | ||
| 57 | + code: 'ERR_INVALID_ARG_TYPE', | ||
| 58 | + name: 'TypeError', | ||
| 59 | + } | ||
| 60 | + ); | ||
| 61 | + | ||
| 62 | + assert.throws( | ||
| 63 | + () => events.defaultMaxListeners = typeErrorObj, | ||
| 64 | + { | ||
| 65 | + code: 'ERR_INVALID_ARG_TYPE', | ||
| 66 | + name: 'TypeError', | ||
| 67 | + } | ||
| 68 | + ); | ||
| 69 | + | ||
| 58 | 70 | e.emit('maxListeners'); | |
| 59 | 71 | ||
| 60 | 72 | { | |
| 61 | 73 | const { EventEmitter, defaultMaxListeners } = events; | |
| 62 | - for (const obj of throwsObjs) { | ||
| 74 | + for (const obj of rangeErrorObjs) { | ||
| 63 | 75 | assert.throws(() => EventEmitter.setMaxListeners(obj), { | |
| 64 | 76 | code: 'ERR_OUT_OF_RANGE', | |
| 65 | 77 | }); | |
| 66 | 78 | } | |
| 67 | 79 | ||
| 80 | + assert.throws(() => EventEmitter.setMaxListeners(typeErrorObj), { | ||
| 81 | + code: 'ERR_INVALID_ARG_TYPE', | ||
| 82 | + }); | ||
| 83 | + | ||
| 68 | 84 | assert.throws( | |
| 69 | 85 | () => EventEmitter.setMaxListeners(defaultMaxListeners, 'INVALID_EMITTER'), | |
| 70 | 86 | { code: 'ERR_INVALID_ARG_TYPE' } | |
| Back | FazBrowse Home | New Git URL |
0 commit comments