| OLD | NEW |
| (Empty) | |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 var db_name = 'db'; |
| 6 var obj_store = 'store'; |
| 7 var module_key = 'my_module'; |
| 8 |
| 9 function createAndSaveToIndexedDB() { |
| 10 return new Promise( (resolve, reject) => { |
| 11 createWasmModule() |
| 12 .then (mod => { |
| 13 var delete_request = indexedDB.deleteDatabase(db_name); |
| 14 delete_request.onsuccess = function() { |
| 15 var open_request = indexedDB.open(db_name); |
| 16 open_request.onupgradeneeded = function() { |
| 17 var db = open_request.result; |
| 18 db.createObjectStore(obj_store); |
| 19 }; |
| 20 open_request.onsuccess = function() { |
| 21 var db = open_request.result; |
| 22 var tx = db.transaction(obj_store, 'readwrite'); |
| 23 var store = tx.objectStore(obj_store); |
| 24 store.put(mod, module_key); |
| 25 tx.oncomplete = function() { |
| 26 resolve(); |
| 27 }; |
| 28 }; |
| 29 }; |
| 30 }) |
| 31 .catch(error => reject(error)); |
| 32 }); |
| 33 } |
| 34 |
| 35 function loadFromIndexedDB(prev) { |
| 36 return new Promise(resolve => { |
| 37 prev.then(() => { |
| 38 var open_request = indexedDB.open(db_name); |
| 39 open_request.onsuccess = function() { |
| 40 var db = open_request.result; |
| 41 var tx = db.transaction(obj_store); |
| 42 var store = tx.objectStore(obj_store); |
| 43 var get_request = store.get(module_key); |
| 44 get_request.onsuccess = function() { |
| 45 var mod = get_request.result; |
| 46 var instance = new WebAssembly.Instance(get_request.result); |
| 47 resolve(instance.exports.increment(1)); |
| 48 }; |
| 49 }; |
| 50 }); |
| 51 }); |
| 52 } |
| 53 |
| 54 function TestIndexedDBLoadStore() { |
| 55 return loadFromIndexedDB(createAndSaveToIndexedDB()) |
| 56 .then((res) => assert_equals(res, 2)) |
| 57 .catch(error => assert_unreached(error)); |
| 58 } |
| OLD | NEW |