Ensure that aborted VERSION_CHANGE transactions are completely rolled back On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB; indexedDB.deleteDatabase(dbname) indexedDB.open(dbname) PASS trans instanceof IDBTransaction is true store = db.createObjectStore('store1') setVersion1 complete PASS db.version is 1 vcreq = indexedDB.open(dbname, 2) setVersion2() callback PASS db.version is 2 PASS vcreq.transaction instanceof IDBTransaction is true store = db.deleteObjectStore('store1') store = db.createObjectStore('store2') raising exception setVersion2Abort() callback request = indexedDB.open(dbname) PASS db.version is 1 PASS db.objectStoreNames.contains('store1') is true PASS db.objectStoreNames.contains('store2') is false PASS successfullyParsed is true TEST COMPLETE