There is a bug on 175 line:
IDBKeyRange.bound(r[0], r[1], r[2] || true, r[3] || true);
Third and fourth arguments are always true regardless what you set for range (in other words always excluding the values). Support for lowerBound and upperBound would be fine, too.
I fixed that line like this:
return IDBKeyRange.bound(r[0], r[1], ((typeof r[2] === "undefined")? false : r[2]), ((typeof r[3] === "undefined")? false : r[3]));
There is a bug on 175 line: IDBKeyRange.bound(r[0], r[1], r[2] || true, r[3] || true);
Third and fourth arguments are always true regardless what you set for range (in other words always excluding the values). Support for lowerBound and upperBound would be fine, too.
I fixed that line like this: return IDBKeyRange.bound(r[0], r[1], ((typeof r[2] === "undefined")? false : r[2]), ((typeof r[3] === "undefined")? false : r[3]));