Test IndexedDB's IDBCursor.continue() with a key parameter. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". webkitIndexedDB.open('cursor-continue') db = event.target.result db.setVersion('new version') trans = event.target.result PASS trans !== null is true Deleted all object stores. db.createObjectStore('someObjectStore') objectStore.createIndex('someIndex', 'x') objectStore.add({'x': testData[nextToAdd]}, nextToAdd) objectStore.add({'x': testData[nextToAdd]}, nextToAdd) objectStore.add({'x': testData[nextToAdd]}, nextToAdd) objectStore.add({'x': testData[nextToAdd]}, nextToAdd) objectStore.add({'x': testData[nextToAdd]}, nextToAdd) objectStore.add({'x': testData[nextToAdd]}, nextToAdd) objectStore.add({'x': testData[nextToAdd]}, nextToAdd) objectStore.add({'x': testData[nextToAdd]}, nextToAdd) objectStore.add({'x': testData[nextToAdd]}, nextToAdd) objectStore.add({'x': testData[nextToAdd]}, nextToAdd) objectStore.add({'x': testData[nextToAdd]}, nextToAdd) objectStore.add({'x': testData[nextToAdd]}, nextToAdd) objectStore.add({'x': testData[nextToAdd]}, nextToAdd) objectStore.add({'x': testData[nextToAdd]}, nextToAdd) objectStore.add({'x': testData[nextToAdd]}, nextToAdd) objectStore.add({'x': testData[nextToAdd]}, nextToAdd) objectStore.add({'x': testData[nextToAdd]}, nextToAdd) objectStore.add({'x': testData[nextToAdd]}, nextToAdd) indexObject.openKeyCursor(null, webkitIDBCursor.NEXT) PASS event.target.result.primaryKey is 0 event.target.result.continue(3.14159) PASS event.target.result.primaryKey is 3 event.target.result.continue(3.14159) PASS event.target.result.primaryKey is 4 event.target.result.continue(3.14159) PASS event.target.result.primaryKey is 5 event.target.result.continue(12) PASS event.target.result.primaryKey is 7 event.target.result.continue(date) PASS event.target.result.primaryKey is 9 event.target.result.continue(date) PASS event.target.result.primaryKey is 10 event.target.result.continue(date) PASS event.target.result.primaryKey is 11 event.target.result.continue('A bit1') PASS event.target.result.primaryKey is 14 event.target.result.continue('A bit3') PASS event.target.result.primaryKey is 16 event.target.result.continue('the BIGGEST string') PASS event.target.result.primaryKey is 17 event.target.result.continue('the BIGGEST string') PASS event.target.result is null indexObject.openKeyCursor(null, webkitIDBCursor.PREV) PASS event.target.result.primaryKey is 17 event.target.result.continue('A bit2') PASS event.target.result.primaryKey is 15 event.target.result.continue('A bit2') PASS event.target.result.primaryKey is 14 event.target.result.continue(date) PASS event.target.result.primaryKey is 10 event.target.result.continue(date) PASS event.target.result.primaryKey is 9 event.target.result.continue(1) PASS event.target.result.primaryKey is 2 event.target.result.continue(1) PASS event.target.result.primaryKey is 1 event.target.result.continue(1) PASS event.target.result.primaryKey is 0 event.target.result.continue(1) PASS event.target.result is null PASS successfullyParsed is true TEST COMPLETE