src/indexeddb.js
function (paths) {
    var misses = [], fromCache = {};
    for (let i = 0, len = paths.length; i < len; i++) {
      if (this.changesQueued[paths[i]] !== undefined) {
        fromCache[paths[i]] = util.deepClone(this.changesQueued[paths[i]] || undefined);
      } else if(this.changesRunning[paths[i]] !== undefined) {
        fromCache[paths[i]] = util.deepClone(this.changesRunning[paths[i]] || undefined);
      } else {
        misses.push(paths[i]);
      }
    }
    if (misses.length > 0) {
      return this.getNodesFromDb(misses).then(function (nodes) {
        for (let i in fromCache) {
          nodes[i] = fromCache[i];
        }
        return nodes;
      });
    } else {
      return Promise.resolve(fromCache);
    }
  }
function (paths) {
    var misses = [], fromCache = {};
    for (let i = 0, len = paths.length; i < len; i++) {
      if (this.changesQueued[paths[i]] !== undefined) {
        fromCache[paths[i]] = util.deepClone(this.changesQueued[paths[i]] || undefined);
      } else if(this.changesRunning[paths[i]] !== undefined) {
        fromCache[paths[i]] = util.deepClone(this.changesRunning[paths[i]] || undefined);
      } else {
        misses.push(paths[i]);
      }
    }
    if (misses.length > 0) {
      return this.getNodesFromDb(misses).then(function (nodes) {
        for (let i in fromCache) {
          nodes[i] = fromCache[i];
        }
        return nodes;
      });
    } else {
      return Promise.resolve(fromCache);
    }
  }
TODO: Document