Modern IDB: After a JS breakpoint is hit during an active transaction, the transaction is erroneously flagged as inactive
This is because transactions try to monitor VM scope to deactivate when the VM returns (e.g. event handling, etc etc) In IDBTransaction::IDBTransaction: vm.whenIdle([self, this]() { deactivate(); }); That assumption breaks down during JS debugging.
whenIdle() may not do what we want, but we'll need to find a different way.