in packages/shared/util/Recoil_deepFreezeValue.js [74:91]
function deepFreezeValue(value: mixed) {
if (typeof value !== 'object' || shouldNotBeFrozen(value)) {
return;
}
Object.freeze(value); // Make all properties read-only
for (const key in value) {
// $FlowFixMe[method-unbinding] added when improving typing for this parameters
if (Object.prototype.hasOwnProperty.call(value, key)) {
const prop = value[key];
// Prevent infinite recurssion for circular references.
if (typeof prop === 'object' && prop != null && !Object.isFrozen(prop)) {
deepFreezeValue(prop);
}
}
}
Object.seal(value); // This also makes existing properties non-configurable.
}