Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/wasm/wasm_indexeddb_test.js

Issue 2405153003: [wasm] support for recompilation if deserialization fails (Closed)
Patch Set: uncompiled->wire Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698