in core/utils.js [320:357]
isSerializable(value) {
const valueType = typeof value;
switch (valueType) {
case "object":
if (value === null) {
return true;
}
if (Object.prototype.hasOwnProperty.call(value, Symbol_Serializable)) {
return value[Symbol_Serializable] === true;
}
if (exports.isFunction(value["toJSON"])) {
return true;
}
if (Array.isArray(value)) {
return value.every((itemValue) => exports.object.isSerializable(itemValue));
}
const valuePrototype = Object.getPrototypeOf(value);
return (!valuePrototype || valuePrototype === Object.prototype)
&& Object.values(value).every((propertyValue) => exports.object.isSerializable(propertyValue));
case "undefined":
case "number":
case "boolean":
case "string":
return true;
case "symbol":
case "function":
default:
return false;
}
},