<!DOCTYPE html>
<meta charset="utf-8">
<title>IDBIndex.getKey() - throw DataError when using invalid key </title>
<link rel="author" title="Intel" href="http://www.intel.com">
<link rel="help" href="https://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBIndex-getKey-IDBRequest-any-key">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="support.js"></script>
<div id="log"></div>
<script>
    var db,
        t = async_test();

    var open_rq = createdb(t);
    open_rq.onupgradeneeded = function(e) {
        db = e.target.result;

        var index = db.createObjectStore("test", { keyPath: "key" })
                      .createIndex("index", "indexedProperty");
        assert_throws("DataError",function(){
            index.getKey(NaN);
        });
        t.done();
    };
</script>

