From 33b272deed7765a63d5738bd398842c1432e33c1 Mon Sep 17 00:00:00 2001 From: Cohedrin Date: Tue, 7 Feb 2017 17:07:16 -0800 Subject: [PATCH] fix(parsing): handle edge case of blank strings as keys --- index.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/index.js b/index.js index ead4af8..4c42996 100644 --- a/index.js +++ b/index.js @@ -39,14 +39,13 @@ exports.parse = function(buffer, offset) { name = readCString(); - if (type === Type.None && !name && !Object.keys(obj).length) { - // Root node - name = readCString(); - } - switch (type) { case Type.None: - value = exports.parse(buffer, offset); + if (obj.hasOwnProperty(name)) { + value = obj[name]; + } else { + value = exports.parse(buffer, offset); + } break; case Type.String: @@ -74,9 +73,9 @@ exports.parse = function(buffer, offset) { throw new Error("Unknown KV type " + type + " encountered at offset " + offset[0]); } - if (name) { - obj[name] = convertObject(value); - } + if (name !== undefined) { + obj[name] = convertObject(value); + } } return obj;