- From: Joshua Bell <notifications@github.com>
- Date: Wed, 07 Oct 2015 09:55:57 -0700
- To: w3c/IndexedDB <IndexedDB@noreply.github.com>
- Message-ID: <w3c/IndexedDB/issues/41@github.com>
Pretty straightforward. A polyfill would be like:
```js
IDBKeyRange.prototype.includes = function(key) {
var r = this, c;
if (r.lower !== undefined) {
c = indexedDB.cmp(key, r.lower)
if (r.lowerOpen && c <= 0) return false;
if (!r.lowerOpen && c < 0) return false;
}
if (r.upper !== undefined) {
c = indexedDB.cmp(key, r.upper)
if (r.upperOpen && c >= 0) return false;
if (!r.upperOpen && c > 0) return false;
}
return true;
};
```
And some sample cases:
```js
// basic cases
IDBKeyRange.bound(12, 34).includes(11); // false
IDBKeyRange.bound(12, 34).includes(12); // true
IDBKeyRange.bound(12, 34).includes(22); // true
IDBKeyRange.bound(12, 34).includes(44); // false
// closed bound (inclusive)
IDBKeyRange.lowerBound(12).includes(11); // false
IDBKeyRange.lowerBound(12).includes(12); // true
IDBKeyRange.lowerBound(12).includes(13); // true
// open bound (exclusive)
IDBKeyRange.lowerBound(12, true).includes(11); // false
IDBKeyRange.lowerBound(12, true).includes(12); // false
IDBKeyRange.lowerBound(12, true).includes(13); // true
// only
IDBKeyRange.only(12).includes(12); // true
IDBKeyRange.only(12).includes(11); // false
```
---
Reply to this email directly or view it on GitHub:
https://github.com/w3c/IndexedDB/issues/41
Received on Wednesday, 7 October 2015 16:56:28 UTC