From f3ab106750b1e461f0dfca0d2495897bff76ec24 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Tue, 13 Feb 2018 00:58:22 +0100 Subject: [PATCH] buffer: remove obsolete NaN check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These two NaN entries are not necessary and we can safely remove them. PR-URL: https://github.com/nodejs/node/pull/18744 Reviewed-By: Weijia Wang Reviewed-By: Michaƫl Zasso Reviewed-By: Colin Ihrig Reviewed-By: James M Snell Reviewed-By: Yuta Hiroto Reviewed-By: Luigi Pinca --- lib/buffer.js | 7 ++----- test/parallel/test-buffer-arraybuffer.js | 3 +++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/buffer.js b/lib/buffer.js index 95d41206c67142..fa966b27a7a009 100644 --- a/lib/buffer.js +++ b/lib/buffer.js @@ -377,10 +377,7 @@ function fromArrayBuffer(obj, byteOffset, length) { } else { // convert length to non-negative integer length = +length; - // Check for NaN - if (length !== length) { - length = 0; - } else if (length > 0) { + if (length > 0) { if (length > maxLength) throw new errors.RangeError('ERR_BUFFER_OUT_OF_BOUNDS', 'length'); } else { @@ -403,7 +400,7 @@ function fromObject(obj) { } if (obj.length !== undefined || isAnyArrayBuffer(obj.buffer)) { - if (typeof obj.length !== 'number' || obj.length !== obj.length) { + if (typeof obj.length !== 'number') { return new FastBuffer(); } return fromArrayLike(obj); diff --git a/test/parallel/test-buffer-arraybuffer.js b/test/parallel/test-buffer-arraybuffer.js index 5ecf0279e02c88..41af1eecbea4b2 100644 --- a/test/parallel/test-buffer-arraybuffer.js +++ b/test/parallel/test-buffer-arraybuffer.js @@ -148,3 +148,6 @@ b.writeDoubleBE(11.11, 0, true); message: '"length" is outside of buffer bounds' }); } + +// Test an array like entry with the length set to NaN. +assert.deepStrictEqual(Buffer.from({ length: NaN }), Buffer.alloc(0));