readline: refactor to use validateNumber

`validateNumber` throws more proper error code and
error name.

PR-URL: https://github.com/nodejs/node/pull/45801
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Minwoo Jung <nodecorelab@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
This commit is contained in:
Deokjin Kim 2022-12-09 20:36:43 +09:00 committed by Filip Skokan
parent 671ffd7825
commit dc06df31b6
3 changed files with 32 additions and 12 deletions

View File

@ -19,7 +19,6 @@ const {
MathMax,
MathMaxApply,
NumberIsFinite,
NumberIsNaN,
ObjectSetPrototypeOf,
RegExpPrototypeExec,
StringPrototypeCodePointAt,
@ -42,6 +41,7 @@ const {
const {
validateAbortSignal,
validateArray,
validateNumber,
validateString,
validateUint32,
} = require('internal/validators');
@ -196,13 +196,7 @@ function InterfaceConstructor(input, output, completer, terminal) {
historySize = kHistorySize;
}
if (
typeof historySize !== 'number' ||
NumberIsNaN(historySize) ||
historySize < 0
) {
throw new ERR_INVALID_ARG_VALUE.RangeError('historySize', historySize);
}
validateNumber(historySize, 'historySize', 0);
// Backwards compat; check the isTTY prop of the output stream
// when `terminal` was not specified

View File

@ -126,7 +126,7 @@ function assertCursorRowsAndCols(rli, rows, cols) {
});
// Constructor throws if historySize is not a positive number
['not a number', -1, NaN, {}, true, Symbol(), null].forEach((historySize) => {
[-1, NaN].forEach((historySize) => {
assert.throws(() => {
readline.createInterface({
input,
@ -134,7 +134,20 @@ function assertCursorRowsAndCols(rli, rows, cols) {
});
}, {
name: 'RangeError',
code: 'ERR_INVALID_ARG_VALUE'
code: 'ERR_OUT_OF_RANGE',
});
});
// Constructor throws if type of historySize is not a number
['not a number', {}, true, Symbol(), null].forEach((historySize) => {
assert.throws(() => {
readline.createInterface({
input,
historySize,
});
}, {
name: 'TypeError',
code: 'ERR_INVALID_ARG_TYPE',
});
});

View File

@ -103,7 +103,7 @@ function assertCursorRowsAndCols(rli, rows, cols) {
});
// Constructor throws if historySize is not a positive number
['not a number', -1, NaN, {}, true, Symbol(), null].forEach((historySize) => {
[-1, NaN].forEach((historySize) => {
assert.throws(() => {
readline.createInterface({
input,
@ -111,7 +111,20 @@ function assertCursorRowsAndCols(rli, rows, cols) {
});
}, {
name: 'RangeError',
code: 'ERR_INVALID_ARG_VALUE'
code: 'ERR_OUT_OF_RANGE',
});
});
// Constructor throws if type of historySize is not a number
['not a number', {}, true, Symbol(), null].forEach((historySize) => {
assert.throws(() => {
readline.createInterface({
input,
historySize,
});
}, {
name: 'TypeError',
code: 'ERR_INVALID_ARG_TYPE',
});
});