From 671ffd7825272bfb38ea2bd53a349f79ce01c9f8 Mon Sep 17 00:00:00 2001 From: Deokjin Kim Date: Wed, 18 Jan 2023 19:36:27 +0900 Subject: [PATCH] buffer: use min/max of `validateNumber` Instead of additional `if` statement, use min/max of `validateNumber`. PR-URL: https://github.com/nodejs/node/pull/45796 Reviewed-By: James M Snell Reviewed-By: Luigi Pinca Reviewed-By: Filip Skokan Reviewed-By: Antoine du Hamel --- lib/buffer.js | 9 +++------ test/parallel/test-buffer-no-negative-allocation.js | 3 +-- test/parallel/test-buffer-over-max-length.js | 3 +-- test/parallel/test-buffer-slow.js | 3 +-- test/parallel/test-buffer-tostring-rangeerror.js | 3 +-- 5 files changed, 7 insertions(+), 14 deletions(-) diff --git a/lib/buffer.js b/lib/buffer.js index 6b5f72c6570f78..4fc6e57b1c672b 100644 --- a/lib/buffer.js +++ b/lib/buffer.js @@ -108,9 +108,9 @@ const { const { validateArray, validateBuffer, - validateNumber, validateInteger, - validateString + validateNumber, + validateString, } = require('internal/validators'); // Provide validateInteger() but with kMaxLength as the default maximum value. const validateOffset = (value, name, min = 0, max = kMaxLength) => @@ -349,10 +349,7 @@ ObjectSetPrototypeOf(Buffer, Uint8Array); // occurs. This is done simply to keep the internal details of the // implementation from bleeding out to users. const assertSize = hideStackFrames((size) => { - validateNumber(size, 'size'); - if (!(size >= 0 && size <= kMaxLength)) { - throw new ERR_INVALID_ARG_VALUE.RangeError('size', size); - } + validateNumber(size, 'size', 0, kMaxLength); }); /** diff --git a/test/parallel/test-buffer-no-negative-allocation.js b/test/parallel/test-buffer-no-negative-allocation.js index 3d0d1919381f4c..055e2d5dc69bdd 100644 --- a/test/parallel/test-buffer-no-negative-allocation.js +++ b/test/parallel/test-buffer-no-negative-allocation.js @@ -5,9 +5,8 @@ const assert = require('assert'); const { SlowBuffer } = require('buffer'); const msg = { - code: 'ERR_INVALID_ARG_VALUE', + code: 'ERR_OUT_OF_RANGE', name: 'RangeError', - message: /^The argument 'size' is invalid\. Received [^"]*$/ }; // Test that negative Buffer length inputs throw errors. diff --git a/test/parallel/test-buffer-over-max-length.js b/test/parallel/test-buffer-over-max-length.js index c263633d941cdd..d2df358cc00ca4 100644 --- a/test/parallel/test-buffer-over-max-length.js +++ b/test/parallel/test-buffer-over-max-length.js @@ -8,9 +8,8 @@ const SlowBuffer = buffer.SlowBuffer; const kMaxLength = buffer.kMaxLength; const bufferMaxSizeMsg = { - code: 'ERR_INVALID_ARG_VALUE', + code: 'ERR_OUT_OF_RANGE', name: 'RangeError', - message: /^The argument 'size' is invalid\. Received [^"]*$/ }; assert.throws(() => Buffer((-1 >>> 0) + 2), bufferMaxSizeMsg); diff --git a/test/parallel/test-buffer-slow.js b/test/parallel/test-buffer-slow.js index 70c7846beec68a..58188a43bed021 100644 --- a/test/parallel/test-buffer-slow.js +++ b/test/parallel/test-buffer-slow.js @@ -52,9 +52,8 @@ assert.throws(() => SlowBuffer(true), bufferInvalidTypeMsg); // Should throw with invalid length value const bufferMaxSizeMsg = { - code: 'ERR_INVALID_ARG_VALUE', + code: 'ERR_OUT_OF_RANGE', name: 'RangeError', - message: /^The argument 'size' is invalid\. Received [^"]*$/ }; assert.throws(() => SlowBuffer(NaN), bufferMaxSizeMsg); assert.throws(() => SlowBuffer(Infinity), bufferMaxSizeMsg); diff --git a/test/parallel/test-buffer-tostring-rangeerror.js b/test/parallel/test-buffer-tostring-rangeerror.js index 4416effb422ac4..d2e1e0d6e46438 100644 --- a/test/parallel/test-buffer-tostring-rangeerror.js +++ b/test/parallel/test-buffer-tostring-rangeerror.js @@ -10,9 +10,8 @@ const SlowBuffer = require('buffer').SlowBuffer; const len = 1422561062959; const message = { - code: 'ERR_INVALID_ARG_VALUE', + code: 'ERR_OUT_OF_RANGE', name: 'RangeError', - message: /^The argument 'size' is invalid\. Received [^"]*$/ }; assert.throws(() => Buffer(len).toString('utf8'), message); assert.throws(() => SlowBuffer(len).toString('utf8'), message);