in public/dexie.js [130:150]
function getByKeyPath(obj, keyPath) {
// http://www.w3.org/TR/IndexedDB/#steps-for-extracting-a-key-from-a-value-using-a-key-path
if (hasOwn(obj, keyPath)) return obj[keyPath]; // This line is moved from last to first for optimization purpose.
if (!keyPath) return obj;
if (typeof keyPath !== "string") {
var rv = [];
for (var i = 0, l = keyPath.length; i < l; ++i) {
var val = getByKeyPath(obj, keyPath[i]);
rv.push(val);
}
return rv;
}
var period = keyPath.indexOf(".");
if (period !== -1) {
var innerObj = obj[keyPath.substr(0, period)];
return innerObj === undefined
? undefined
: getByKeyPath(innerObj, keyPath.substr(period + 1));
}
return undefined;
}