On a related note, something I've always wondered about is why there isn't a native host object that represents the UA? Is there anything, save for tons of live code parsing UA strings, preventing this?<p>Seriously, even this 'lightweight' parser is around 7.6kb and a couple hundred lines of code -- and I'm not trying to knock the OP's work by any stretch. It just seems crazy that we still have to muck with this manual string parsing!<p>Why can't we just have:<p><pre><code> UA = {
name: "Chrome",
vendor: "Google",
version: [24, 0, 1312, 14], // "24.0.1312.14",
renderer: {
name: "WebKit",
vendor: "Apple",
version: [537, 17],
},
javascript: {
name: "V8",
vendor: "Google",
version: [3, 14, 5, 1],
},
os: {
name: "Windows 7",
vendor: "Microsoft",
version: ["NT", 6, 1], // "NT 6.1"
},
user: {
locale: "en-US",
timezone: "America/Chicago",
utc: -6,
}
};</code></pre>