in public/dexie.js [151:177]
function setByKeyPath(obj, keyPath, value) {
if (!obj || keyPath === undefined) return;
if ("isFrozen" in Object && Object.isFrozen(obj)) return;
if (typeof keyPath !== "string" && "length" in keyPath) {
assert(typeof value !== "string" && "length" in value);
for (var i = 0, l = keyPath.length; i < l; ++i) {
setByKeyPath(obj, keyPath[i], value[i]);
}
} else {
var period = keyPath.indexOf(".");
if (period !== -1) {
var currentKeyPath = keyPath.substr(0, period);
var remainingKeyPath = keyPath.substr(period + 1);
if (remainingKeyPath === "")
if (value === undefined) delete obj[currentKeyPath];
else obj[currentKeyPath] = value;
else {
var innerObj = obj[currentKeyPath];
if (!innerObj) innerObj = obj[currentKeyPath] = {};
setByKeyPath(innerObj, remainingKeyPath, value);
}
} else {
if (value === undefined) delete obj[keyPath];
else obj[keyPath] = value;
}
}
}