1// META: global=window,worker
2
3promise_test(async t => {
4  const db_name = "WebAssembly";
5  const obj_store = "store";
6  const module_key = "module";
7
8  await new Promise((resolve, reject) => {
9    const delete_request = indexedDB.deleteDatabase(db_name);
10    delete_request.onsuccess = resolve;
11    delete_request.onerror = reject;
12  });
13
14  const db = await new Promise((resolve, reject) => {
15    const open_request = indexedDB.open(db_name);
16    open_request.onupgradeneeded = function() {
17      open_request.result.createObjectStore(obj_store);
18    };
19    open_request.onsuccess = function() {
20      resolve(open_request.result);
21    };
22    open_request.onerror = reject;
23  });
24
25  const mod = await WebAssembly.compileStreaming(fetch('../incrementer.wasm'));
26  const tx = db.transaction(obj_store, 'readwrite');
27  const store = tx.objectStore(obj_store);
28  assert_throws_dom("DataCloneError", () => store.put(mod, module_key));
29});
30