Test IndexedDB binary keys 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) db.createObjectStore('store'); db.createObjectStore('storeWithKeyPath', {keyPath: 'binary'}); testBinaryKeys1(): trans = db.transaction('store', 'readwrite') store = trans.objectStore('store') store.put(0, new Uint8Array([])); store.put(1, new Uint8Array([0])); store.put(2, new Uint8Array([0, 0])); store.put(3, new Uint8Array([0, 1])); store.put(4, new Uint8Array([1])); store.put(5, new Uint8Array([1, 0])); store.put(6, new Uint8Array([1, 1])); store.put(7, new Uint8Array([255])); testBinaryKeys2(): trans = db.transaction('store', 'readwrite') store = trans.objectStore('store') store.put('value', new Uint8ClampedArray([1,2,3])) store.put('value', new Uint16Array([1,2,3])) store.put('value', new Uint32Array([1,2,3])) store.put('value', new Int8Array([1,2,3])) store.put('value', new Int16Array([1,2,3])) store.put('value', new Int32Array([1,2,3])) store.put('value', new Float32Array([1,2,3])) store.put('value', new Float64Array([1,2,3])) store.put('value', new Uint8Array([1,2,3]).buffer) store.put('value', new DataView(new Uint8Array([1,2,3]).buffer)) testBinaryKeys3(): trans = db.transaction('storeWithKeyPath', 'readwrite') store = trans.objectStore('storeWithKeyPath') binary = new Uint8ClampedArray([1,2,3]) store.put({ binary }) request = store.get(binary) PASS binary.constructor === request.result.binary.constructor is true binary = new Uint16Array([1,2,3]) store.put({ binary }) request = store.get(binary) PASS binary.constructor === request.result.binary.constructor is true binary = new Uint32Array([1,2,3]) store.put({ binary }) request = store.get(binary) PASS binary.constructor === request.result.binary.constructor is true binary = new Int8Array([1,2,3]) store.put({ binary }) request = store.get(binary) PASS binary.constructor === request.result.binary.constructor is true binary = new Int16Array([1,2,3]) store.put({ binary }) request = store.get(binary) PASS binary.constructor === request.result.binary.constructor is true binary = new Int32Array([1,2,3]) store.put({ binary }) request = store.get(binary) PASS binary.constructor === request.result.binary.constructor is true binary = new Float32Array([1,2,3]) store.put({ binary }) request = store.get(binary) PASS binary.constructor === request.result.binary.constructor is true binary = new Float64Array([1,2,3]) store.put({ binary }) request = store.get(binary) PASS binary.constructor === request.result.binary.constructor is true binary = new Uint8Array([1,2,3]).buffer store.put({ binary }) request = store.get(binary) PASS binary.constructor === request.result.binary.constructor is true binary = new DataView(new Uint8Array([1,2,3]).buffer) store.put({ binary }) request = store.get(binary) PASS binary.constructor === request.result.binary.constructor is true PASS successfullyParsed is true TEST COMPLETE