<!doctype html>
<meta charset=utf-8>
<title>IndexedDB: IDBIObjectStore getAllKeys() uses [EnforceRange]</title>
<link rel="help" href="https://w3c.github.io/IndexedDB/#object-store-interface">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support.js"></script>
<script>

indexeddb_test(
  (t, db) => {
    const store = db.createObjectStore('store');
  },
  (t, db) => {
    const tx = db.transaction('store');
    const store = tx.objectStore('store');
    [NaN, Infinity, -Infinity, -1, -Number.MAX_SAFE_INTEGER].forEach(count => {
      assert_throws_js(TypeError, () => { store.getAllKeys(null, count); },
                       `getAllKeys with count ${count} count should throw TypeError`);
    });
    t.done();
  },
  `IDBObjectStore.getAllKeys() uses [EnforceRange]`
);
</script>
