Test IndexedDB's cursor skips deleted entries. 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) setVersionSuccess(): trans = event.target.transaction PASS trans is non-null. objectStore = db.createObjectStore('store', {keyPath: 'id'}) objectStore.createIndex('nameIndex', 'name') resetObjectStore(): basicCursorTest() trans = db.transaction(['store'], 'readwrite') testCursor(): trans.objectStore('store').openCursor(IDBKeyRange.lowerBound(0)) 0: Alpha 1: Bravo request = trans.objectStore('store').delete(0) 2: Charlie request = trans.objectStore('store').delete(25) 3: Delta request = trans.objectStore('store').delete(5) request = trans.objectStore('store').delete(6) request = trans.objectStore('store').delete(7) 4: Echo 8: India 9: Juliet 10: Kilo request = trans.objectStore('store').delete(10) 11: Lima 12: Mike request = trans.objectStore('store').delete(13) 14: Oscar 15: Papa request = trans.objectStore('store').delete(14) 16: Quebec 17: Romeo 18: Sierra 19: Tango 20: Uniform request = trans.objectStore('store').delete(17) request = trans.objectStore('store').delete(18) 21: Victor 22: Whiskey 23: X-ray 24: Yankee resetObjectStore(): reverseCursorTest(): testCursor(): trans.objectStore('store').openCursor(IDBKeyRange.lowerBound(0), 'prev') 25: Zulu 24: Yankee request = trans.objectStore('store').delete(25) 23: X-ray request = trans.objectStore('store').delete(0) 22: Whiskey request = trans.objectStore('store').delete(20) request = trans.objectStore('store').delete(19) request = trans.objectStore('store').delete(18) 21: Victor 17: Romeo 16: Quebec 15: Papa request = trans.objectStore('store').delete(15) 14: Oscar 13: November request = trans.objectStore('store').delete(12) 11: Lima 10: Kilo request = trans.objectStore('store').delete(11) 9: Juliet 8: India 7: Hotel 6: Golf 5: Foxtrot request = trans.objectStore('store').delete(7) request = trans.objectStore('store').delete(8) 4: Echo 3: Delta 2: Charlie 1: Bravo resetObjectStore(): indexCursorTest(): testCursor(): trans.objectStore('store').index('nameIndex').openCursor(IDBKeyRange.lowerBound('Alpha')) 0: Alpha 1: Bravo request = trans.objectStore('store').delete(0) 2: Charlie request = trans.objectStore('store').delete(25) 3: Delta request = trans.objectStore('store').delete(5) request = trans.objectStore('store').delete(6) request = trans.objectStore('store').delete(7) 4: Echo 8: India 9: Juliet 10: Kilo request = trans.objectStore('store').delete(10) 11: Lima 12: Mike request = trans.objectStore('store').delete(13) 14: Oscar 15: Papa request = trans.objectStore('store').delete(14) 16: Quebec 17: Romeo 18: Sierra 19: Tango 20: Uniform request = trans.objectStore('store').delete(17) request = trans.objectStore('store').delete(18) 21: Victor 22: Whiskey 23: X-ray 24: Yankee transactionComplete(): PASS successfullyParsed is true TEST COMPLETE