lib: refactor to use min/max of validateNumber

Fix NumberIsNaN is called two times and change error code
to ERR_OUT_OF_RANGE when RangeError is occurred in test.

PR-URL: https://github.com/nodejs/node/pull/45772
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
This commit is contained in:
Deokjin Kim 2023-02-04 06:12:05 +09:00 committed by GitHub
parent bfadee5e68
commit 88d71dc301
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 11 deletions

View File

@ -3,7 +3,6 @@
const { const {
MapPrototypeEntries, MapPrototypeEntries,
NumberIsNaN, NumberIsNaN,
NumberIsInteger,
NumberMAX_SAFE_INTEGER, NumberMAX_SAFE_INTEGER,
ObjectFromEntries, ObjectFromEntries,
ReflectConstruct, ReflectConstruct,
@ -186,9 +185,8 @@ class Histogram {
if (!isHistogram(this)) if (!isHistogram(this))
throw new ERR_INVALID_THIS('Histogram'); throw new ERR_INVALID_THIS('Histogram');
validateNumber(percentile, 'percentile'); validateNumber(percentile, 'percentile');
if (NumberIsNaN(percentile) || percentile <= 0 || percentile > 100) if (NumberIsNaN(percentile) || percentile <= 0 || percentile > 100)
throw new ERR_INVALID_ARG_VALUE.RangeError('percentile', percentile); throw new ERR_OUT_OF_RANGE('percentile', '> 0 && <= 100', percentile);
return this[kHandle]?.percentile(percentile); return this[kHandle]?.percentile(percentile);
} }
@ -201,9 +199,8 @@ class Histogram {
if (!isHistogram(this)) if (!isHistogram(this))
throw new ERR_INVALID_THIS('Histogram'); throw new ERR_INVALID_THIS('Histogram');
validateNumber(percentile, 'percentile'); validateNumber(percentile, 'percentile');
if (NumberIsNaN(percentile) || percentile <= 0 || percentile > 100) if (NumberIsNaN(percentile) || percentile <= 0 || percentile > 100)
throw new ERR_INVALID_ARG_VALUE.RangeError('percentile', percentile); throw new ERR_OUT_OF_RANGE('percentile', '> 0 && <= 100', percentile);
return this[kHandle]?.percentileBigInt(percentile); return this[kHandle]?.percentileBigInt(percentile);
} }
@ -283,11 +280,7 @@ class RecordableHistogram extends Histogram {
return; return;
} }
if (!NumberIsInteger(val)) validateInteger(val, 'val', 1);
throw new ERR_INVALID_ARG_TYPE('val', ['integer', 'bigint'], val);
if (val < 1 || val > NumberMAX_SAFE_INTEGER)
throw new ERR_OUT_OF_RANGE('val', 'a safe integer greater than 0', val);
this[kHandle]?.record(val); this[kHandle]?.record(val);
} }

View File

@ -91,7 +91,7 @@ const { sleep } = require('internal/util');
() => histogram.percentile(i), () => histogram.percentile(i),
{ {
name: 'RangeError', name: 'RangeError',
code: 'ERR_INVALID_ARG_VALUE' code: 'ERR_OUT_OF_RANGE'
} }
); );
}); });