Test that pending transactions are not completed during recursive JS calls until all JS (in all frames) is finished. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". dbname = "transaction-complete-with-js-recursion-cross-frame.html" indexedDB.deleteDatabase(dbname) indexedDB.open(dbname) pendingTransaction = db.transaction(['objectStore'], 'readwrite') Start re-entrant JS transaction = db.transaction(['objectStore'], 'readwrite') End re-entrant JS store = pendingTransaction.objectStore('objectStore') PASS store !== undefined is true Pending transaction completed PASS successfullyParsed is true TEST COMPLETE