whole_func_string: function openDB(name, version, { blocked, upgrade, blocking } = {}) {
      const request = indexedDB.open(name, version);
      const openPromise = wrap(request);
      if (upgrade) {
          request.addEventListener('upgradeneeded', (event) => {
              upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction));
          });
      }
      if (blocked)
          request.addEventListener('blocked', () => blocked());
      if (blocking)
          openPromise.then(db => db.addEventListener('versionchange', blocking));
      return openPromise;
  }
func_code_string: function openDB(name, version, { blocked, upgrade, blocking } = {}) {
      const request = indexedDB.open(name, version);
      const openPromise = wrap(request);
      if (upgrade) {
          request.addEventListener('upgradeneeded', (event) => {
              upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction));
          });
      }
      if (blocked)
          request.addEventListener('blocked', () => blocked());
      if (blocking)
          openPromise.then(db => db.addEventListener('versionchange', blocking));
      return openPromise;
  }
func_documentation_string: Open a database.
  
  @param name Name of the database.
  @param version Schema version.
  @param callbacks Additional callbacks.