From 7f8f61a7498b87710f66db8aed6ce3e8ee48821f Mon Sep 17 00:00:00 2001 From: LiviaMedeiros Date: Mon, 30 May 2022 19:41:57 +0800 Subject: [PATCH] tls: fix performance regression in `convertALPNProtocols()` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `isUint8Array()` covers instances of `Buffer` `isArrayBufferView()` path is cold and not worth additional check PR-URL: https://github.com/nodejs/node/pull/43250 Reviewed-By: Anna Henningsen Reviewed-By: Matteo Collina Reviewed-By: Tobias Nießen Reviewed-By: Luigi Pinca Reviewed-By: Minwoo Jung Reviewed-By: Darshan Sen --- lib/tls.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/tls.js b/lib/tls.js index 136fe50c78eed2..5a248c7d60ccf1 100644 --- a/lib/tls.js +++ b/lib/tls.js @@ -56,7 +56,6 @@ const internalUtil = require('internal/util'); internalUtil.assertCrypto(); const { isArrayBufferView, - isDataView, isUint8Array, } = require('internal/util/types'); @@ -148,16 +147,14 @@ exports.convertALPNProtocols = function convertALPNProtocols(protocols, out) { // If protocols is Array - translate it into buffer if (ArrayIsArray(protocols)) { out.ALPNProtocols = convertProtocols(protocols); - } else if (Buffer.isBuffer(protocols) || isUint8Array(protocols)) { + } else if (isUint8Array(protocols)) { // Copy new buffer not to be modified by user. out.ALPNProtocols = Buffer.from(protocols); - } else if (isDataView(protocols)) { + } else if (isArrayBufferView(protocols)) { out.ALPNProtocols = Buffer.from(protocols.buffer.slice( protocols.byteOffset, protocols.byteOffset + protocols.byteLength )); - } else if (isArrayBufferView(protocols)) { - out.ALPNProtocols = Buffer.from(protocols.slice().buffer); } };