From fb1ed5cf6ba336973502dedfebaad2042eebd189 Mon Sep 17 00:00:00 2001 From: Faisal Salman Date: Tue, 26 Aug 2025 22:29:08 +0700 Subject: [PATCH] Only check for direct properties from the headers object --- src/main/ua-parser.js | 4 +++- test/unit/main.js | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/ua-parser.js b/src/main/ua-parser.js index 506ca75..2030ae8 100755 --- a/src/main/ua-parser.js +++ b/src/main/ua-parser.js @@ -1400,7 +1400,9 @@ // Normalize headers field name into lowercase var normalized = {}; for (var header in headers) { - normalized[String(header).toLowerCase()] = headers[header]; + if (headers.hasOwnProperty(header)) { + normalized[String(header).toLowerCase()] = headers[header]; + } } headers = normalized; } diff --git a/test/unit/main.js b/test/unit/main.js index fd1118b..b99e832 100644 --- a/test/unit/main.js +++ b/test/unit/main.js @@ -389,4 +389,10 @@ describe('Read user-agent data from req.headers', function () { const { browser } = UAParser(hEaDeRs); assert.strictEqual(browser.toString(), "Midori 0.2.2"); }); + + it('Empty headers should not raise any error', function () { + const emptyHeaders = {}; + const { browser } = UAParser(emptyHeaders); + assert.strictEqual(browser.toString(), "undefined"); + }); });