1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-04-23 06:45:40 +03:00
sqlite/ext/wasm/api/pre-js.js
stephan f6c686c9f4 Add oo1.JsStorageDb() as a convenience wrapper for oo1.DB(...,'kvvfs'). Minor doc cleanups.
FossilOrigin-Name: 8a7998709f859a562cf6829485cb9921f8823af0efabe003741348ab1169fb89
2022-09-30 11:01:44 +00:00

42 lines
1.5 KiB
JavaScript

Module['locateFile'] = function(path, prefix) {
return prefix + path;
};
/**
Bug warning: this xInstantiateWasm bit must remain disabled
until this bug is resolved or wasmfs won't work:
https://github.com/emscripten-core/emscripten/issues/17951
*/
const xInstantiateWasm = 1
? 'emscripten-bug-17951'
: 'instantiateWasm';
Module[xInstantiateWasm] = function callee(imports,onSuccess){
imports.env.foo = function(){};
console.warn("instantiateWasm() uri =",callee.uri, self.location.href);
const wfetch = ()=>fetch(callee.uri, {credentials: 'same-origin'});
const loadWasm = WebAssembly.instantiateStreaming
? async ()=>{
return WebAssembly.instantiateStreaming(wfetch(), imports)
.then((arg)=>onSuccess(arg.instance, arg.module));
}
: async ()=>{ // Safari < v15
return wfetch()
.then(response => response.arrayBuffer())
.then(bytes => WebAssembly.instantiate(bytes, imports))
.then((arg)=>onSuccess(arg.instance, arg.module));
};
loadWasm();
return {};
};
/*
It is literally impossible to reliably get the name of _this_ script
at runtime, so impossible to derive X.wasm from script name
X.js. Thus we need, at build-time, to redefine
Module[xInstantiateWasm].uri by appending it to a build-specific
copy of this file with the name of the wasm file. This is apparently
why Emscripten hard-codes the name of the wasm file into their glue
scripts.
*/
Module[xInstantiateWasm].uri = 'sqlite3.wasm';