Test IndexedDB's cursor skips deleted entries. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". webkitIndexedDB.open('cursor-skip-deleted') db = event.target.result db.setVersion('new version') setVersionSuccess(): trans = event.target.result PASS trans !== null is true Deleted all object stores. objectStore = db.createObjectStore('store', {keyPath: 'id'}) objectStore.createIndex('nameIndex', 'name') resetObjectStore(): basicCursorTest() trans = db.transaction([], webkitIDBTransaction.READ_WRITE) testCursor(): trans.objectStore('store').openCursor(webkitIDBKeyRange.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(webkitIDBKeyRange.lowerBound(0), webkitIDBCursor.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(webkitIDBKeyRange.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