in frontend/context.js [288:308]
setValue(objectId, key, value, insert, pred, elemId) {
if (!objectId) {
throw new RangeError('setValue needs an objectId')
}
if (key === '') {
throw new RangeError('The key of a map entry must not be an empty string')
}
if (isObject(value) && !(value instanceof Date) && !(value instanceof Counter) && !(value instanceof Int) && !(value instanceof Uint) && !(value instanceof Float64)) {
// Nested object (map, list, text, or table)
return this.createNestedObjects(objectId, key, value, insert, pred, elemId)
} else {
// Date or counter object, or primitive value (number, string, boolean, or null)
const description = this.getValueDescription(value)
const op = {action: 'set', obj: objectId, insert, value: description.value, pred}
if (elemId) op.elemId = elemId; else op.key = key
if (description.datatype) op.datatype = description.datatype
this.addOp(op)
return description
}
}