indexeddbshim 17.2.0 → 17.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- /*! indexeddbshim - v17.2.0 - 8/18/2026 */
1
+ /*! indexeddbshim - v17.2.1 - 8/18/2026 */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -10441,9 +10441,17 @@
10441
10441
  * @returns {boolean}
10442
10442
  */
10443
10443
  function dbError(tx, err) {
10444
- if (calledDBError || err === true) {
10444
+ if (calledDBError) {
10445
10445
  return false;
10446
10446
  }
10447
+ // Must be set synchronously (not inside the `sysdbFinishedCbDelete` callback below) to
10448
+ // guard against reentrancy: `sysdbFinishedCbDelete` -> `rollback`/`commit` -> websql-configurable's
10449
+ // `done()` -> `currentTask.errorCallback(er)`, which is this very `dbError`, calling back into
10450
+ // us before the first invocation has finished. Without this, a second rollback/commit gets
10451
+ // issued on the shared `sysdb` connection after it has already moved on to the next queued
10452
+ // transaction, corrupting that connection's task queue (see issue with unrelated `open()` calls
10453
+ // failing/crashing after a `deleteDatabase` file-removal error).
10454
+ calledDBError = true;
10447
10455
  var er = webSQLErrback(/** @type {SQLError} */err || tx);
10448
10456
  sysdbFinishedCbDelete(true, function () {
10449
10457
  req.__done = true;
@@ -10455,7 +10463,6 @@
10455
10463
  cancelable: true
10456
10464
  });
10457
10465
  req.dispatchEvent(e);
10458
- calledDBError = true;
10459
10466
  });
10460
10467
  return false;
10461
10468
  }