<!doctype html>
<meta charset=utf-8>
<title>IndexedDB: IDBIndex getAll() uses [EnforceRange]</title>
<link rel="help" href="https://w3c.github.io/IndexedDB/#index-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');
    const index = store.createIndex('index', 'keyPath');
  },
  (t, db) => {
    const tx = db.transaction('store');
    const store = tx.objectStore('store');
    const index = store.index('index');
    [NaN, Infinity, -Infinity, -1, -Number.MAX_SAFE_INTEGER].forEach(count => {
      assert_throws_js(TypeError, () => { index.getAll(null, count); },
                       `getAll with count ${count} count should throw TypeError`);
    });
    t.done();
  },
  `IDBIndex.getAll() uses [EnforceRange]`
);
</script>
