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