Test IndexedDB's openCursor. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". webkitIndexedDB.open('cursor-delete') 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('test') objectStore.add('myValue1', 'myKey1') objectStore.add('myValue2', 'myKey2') objectStore.add('myValue3', 'myKey3') objectStore.add('myValue4', 'myKey4') openCursor1 trans = db.transaction(['test'], webkitIDBTransaction.READ_WRITE) trans.objectStore('test').openCursor({range: keyRange}) event.target.result.delete() PASS event.target.result.value is "myValue1" event.target.result.continue() event.target.result.delete() PASS event.target.result.value is "myValue2" event.target.result.continue() event.target.result.delete() PASS event.target.result.value is "myValue3" event.target.result.continue() event.target.result.delete() PASS event.target.result.value is "myValue4" event.target.result.continue() PASS counter is 5 trans.objectStore('test').openCursor(keyRange) PASS event.target.result is null trans = db.transaction(['test'], webkitIDBTransaction.READ_WRITE) objectStore = trans.objectStore('test') objectStore.add('myValue1', 'myKey1') openCursor2 objectStore.openCursor(keyRange) PASS [object IDBCursorWithValue] is non-null. event.target.result.delete() objectStore.get('myKey1') PASS event.target.result is undefined PASS successfullyParsed is true TEST COMPLETE