Test IndexedDB's IDBObjectStore.delete(IDBKeyRange) method. 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; dbname = "delete-range.html" indexedDB.deleteDatabase(dbname) indexedDB.open(dbname) db.createObjectStore('store') trans = db.transaction('store', 'readwrite') store = trans.objectStore('store') store.put(1,1) store.put(2,2) store.put(3,3) store.put(4,4) store.put(5,5) store.put(6,6) store.put(7,7) store.put(8,8) store.put(9,9) store.put(10,10) store.delete(IDBKeyRange.bound(3, 8, false, false)) getting keys from store... expect: [1,2,9,10] actual: [1,2,9,10] PASS Match! trans = db.transaction('store', 'readwrite') store = trans.objectStore('store') store.put(1,1) store.put(2,2) store.put(3,3) store.put(4,4) store.put(5,5) store.put(6,6) store.put(7,7) store.put(8,8) store.put(9,9) store.put(10,10) store.delete(IDBKeyRange.bound(3, 8, true, false)) getting keys from store... expect: [1,2,3,9,10] actual: [1,2,3,9,10] PASS Match! trans = db.transaction('store', 'readwrite') store = trans.objectStore('store') store.put(1,1) store.put(2,2) store.put(3,3) store.put(4,4) store.put(5,5) store.put(6,6) store.put(7,7) store.put(8,8) store.put(9,9) store.put(10,10) store.delete(IDBKeyRange.bound(3, 8, false, true)) getting keys from store... expect: [1,2,8,9,10] actual: [1,2,8,9,10] PASS Match! trans = db.transaction('store', 'readwrite') store = trans.objectStore('store') store.put(1,1) store.put(2,2) store.put(3,3) store.put(4,4) store.put(5,5) store.put(6,6) store.put(7,7) store.put(8,8) store.put(9,9) store.put(10,10) store.delete(IDBKeyRange.bound(3, 8, true, true)) getting keys from store... expect: [1,2,3,8,9,10] actual: [1,2,3,8,9,10] PASS Match! PASS successfullyParsed is true TEST COMPLETE