static async dumpStore_(db, name, savedDatabase) {
    const transactionType = 'readonly';
    const transaction = db.transaction([name], transactionType);
    /** @type {!IDBObjectStore} */
    const store = transaction.objectStore(name);
    /** @type {!shaka.offline.indexeddb.DBOperation} */
    const op = new shaka.offline.indexeddb.DBOperation(transaction, name);
    shaka.log.debug('Dumping store', name);

    /** @type {shaka.test.CannedIDB.SavedStore} */
    const savedStore = {
      parameters: {
        keyPath: store.keyPath,
        autoIncrement: store.autoIncrement,
      },
      data: [],
    };

    await op.forEachEntry((key, value) => {
      // Only store the key if there is no explicit keyPath for this store.
      const data = {value: value};
      if (!store.keyPath) {
        data.key = key;
      }
      savedStore.data.push(data);
    });

    await op.promise();
    shaka.log.debug('Dumped', savedStore.data.length, 'entries from store',
        name);
    savedDatabase.stores[name] = savedStore;
  }
@param {IDBDatabase} db An open database connection.
@param {string} name The store name to dump.
@param {shaka.test.CannedIDB.SavedDatabase} savedDatabase An object where
  we write the store parameters and the data from the named store.
@return {!Promise} Resolved when the store has been written to
  savedDatabase.stores.
@private