Test IndexedDB primary key ordering and readback from cursors. 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; indexedDB.deleteDatabase(dbname) indexedDB.open(dbname) store = db.createObjectStore('store') index = store.createIndex('index', 'indexKey') populating store... trans = db.transaction('store', 'readwrite') store = trans.objectStore('store'); store.put({"indexKey":0,"count":0}, 'c') store.put({"indexKey":0,"count":1}, 'b') store.put({"indexKey":0,"count":2}, 'a') store.put({"indexKey":0,"count":3}, 'C') store.put({"indexKey":0,"count":4}, 'B') store.put({"indexKey":0,"count":5}, 'A') store.put({"indexKey":0,"count":6}, '2') store.put({"indexKey":0,"count":7}, '1') store.put({"indexKey":0,"count":8}, '0') store.put({"indexKey":0,"count":9}, Infinity) store.put({"indexKey":0,"count":10}, 2) store.put({"indexKey":0,"count":11}, 1) store.put({"indexKey":0,"count":12}, 0) store.put({"indexKey":0,"count":13}, -1) store.put({"indexKey":0,"count":14}, -2) store.put({"indexKey":0,"count":15}, -Infinity) iterating cursor... trans = db.transaction('store', 'readonly') store = trans.objectStore('store'); index = store.index('index'); cursorRequest = index.openCursor() count = 0 cursor = cursorRequest.result PASS cursor.key is 0 PASS cursor.primaryKey is -Infinity cursor = cursorRequest.result PASS cursor.key is 0 PASS cursor.primaryKey is -2 cursor = cursorRequest.result PASS cursor.key is 0 PASS cursor.primaryKey is -1 cursor = cursorRequest.result PASS cursor.key is 0 PASS cursor.primaryKey is 0 cursor = cursorRequest.result PASS cursor.key is 0 PASS cursor.primaryKey is 1 cursor = cursorRequest.result PASS cursor.key is 0 PASS cursor.primaryKey is 2 cursor = cursorRequest.result PASS cursor.key is 0 PASS cursor.primaryKey is Infinity cursor = cursorRequest.result PASS cursor.key is 0 PASS cursor.primaryKey is '0' cursor = cursorRequest.result PASS cursor.key is 0 PASS cursor.primaryKey is '1' cursor = cursorRequest.result PASS cursor.key is 0 PASS cursor.primaryKey is '2' cursor = cursorRequest.result PASS cursor.key is 0 PASS cursor.primaryKey is 'A' cursor = cursorRequest.result PASS cursor.key is 0 PASS cursor.primaryKey is 'B' cursor = cursorRequest.result PASS cursor.key is 0 PASS cursor.primaryKey is 'C' cursor = cursorRequest.result PASS cursor.key is 0 PASS cursor.primaryKey is 'a' cursor = cursorRequest.result PASS cursor.key is 0 PASS cursor.primaryKey is 'b' cursor = cursorRequest.result PASS cursor.key is 0 PASS cursor.primaryKey is 'c' PASS count is keys.length PASS successfullyParsed is true TEST COMPLETE