I did some fuzz testing with this library and found an edge case.
The JSON string "{\"__proto__\": 0}" is correctly parsed by the native JSON library into { "__proto__": 0 }, but in this library it is parsed into {}.
To solve, in the parseObj function update obj[key] = value; to
Object.defineProperty(obj, key, { value, writable: true, enumerable: true, configurable: true });
I did some fuzz testing with this library and found an edge case.
The JSON string
"{\"__proto__\": 0}"is correctly parsed by the native JSON library into{ "__proto__": 0 }, but in this library it is parsed into{}.To solve, in the parseObj function update
obj[key] = value;toObject.defineProperty(obj, key, { value, writable: true, enumerable: true, configurable: true });