Minor WASM build cleanups. Enable custom Module.instantiateWasm() when not in WASMFS mode (where it doesn't work). Add sqlite3.debugModule URL param to enable some module-init-time debugging output.

FossilOrigin-Name: 50f678846a2b3c3d0818f0bae89f2ee86252a2e6a9c7029ebaae3953ca0fa14c
diff --git a/ext/wasm/api/pre-js.js b/ext/wasm/api/pre-js.js
index c07d037..f31dea1 100644
--- a/ext/wasm/api/pre-js.js
+++ b/ext/wasm/api/pre-js.js
@@ -8,6 +8,7 @@
 // See notes in extern-post-js.js
 const sqlite3InitModuleState = self.sqlite3InitModuleState || Object.create(null);
 delete self.sqlite3InitModuleState;
+sqlite3InitModuleState.debugModule('self.location =',self.location);
 
 /**
    This custom locateFile() tries to figure out where to load `path`
@@ -30,12 +31,6 @@
 Module['locateFile'] = function(path, prefix) {
   let theFile;
   const up = this.urlParams;
-  if(0){
-    console.warn("locateFile(",arguments[0], ',', arguments[1],")",
-                 'self.location =',self.location,
-                 'sqlite3InitModuleState.scriptDir =',this.scriptDir,
-                 'up.entries() =',Array.from(up.entries()));
-  }
   if(up.has(path)){
     theFile = up.get(path);
   }else if(this.sqlite3Dir){
@@ -45,22 +40,37 @@
   }else{
     theFile = prefix + path;
   }
+  sqlite3InitModuleState.debugModule(
+    "locateFile(",arguments[0], ',', arguments[1],")",
+    'sqlite3InitModuleState.scriptDir =',this.scriptDir,
+    'up.entries() =',Array.from(up.entries()),
+    "result =", theFile
+  );
   return theFile;
 }.bind(sqlite3InitModuleState);
 
 /**
-   Bug warning: this xInstantiateWasm bit must remain disabled
-   until this bug is resolved or wasmfs won't work:
+   Bug warning: a custom Module.instantiateWasm() does not work
+   in WASMFS builds:
 
    https://github.com/emscripten-core/emscripten/issues/17951
+
+   In such builds we must disable this.
 */
-const xInstantiateWasm = 1
-      ? 'emscripten-bug-17951'
-      : 'instantiateWasm';
-Module[xInstantiateWasm] = function callee(imports,onSuccess){
+const xNameOfInstantiateWasm = true
+      ? 'instantiateWasm'
+      : 'emscripten-bug-17951';
+Module[xNameOfInstantiateWasm] = 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 uri = Module.locateFile(
+    callee.uri, (
+      ('undefined'===typeof scriptDirectory/*var defined by Emscripten glue*/)
+        ? '' : scriptDirectory)
+  );
+  sqlite3InitModuleState.debugModule(
+    "instantiateWasm() uri =", uri
+  );
+  const wfetch = ()=>fetch(uri, {credentials: 'same-origin'});
   const loadWasm = WebAssembly.instantiateStreaming
         ? async ()=>{
           return WebAssembly.instantiateStreaming(wfetch(), imports)
@@ -79,10 +89,12 @@
   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
+  Module[xNameOfInstantiateWasm].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';
-/* END FILE: api/pre-js.js */
+Module[xNameOfInstantiateWasm].uri = 'sqlite3.wasm';
+/* END FILE: api/pre-js.js, noting that the build process may add a
+   line after this one to change the above .uri to a build-specific
+   one. */