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 });
Thanks! I'm not very familiar with these JavaScript features, as I simply translated my Python implementation without a deep understanding of the JavaScript specifics. Would you mind creating a PR?
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 });