Test IndexedDB's cursor skips deleted entries. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". webkitIndexedDB.open('name') PASS 'onsuccess' in result is true PASS 'onerror' in result is true PASS 'readyState' in result is true An event should fire shortly... Success event fired: PASS 'result' in event is true PASS 'code' in event is false PASS 'message' in event is false PASS 'source' in event is true PASS event.source != null is true PASS 'onsuccess' in event.target is true PASS 'onerror' in event.target is true PASS 'readyState' in event.target is true PASS event.target.readyState is event.target.DONE db = event.result db.setVersion('new version') PASS 'onsuccess' in result is true PASS 'onerror' in result is true PASS 'readyState' in result is true An event should fire shortly... setVersionSuccess(): Success event fired: PASS 'result' in event is true PASS 'code' in event is false PASS 'message' in event is false PASS 'source' in event is true PASS event.source != null is true PASS 'onsuccess' in event.target is true PASS 'onerror' in event.target is true PASS 'readyState' in event.target is true PASS event.target.readyState is event.target.DONE trans = event.result PASS trans !== null is true Deleted all object stores. createAndPopulateObjectStore(): 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)) PASS 'onsuccess' in result is true PASS 'onerror' in result is true PASS 'readyState' in result is true An event should fire shortly... 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) PASS 'onsuccess' in result is true PASS 'onerror' in result is true PASS 'readyState' in result is true An event should fire shortly... 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')) PASS 'onsuccess' in result is true PASS 'onerror' in result is true PASS 'readyState' in result is true An event should fire shortly... 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