55var ta = require ( './util/create-typed-array' )
66var support = require ( '../util/support' )
77
8+ // All key types supported by IndexedDB Second Edition.
89var types = [
9- { type : 'number' , value : - 20 } ,
10- { type : '+Infinity' , value : Infinity } ,
11- { type : '-Infinity' , value : - Infinity } ,
12- { type : 'string' , value : 'test' } ,
13- { type : 'Date' , ctor : true , value : new Date ( ) } ,
14- { type : 'Array' , ctor : true , allowFailure : true , value : [ 0 , '1' ] } ,
15- { type : 'ArrayBuffer' , ctor : true , allowFailure : true , value : ta ( Buffer ) . buffer } ,
16- { type : 'Int8Array' , ctor : true , allowFailure : true , createValue : ta , view : true } ,
17- { type : 'Uint8Array' , ctor : true , allowFailure : true , createValue : ta , view : true } ,
18- { type : 'Uint8ClampedArray' , ctor : true , allowFailure : true , createValue : ta , view : true } ,
19- { type : 'Int16Array' , ctor : true , allowFailure : true , createValue : ta , view : true } ,
20- { type : 'Uint16Array' , ctor : true , allowFailure : true , createValue : ta , view : true } ,
21- { type : 'Int32Array' , ctor : true , allowFailure : true , createValue : ta , view : true } ,
22- { type : 'Uint32Array' , ctor : true , allowFailure : true , createValue : ta , view : true } ,
23- { type : 'Float32Array' , ctor : true , allowFailure : true , createValue : ta , view : true } ,
24- { type : 'Float64Array' , ctor : true , allowFailure : true , createValue : ta , view : true }
10+ { type : 'number' , key : - 20 } ,
11+ { type : '+Infinity' , key : Infinity } ,
12+ { type : '-Infinity' , key : - Infinity } ,
13+ { type : 'string' , key : 'test' } ,
14+ { type : 'Date' , ctor : true , key : new Date ( ) } ,
15+ { type : 'Array' , ctor : true , allowFailure : true , key : [ 0 , '1' ] } ,
16+ { type : 'ArrayBuffer' , ctor : true , allowFailure : true , key : ta ( Buffer ) . buffer } ,
17+ { type : 'Int8Array' , ctor : true , allowFailure : true , createKey : ta , view : true } ,
18+ { type : 'Uint8Array' , ctor : true , allowFailure : true , createKey : ta , view : true } ,
19+ { type : 'Uint8ClampedArray' , ctor : true , allowFailure : true , createKey : ta , view : true } ,
20+ { type : 'Int16Array' , ctor : true , allowFailure : true , createKey : ta , view : true } ,
21+ { type : 'Uint16Array' , ctor : true , allowFailure : true , createKey : ta , view : true } ,
22+ { type : 'Int32Array' , ctor : true , allowFailure : true , createKey : ta , view : true } ,
23+ { type : 'Uint32Array' , ctor : true , allowFailure : true , createKey : ta , view : true } ,
24+ { type : 'Float32Array' , ctor : true , allowFailure : true , createKey : ta , view : true } ,
25+ { type : 'Float64Array' , ctor : true , allowFailure : true , createKey : ta , view : true }
2526]
2627
27- // TODO: test types that are not supported by IndexedDB Second Edition
28- // - Date NaN (should be rejected by IndexedDB)
29- // - empty array (should be rejected by abstract-leveldown)
30- // - array containing null (should be rejected by IndexedDB)
31- // - cyclical array (not sure)
32- // - Array(10) (not sure)
33- // var illegalTypes = []
34-
35- // TODO: test types that are not supported by IndexedDB Second Edition, but get
36- // stringified for abstract-leveldown compatibility.
37- // - NaN
38- // - boolean
39- // var stringifiedTypes = []
40-
4128module . exports = function ( leveljs , test , testCommon ) {
4229 var db
4330
@@ -53,16 +40,16 @@ module.exports = function (leveljs, test, testCommon) {
5340 test ( 'key type: ' + testName , function ( t ) {
5441 var Constructor = item . ctor ? global [ item . type ] : null
5542 var skip = item . allowFailure ? 'pass' : 'fail'
56- var input = item . value
43+ var input = item . key
5744
5845 if ( item . ctor && ! Constructor ) {
5946 t [ skip ] ( 'constructor is undefined in this environment' )
6047 return t . end ( )
6148 }
6249
63- if ( item . createValue ) {
50+ if ( item . createKey ) {
6451 try {
65- input = item . createValue ( Constructor )
52+ input = item . createKey ( Constructor )
6653 } catch ( err ) {
6754 t [ skip ] ( 'constructor is not spec-compliant in this environment' )
6855 return t . end ( )
0 commit comments