From f8744b2b6b0c41a4846fdfb22bb96687ac664ddb Mon Sep 17 00:00:00 2001 From: DeepView Autofix <276251120+deepview-autofix@users.noreply.github.com> Date: Thu, 16 Apr 2026 19:54:30 +0300 Subject: [PATCH] fix: populate wellknownHeaderNameBuffers cache The `wellknownHeaderNameBuffers` object was declared but never populated, so `getHeaderNameAsBuffer` always allocated a fresh Buffer on each call, defeating the intended caching optimization. Pre-fill the cache in the same initialization loop used for `headerNameLowerCasedRecord`. Co-Authored-By: Claude Co-Authored-By: DeepView Autofix <276251120+deepview-autofix@users.noreply.github.com> Co-Authored-By: Nikita Skovoroda Signed-off-by: Nikita Skovoroda --- lib/core/constants.js | 1 + test/node-test/constants.js | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 test/node-test/constants.js diff --git a/lib/core/constants.js b/lib/core/constants.js index 088cf47d80f..7f254320ec3 100644 --- a/lib/core/constants.js +++ b/lib/core/constants.js @@ -134,6 +134,7 @@ for (let i = 0; i < wellknownHeaderNames.length; ++i) { const lowerCasedKey = key.toLowerCase() headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] = lowerCasedKey + wellknownHeaderNameBuffers[lowerCasedKey] = Buffer.from(lowerCasedKey) } module.exports = { diff --git a/test/node-test/constants.js b/test/node-test/constants.js new file mode 100644 index 00000000000..4fd5525361d --- /dev/null +++ b/test/node-test/constants.js @@ -0,0 +1,25 @@ +'use strict' + +const { test } = require('node:test') +const assert = require('node:assert') +const { + wellknownHeaderNames, + getHeaderNameAsBuffer +} = require('../../lib/core/constants') + +test('getHeaderNameAsBuffer returns cached buffer for well-known headers', () => { + for (let i = 0; i < wellknownHeaderNames.length; ++i) { + const lowerCased = wellknownHeaderNames[i].toLowerCase() + const first = getHeaderNameAsBuffer(lowerCased) + const second = getHeaderNameAsBuffer(lowerCased) + assert.ok(Buffer.isBuffer(first)) + assert.strictEqual(first.toString(), lowerCased) + assert.strictEqual(first, second, `expected cached buffer for ${lowerCased}`) + } +}) + +test('getHeaderNameAsBuffer allocates a new buffer for unknown headers', () => { + const buffer = getHeaderNameAsBuffer('x-custom-not-well-known') + assert.ok(Buffer.isBuffer(buffer)) + assert.strictEqual(buffer.toString(), 'x-custom-not-well-known') +})