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"); + }); });