From f8e1f5a7679e42f44a175e5a079d1f953d8d01ed Mon Sep 17 00:00:00 2001 From: Daniel Lehmann Date: Sat, 31 Oct 2026 03:48:39 +0100 Subject: [PATCH] sqlite3-wasm: rebuild SQLite 3.48.0 with emcc 6.0.13 Rebuild with Emscripten 6.0.13 (was 3.1.73). SQLite stays at 3.48.0 and benchmark.js is unchanged, so the benchmark runs the same SQL as before. - Emscripten 4.0 made the MODULARIZE factory async, which runs SQLite 3.48's --post-js init too late: EmscriptenModule.sqlite3 stays undefined, and the shells fail with "Cannot set properties of undefined (setting 'scriptInfo')". emscripten-4-post-load-init.patch backports Module.runSQLite3PostLoadInit from SQLite 3.49.0. It changes only the JS glue. Drop it when updating to SQLite 3.49.0 or later. - Pass INCOMING_MODULE_JS_API through EMCC_CFLAGS, since Emscripten 6.0.2 removed wasmBinary from the default list. speedtest1.wasm now uses bulk memory (271 memory.copy, 217 memory.fill). Score change, d8 (15.9.60) / jsc (325217) / SpiderMonkey (160.0b3) (each test alone in a fresh shell, 6 rounds): +15.2% / -0.2% / +11.7%. Part of #277. --- workloads/sqlite3-wasm/build.log | 6 +- workloads/sqlite3-wasm/build.sh | 8 +- .../sqlite3-wasm/build/jswasm/speedtest1.js | 2970 +++++++++-------- .../sqlite3-wasm/build/jswasm/speedtest1.wasm | Bin 864699 -> 862092 bytes .../emscripten-4-post-load-init.patch | 41 + 5 files changed, 1640 insertions(+), 1385 deletions(-) create mode 100644 workloads/sqlite3-wasm/emscripten-4-post-load-init.patch diff --git a/workloads/sqlite3-wasm/build.log b/workloads/sqlite3-wasm/build.log index c32b2204..085ca3e3 100644 --- a/workloads/sqlite3-wasm/build.log +++ b/workloads/sqlite3-wasm/build.log @@ -1,8 +1,8 @@ -Built on 2025-01-21T15:10:24Z +Built on 2026-10-28T21:51:11Z Toolchain versions -emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.73 (ac676d5e437525d15df5fd46bc2c208ec6d376a3) -wasm-strip 1.0.34 +emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 6.0.13 (e13ee988ce3d87a738dd8f3661d02223308c412a) +wasm-strip 1.0.36 Getting sources from https://sqlite.org/2025/sqlite-src-3480000.zip diff --git a/workloads/sqlite3-wasm/build.sh b/workloads/sqlite3-wasm/build.sh index 27c61423..2cc8acb0 100755 --- a/workloads/sqlite3-wasm/build.sh +++ b/workloads/sqlite3-wasm/build.sh @@ -25,9 +25,15 @@ unzip "$SQLITE_SRC_FILE" # Paths and information in make output could be sensitive, so don't save in log. echo "Building..." | tee -a "$BUILD_LOG" pushd sqlite-src-*/ +# SQLite 3.48.0's JS glue predates Emscripten 4.0's async MODULARIZE factory, +# see the patch description. Drop the patch when updating to SQLite >= 3.49.0. +patch -p1 -i ../emscripten-4-post-load-init.patch ./configure cd ext/wasm -make dist +# Emscripten 6.0.2 removed `wasmBinary` from the default INCOMING_MODULE_JS_API +# list, and setting the list replaces the default, so name every Module property +# that benchmark.js and the speedtest1 glue code pass in. +EMCC_CFLAGS="-sINCOMING_MODULE_JS_API=wasmBinary,print,printErr,preRun,postRun,noInitialRun" make dist popd echo "Copying files from sqlite-src-*/ext/wasm/ into build/" | tee -a "$BUILD_LOG" diff --git a/workloads/sqlite3-wasm/build/jswasm/speedtest1.js b/workloads/sqlite3-wasm/build/jswasm/speedtest1.js index 3d592baf..d505be51 100644 --- a/workloads/sqlite3-wasm/build/jswasm/speedtest1.js +++ b/workloads/sqlite3-wasm/build/jswasm/speedtest1.js @@ -28,19 +28,25 @@ ** ** SQLITE_VERSION "3.48.0" ** SQLITE_VERSION_NUMBER 3048000 -** SQLITE_SOURCE_ID "2025-01-14 11:05:00 d2fe6b05f38d9d7cd78c5d252e99ac59f1aea071d669830c1ffe4e8966e84010" +** SQLITE_SOURCE_ID "2025-01-14 11:05:00 d2fe6b05f38d9d7cd78c5d252e99ac59f1aea071d669830c1ffe4e8966e8alt1" ** -** Using the Emscripten SDK version 3.1.73. +** Using the Emscripten SDK version 6.0.13. */ +// This code implements the `-sMODULARIZE` settings by taking the generated +// JS program code (INNER_JS_CODE) and wrapping it in a factory function. +// Single threaded MINIMAL_RUNTIME programs do not need access to +// document.currentScript, so a simple export declaration is enough. var sqlite3InitModule = (() => { - var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined; - - return ( -function(moduleArg = {}) { - var moduleRtn; - + // When MODULARIZE this JS may be executed later, + // after document.currentScript is gone, so we save it. + // In EXPORT_ES6 mode we can just use 'import.meta.url'. + var _scriptName = globalThis.document?.currentScript?.src; + return async function(moduleArg = {}) { + var Module = moduleArg; // include: shell.js +// include: minimum_runtime_check.js +// end include: minimum_runtime_check.js // The Module object: Our interface to the outside world. We import // and export values on it. There are various ways Module can be used: // 1. Not defined. We create it here @@ -54,26 +60,18 @@ function(moduleArg = {}) { // after the generated code, you will need to define var Module = {}; // before the code. Then that object will be used in the code, and you // can continue to use Module afterwards as well. -var Module = moduleArg; - -// Set up the promise that indicates the Module is initialized -var readyPromiseResolve, readyPromiseReject; -var readyPromise = new Promise((resolve, reject) => { - readyPromiseResolve = resolve; - readyPromiseReject = reject; -}); // Determine the runtime environment we are in. You can customize this by // setting the ENVIRONMENT setting at compile time (see settings.js). -var ENVIRONMENT_IS_WEB = true; -var ENVIRONMENT_IS_WORKER = false; -var ENVIRONMENT_IS_NODE = false; -var ENVIRONMENT_IS_SHELL = false; +const ENVIRONMENT_IS_WEB = true; +const ENVIRONMENT_IS_WORKER = false; +const ENVIRONMENT_IS_NODE = false; +const ENVIRONMENT_IS_SHELL = false; // --pre-jses are emitted after the Module integration code, so that they can // refer to Module (if they choose; they can also define Module) -// include: /usr/local/google/home/dlehmann/JetStream/sqlite3/sqlite-src-3480000/ext/wasm/bld/pre-js.speedtest1-vanilla.js +// include: ./bld/pre-js.speedtest1-vanilla.js /** BEGIN FILE: api/pre-js.js @@ -132,17 +130,10 @@ Module['locateFile'] = function(path, prefix) { /* 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. */ -// end include: /usr/local/google/home/dlehmann/JetStream/sqlite3/sqlite-src-3480000/ext/wasm/bld/pre-js.speedtest1-vanilla.js +// end include: ./bld/pre-js.speedtest1-vanilla.js -// Sometimes an existing Module object exists with properties -// meant to overwrite the default module functionality. Here -// we collect those properties and reapply _after_ we configure -// the current environment's defaults to avoid having to be so -// defensive during initialization. -var moduleOverrides = Object.assign({}, Module); - -var arguments_ = []; +var programArgs = []; var thisProgram = './this.program'; var quit_ = (status, toThrow) => { throw toThrow; @@ -151,9 +142,6 @@ var quit_ = (status, toThrow) => { // `/` should be present at the end if `scriptDirectory` is not empty var scriptDirectory = ''; function locateFile(path) { - if (Module['locateFile']) { - return Module['locateFile'](path, scriptDirectory); - } return scriptDirectory + path; } @@ -164,38 +152,21 @@ var readAsync, readBinary; // Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and // ENVIRONMENT_IS_NODE. if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { - if (ENVIRONMENT_IS_WORKER) { // Check worker, not web, since window could be polyfilled - scriptDirectory = self.location.href; - } else if (typeof document != 'undefined' && document.currentScript) { // web - scriptDirectory = document.currentScript.src; - } - // When MODULARIZE, this JS may be executed later, after document.currentScript - // is gone, so we saved it, and we use it here instead of any other info. - if (_scriptName) { - scriptDirectory = _scriptName; - } - // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them. - // otherwise, slice off the final part of the url to find the script directory. - // if scriptDirectory does not contain a slash, lastIndexOf will return -1, - // and scriptDirectory will correctly be replaced with an empty string. - // If scriptDirectory contains a query (starting with ?) or a fragment (starting with #), - // they are removed because they could contain a slash. - if (scriptDirectory.startsWith('blob:')) { - scriptDirectory = ''; - } else { - scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, '').lastIndexOf('/')+1); + try { + scriptDirectory = new URL('.', _scriptName).href; // includes trailing slash + } catch { + // Must be a `blob:` or `data:` URL (e.g. `blob:http://site.com/etc/etc`), we cannot + // infer anything from them. } { // include: web_or_worker_shell_read.js -readAsync = (url) => { - return fetch(url, { credentials: 'same-origin' }) - .then((response) => { - if (response.ok) { - return response.arrayBuffer(); - } - return Promise.reject(new Error(response.status + ' : ' + response.url)); - }) +readAsync = async (url) => { + var response = await fetch(url, { credentials: 'same-origin' }); + if (response.ok) { + return response.arrayBuffer(); + } + throw new Error(response.status + ' : ' + response.url); }; // end include: web_or_worker_shell_read.js } @@ -203,25 +174,9 @@ readAsync = (url) => { { } -var out = Module['print'] || console.log.bind(console); -var err = Module['printErr'] || console.error.bind(console); - -// Merge back in the overrides -Object.assign(Module, moduleOverrides); -// Free the object hierarchy contained in the overrides, this lets the GC -// reclaim data used. -moduleOverrides = null; - -// Emit code to handle expected values on the Module object. This applies Module.x -// to the proper local x. This has two benefits: first, we only emit it if it is -// expected to arrive, and second, by using a local everywhere else that can be -// minified. +var out = console.log.bind(console); +var err = console.error.bind(console); -if (Module['arguments']) arguments_ = Module['arguments']; - -if (Module['thisProgram']) thisProgram = Module['thisProgram']; - -// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message // end include: shell.js // include: preamble.js @@ -235,12 +190,10 @@ if (Module['thisProgram']) thisProgram = Module['thisProgram']; // An online HTML version (which may be of a different version of Emscripten) // is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html -var wasmBinary = Module['wasmBinary']; +var wasmBinary; // Wasm globals -var wasmMemory; - //======================================== // Runtime essentials //======================================== @@ -250,7 +203,7 @@ var wasmMemory; var ABORT = false; // set by exit() and abort(). Passed to 'onExit' handler. -// NOTE: This is also used as the process return code code in shell environments +// NOTE: This is also used as the process return code in shell environments // but only when noExitRuntime is false. var EXITSTATUS; @@ -268,161 +221,100 @@ function assert(condition, text) { } } -// Memory management - -var HEAP, -/** @type {!Int8Array} */ - HEAP8, -/** @type {!Uint8Array} */ - HEAPU8, -/** @type {!Int16Array} */ - HEAP16, -/** @type {!Uint16Array} */ - HEAPU16, -/** @type {!Int32Array} */ - HEAP32, -/** @type {!Uint32Array} */ - HEAPU32, -/** @type {!Float32Array} */ - HEAPF32, -/* BigInt64Array type is not correctly defined in closure -/** not-@type {!BigInt64Array} */ - HEAP64, -/* BigUint64Array type is not correctly defined in closure -/** not-t@type {!BigUint64Array} */ - HEAPU64, -/** @type {!Float64Array} */ - HEAPF64; - -// include: runtime_shared.js -function updateMemoryViews() { - var b = wasmMemory.buffer; - Module['HEAP8'] = HEAP8 = new Int8Array(b); - Module['HEAP16'] = HEAP16 = new Int16Array(b); - Module['HEAPU8'] = HEAPU8 = new Uint8Array(b); - Module['HEAPU16'] = HEAPU16 = new Uint16Array(b); - Module['HEAP32'] = HEAP32 = new Int32Array(b); - Module['HEAPU32'] = HEAPU32 = new Uint32Array(b); - Module['HEAPF32'] = HEAPF32 = new Float32Array(b); - Module['HEAPF64'] = HEAPF64 = new Float64Array(b); - Module['HEAP64'] = HEAP64 = new BigInt64Array(b); - Module['HEAPU64'] = HEAPU64 = new BigUint64Array(b); -} - -// end include: runtime_shared.js -// include: runtime_stack_check.js -// end include: runtime_stack_check.js -var __ATPRERUN__ = []; // functions called before the runtime is initialized -var __ATINIT__ = []; // functions called during startup -var __ATEXIT__ = []; // functions called during shutdown -var __ATPOSTRUN__ = []; // functions called after the main() is called - -var runtimeInitialized = false; - -function preRun() { - if (Module['preRun']) { - if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; - while (Module['preRun'].length) { - addOnPreRun(Module['preRun'].shift()); - } - } - callRuntimeCallbacks(__ATPRERUN__); -} - -function initRuntime() { - runtimeInitialized = true; +/** + * Indicates whether filename is delivered via file protocol (as opposed to http/https) + * @noinline + */ +var isFileURI = (filename) => filename.startsWith('file://'); - -if (!Module['noFSInit'] && !FS.initialized) - FS.init(); -FS.ignorePermissions = false; +// include: runtime_common.js +// include: runtime_exceptions.js +// Base Emscripten EH error class +class EmscriptenEH {} -TTY.init(); - callRuntimeCallbacks(__ATINIT__); -} +class EmscriptenSjLj extends EmscriptenEH {} -function postRun() { +// end include: runtime_exceptions.js +// include: runtime_debug.js +// end include: runtime_debug.js +// Memory management - if (Module['postRun']) { - if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; - while (Module['postRun'].length) { - addOnPostRun(Module['postRun'].shift()); - } - } +var runtimeInitialized = false; - callRuntimeCallbacks(__ATPOSTRUN__); -} -function addOnPreRun(cb) { - __ATPRERUN__.unshift(cb); -} -function addOnInit(cb) { - __ATINIT__.unshift(cb); +// When ALLOW_MEMORY_GROWTH is enabled, the conversion from Wasm +// memory to ArrayBuffer requires some additional logic. +function getMemoryBuffer() { + return wasmMemory.buffer; } -function addOnExit(cb) { +function updateMemoryViews() { + // If we already have a heap that is resizeable/growable buffer we don't + // need to do anything in updateMemoryViews. + if (HEAP8?.buffer?.resizable) return; + var b = getMemoryBuffer(); + HEAP8 = new Int8Array(b); + HEAP16 = new Int16Array(b); + HEAPU8 = new Uint8Array(b); + + HEAP32 = new Int32Array(b); + HEAPU32 = new Uint32Array(b); + HEAPF32 = new Float32Array(b); + HEAPF64 = new Float64Array(b); + HEAP64 = new BigInt64Array(b); + HEAPU64 = new BigUint64Array(b); } -function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); +// include: memoryprofiler.js +// end include: memoryprofiler.js +// end include: runtime_common.js +function preRun() { + var preRun = Module['preRun']; + if (preRun) { + if (typeof preRun === 'function') preRun = [preRun]; + onPreRuns.push(...preRun); + } + // Begin ATPRERUNS hooks + callRuntimeCallbacks(onPreRuns); + // End ATPRERUNS hooks } -// include: runtime_math.js -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32 - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc - -// end include: runtime_math.js -// A counter of dependencies for calling run(). If we need to -// do asynchronous work before running, increment this and -// decrement it. Incrementing must happen in a place like -// Module.preRun (used by emcc to add file preloading). -// Note that you can add dependencies in preRun, even though -// it happens right before run - run will be postponed until -// the dependencies are met. -var runDependencies = 0; -var runDependencyWatcher = null; -var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled +function initRuntime() { + runtimeInitialized = true; -function getUniqueRunDependency(id) { - return id; -} + // Begin ATINITS hooks + if (!Module['noFSInit'] && !FS.initialized) FS.init(); +TTY.init(); + // End ATINITS hooks -function addRunDependency(id) { - runDependencies++; + wasmExports['__wasm_call_ctors'](); - Module['monitorRunDependencies']?.(runDependencies); + // Begin ATPOSTCTORS hooks + FS.ignorePermissions = false; + // End ATPOSTCTORS hooks } -function removeRunDependency(id) { - runDependencies--; - - Module['monitorRunDependencies']?.(runDependencies); +function postRun() { - if (runDependencies == 0) { - if (runDependencyWatcher !== null) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - } - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); // can add another dependenciesFulfilled - } + var postRun = Module['postRun']; + if (postRun) { + if (typeof postRun === 'function') postRun = [postRun]; + onPostRuns.push(...postRun); } + + // Begin ATPOSTRUNS hooks + callRuntimeCallbacks(onPostRuns); + // End ATPOSTRUNS hooks } -/** @param {string|number=} what */ +/** + * @param {string|number=} what + */ function abort(what) { - Module['onAbort']?.(what); - what = 'Aborted(' + what + ')'; + what = `Aborted(${what})`; // TODO(sbc): Should we remove printing and leave it up to whoever // catches the exception? err(what); @@ -439,51 +331,15 @@ function abort(what) { // a trap or not based on a hidden field within the object. So at the moment // we don't have a way of throwing a wasm trap from JS. TODO Make a JS API that // allows this in the wasm spec. - - // Suppress closure compiler warning here. Closure compiler's builtin extern - // definition for WebAssembly.RuntimeError claims it takes no arguments even - // though it can. - // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed. - /** @suppress {checkTypes} */ - var e = new WebAssembly.RuntimeError(what); - - readyPromiseReject(e); - // Throw the error whether or not MODULARIZE is set because abort is used - // in code paths apart from instantiation where an exception is expected - // to be thrown when abort is called. - throw e; + throw new WebAssembly.RuntimeError(what); } -// include: memoryprofiler.js -// end include: memoryprofiler.js -// include: URIUtils.js -// Prefix of data URIs emitted by SINGLE_FILE and related options. -var dataURIPrefix = 'data:application/octet-stream;base64,'; - -/** - * Indicates whether filename is a base64 data URI. - * @noinline - */ -var isDataURI = (filename) => filename.startsWith(dataURIPrefix); +var wasmBinaryFile; -/** - * Indicates whether filename is delivered via file protocol (as opposed to http/https) - * @noinline - */ -var isFileURI = (filename) => filename.startsWith('file://'); -// end include: URIUtils.js -// include: runtime_exceptions.js -// end include: runtime_exceptions.js function findWasmBinary() { - var f = 'speedtest1.wasm'; - if (!isDataURI(f)) { - return locateFile(f); - } - return f; + return locateFile('speedtest1.wasm'); } -var wasmBinaryFile; - function getBinarySync(file) { if (file == wasmBinaryFile && wasmBinary) { return new Uint8Array(wasmBinary); @@ -491,93 +347,81 @@ function getBinarySync(file) { if (readBinary) { return readBinary(file); } + // Throwing a plain string here, even though it not normally advisable since + // this gets turning into an `abort` in instantiateArrayBuffer. throw 'both async and sync fetching of the wasm failed'; } -function getBinaryPromise(binaryFile) { +async function getWasmBinary(binaryFile) { // If we don't have the binary yet, load it asynchronously using readAsync. - if (!wasmBinary - ) { + if (!wasmBinary) { // Fetch the binary using readAsync - return readAsync(binaryFile).then( - (response) => new Uint8Array(/** @type{!ArrayBuffer} */(response)), - // Fall back to getBinarySync if readAsync fails - () => getBinarySync(binaryFile) - ); + try { + var response = await readAsync(binaryFile); + return new Uint8Array(response); + } catch { + // Fall back to getBinarySync below; + } } // Otherwise, getBinarySync should be able to get it synchronously - return Promise.resolve().then(() => getBinarySync(binaryFile)); + return getBinarySync(binaryFile); } -function instantiateArrayBuffer(binaryFile, imports, receiver) { - return getBinaryPromise(binaryFile).then((binary) => { - return WebAssembly.instantiate(binary, imports); - }).then(receiver, (reason) => { +async function instantiateArrayBuffer(binaryFile, imports) { + try { + var binary = await getWasmBinary(binaryFile); + var instance = await WebAssembly.instantiate(binary, imports); + return instance; + } catch (reason) { err(`failed to asynchronously prepare wasm: ${reason}`); abort(reason); - }); + } } -function instantiateAsync(binary, binaryFile, imports, callback) { - if (!binary && - typeof WebAssembly.instantiateStreaming == 'function' && - !isDataURI(binaryFile) && - typeof fetch == 'function') { - return fetch(binaryFile, { credentials: 'same-origin' }).then((response) => { - // Suppress closure warning here since the upstream definition for - // instantiateStreaming only allows Promise rather than - // an actual Response. - // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure is fixed. - /** @suppress {checkTypes} */ - var result = WebAssembly.instantiateStreaming(response, imports); - - return result.then( - callback, - function(reason) { - // We expect the most common failure cause to be a bad MIME type for the binary, - // in which case falling back to ArrayBuffer instantiation should work. - err(`wasm streaming compile failed: ${reason}`); - err('falling back to ArrayBuffer instantiation'); - return instantiateArrayBuffer(binaryFile, imports, callback); - }); - }); +async function instantiateAsync(binary, binaryFile, imports) { + if (!binary + ) { + try { + var response = fetch(binaryFile, { credentials: 'same-origin' }); + var instantiationResult = await WebAssembly.instantiateStreaming(response, imports); + return instantiationResult; + } catch (reason) { + // We expect the most common failure cause to be a bad MIME type for the binary, + // in which case falling back to ArrayBuffer instantiation should work. + err(`wasm streaming compile failed: ${reason}`); + err('falling back to ArrayBuffer instantiation'); + // fall back of instantiateArrayBuffer below + }; } - return instantiateArrayBuffer(binaryFile, imports, callback); + return instantiateArrayBuffer(binaryFile, imports); } function getWasmImports() { // prepare imports - return { + var imports = { 'env': wasmImports, 'wasi_snapshot_preview1': wasmImports, - } + }; + return imports; } // Create the wasm instance. // Receives the wasm imports, returns the exports. -function createWasm() { +async function createWasm() { // Load the wasm module and create an instance of using native support in the JS engine. // handle a generated wasm instance, receiving its exports and // performing other necessary setup - /** @param {WebAssembly.Module=} module*/ - function receiveInstance(instance, module) { + function receiveInstance(instance) { wasmExports = instance.exports; - + assignWasmExports(wasmExports); - wasmMemory = wasmExports['memory']; - Module['wasmMemory'] = wasmMemory; updateMemoryViews(); - addOnInit(wasmExports['__wasm_call_ctors']); - - removeRunDependency('wasm-instantiate'); return wasmExports; } - // wait for the pthread pool (if any) - addRunDependency('wasm-instantiate'); // Prefer streaming instantiation if available. function receiveInstantiationResult(result) { @@ -585,39 +429,21 @@ function createWasm() { // receiveInstance() will swap in the exports (to Module.asm) so they can be called // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line. // When the regression is fixed, can restore the above PTHREADS-enabled path. - receiveInstance(result['instance']); + return receiveInstance(result['instance']); } var info = getWasmImports(); - // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback - // to manually instantiate the Wasm module themselves. This allows pages to - // run the instantiation parallel to any other async startup actions they are - // performing. - // Also pthreads and wasm workers initialize the wasm instance through this - // path. - if (Module['instantiateWasm']) { - try { - return Module['instantiateWasm'](info, receiveInstance); - } catch(e) { - err(`Module.instantiateWasm callback failed with error: ${e}`); - // If instantiation fails, reject the module ready promise. - readyPromiseReject(e); - } - } - wasmBinaryFile ??= findWasmBinary(); - - // If instantiation fails, reject the module ready promise. - instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch(readyPromiseReject); - return {}; // no exports yet; we'll fill them in later + var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info); + var exports = receiveInstantiationResult(result); + return exports; } -// include: runtime_debug.js -// end include: runtime_debug.js -// === Body === // end include: preamble.js +// Begin JS library code + class ExitStatus { name = 'ExitStatus'; @@ -627,130 +453,69 @@ function createWasm() { } } + /** @type {!Int8Array} */ + var HEAP8; + var callRuntimeCallbacks = (callbacks) => { while (callbacks.length > 0) { // Pass the module as the first argument. callbacks.shift()(Module); } }; + var onPostRuns = []; + var addOnPostRun = (cb) => onPostRuns.push(cb); - - /** - * @param {number} ptr - * @param {string} type - */ - function getValue(ptr, type = 'i8') { - if (type.endsWith('*')) type = '*'; - switch (type) { - case 'i1': return HEAP8[ptr]; - case 'i8': return HEAP8[ptr]; - case 'i16': return HEAP16[((ptr)>>1)]; - case 'i32': return HEAP32[((ptr)>>2)]; - case 'i64': return HEAP64[((ptr)>>3)]; - case 'float': return HEAPF32[((ptr)>>2)]; - case 'double': return HEAPF64[((ptr)>>3)]; - case '*': return HEAPU32[((ptr)>>2)]; - default: abort(`invalid type for getValue: ${type}`); - } - } - - var noExitRuntime = Module['noExitRuntime'] || true; + var onPreRuns = []; + var addOnPreRun = (cb) => onPreRuns.push(cb); - - /** - * @param {number} ptr - * @param {number} value - * @param {string} type - */ - function setValue(ptr, value, type = 'i8') { - if (type.endsWith('*')) type = '*'; - switch (type) { - case 'i1': HEAP8[ptr] = value; break; - case 'i8': HEAP8[ptr] = value; break; - case 'i16': HEAP16[((ptr)>>1)] = value; break; - case 'i32': HEAP32[((ptr)>>2)] = value; break; - case 'i64': HEAP64[((ptr)>>3)] = BigInt(value); break; - case 'float': HEAPF32[((ptr)>>2)] = value; break; - case 'double': HEAPF64[((ptr)>>3)] = value; break; - case '*': HEAPU32[((ptr)>>2)] = value; break; - default: abort(`invalid type for setValue: ${type}`); - } - } var stackRestore = (val) => __emscripten_stack_restore(val); var stackSave = () => _emscripten_stack_get_current(); - var UTF8Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder() : undefined; + + + var UTF8Decoder = new TextDecoder(); + /** - * Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given - * array that contains uint8 values, returns a copy of that string as a - * Javascript String object. - * heapOrArray is either a regular array, or a JavaScript typed array view. - * @param {number=} idx - * @param {number=} maxBytesToRead - * @return {string} - */ - var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead = NaN) => { - var endIdx = idx + maxBytesToRead; - var endPtr = idx; + * heapOrArray is either a regular array, or a JavaScript typed array view. + * @param {number} idx + * @param {number=} maxBytesToRead + * @param {boolean=} ignoreNul + * @return {number} + */ + var findStringEnd = (heapOrArray, idx, maxBytesToRead, ignoreNul) => { + var maxIdx = idx + maxBytesToRead; + if (ignoreNul) return maxIdx; // TextDecoder needs to know the byte length in advance, it doesn't stop on - // null terminator by itself. Also, use the length info to avoid running tiny - // strings through TextDecoder, since .subarray() allocates garbage. - // (As a tiny code save trick, compare endPtr against endIdx using a negation, - // so that undefined/NaN means Infinity) - while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; - - if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { - return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); - } - var str = ''; - // If building with TextDecoder, we have already computed the string length - // above, so test loop end condition against that - while (idx < endPtr) { - // For UTF8 byte structure, see: - // http://en.wikipedia.org/wiki/UTF-8#Description - // https://www.ietf.org/rfc/rfc2279.txt - // https://tools.ietf.org/html/rfc3629 - var u0 = heapOrArray[idx++]; - if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } - var u1 = heapOrArray[idx++] & 63; - if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } - var u2 = heapOrArray[idx++] & 63; - if ((u0 & 0xF0) == 0xE0) { - u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; - } else { - u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63); - } - - if (u0 < 0x10000) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 0x10000; - str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); - } - } - return str; + // null terminator by itself. + // As a tiny code save trick, compare idx against maxIdx using a negation, + // so that maxBytesToRead=undefined/NaN means Infinity. + while (heapOrArray[idx] && !(idx >= maxIdx)) ++idx; + return idx; }; + /** @type {!Uint8Array} */ + var HEAPU8; + /** - * Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the - * emscripten HEAP, returns a copy of that string as a Javascript String object. - * - * @param {number} ptr - * @param {number=} maxBytesToRead - An optional length that specifies the - * maximum number of bytes to read. You can omit this parameter to scan the - * string until the first 0 byte. If maxBytesToRead is passed, and the string - * at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the - * string will cut short at that byte index (i.e. maxBytesToRead will not - * produce a string of exact length [ptr, ptr+maxBytesToRead[) N.B. mixing - * frequent uses of UTF8ToString() with and without maxBytesToRead may throw - * JS JIT optimizations off, so it is worth to consider consistently using one - * @return {string} - */ - var UTF8ToString = (ptr, maxBytesToRead) => { - return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ''; + * Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the + * emscripten HEAP, returns a copy of that string as a Javascript String object. + * + * @param {number} ptr + * @param {number=} maxBytesToRead - An optional length that specifies the + * maximum number of bytes to read. You can omit this parameter to scan the + * string until the first 0 byte. If maxBytesToRead is passed, and the string + * at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the + * string will cut short at that byte index. + * @param {boolean=} ignoreNul - If true, the function will not stop on a NUL character. + * @return {string} + */ + var UTF8ToString = (ptr, maxBytesToRead, ignoreNul) => { + if (!ptr) return ''; + var end = findStringEnd(HEAPU8, ptr, maxBytesToRead, ignoreNul); + return UTF8Decoder.decode(HEAPU8.subarray(ptr, end)); }; var ___assert_fail = (condition, filename, line, func) => abort(`Assertion failed: ${UTF8ToString(condition)}, at: ` + [filename ? UTF8ToString(filename) : 'unknown filename', line, func ? UTF8ToString(func) : 'unknown function']); @@ -786,7 +551,7 @@ function createWasm() { }, normalize:(path) => { var isAbsolute = PATH.isAbs(path), - trailingSlash = path.substr(-1) === '/'; + trailingSlash = path.slice(-1) === '/'; // Normalize the path path = PATH.normalizeArray(path.split('/').filter((p) => !!p), !isAbsolute).join('/'); if (!path && !isAbsolute) { @@ -807,93 +572,96 @@ function createWasm() { } if (dir) { // It has a dirname, strip trailing slash - dir = dir.substr(0, dir.length - 1); + dir = dir.slice(0, -1); } return root + dir; }, - basename:(path) => { - // EMSCRIPTEN return '/'' for '/', not an empty string - if (path === '/') return '/'; - path = PATH.normalize(path); - path = path.replace(/\/$/, ""); - var lastSlash = path.lastIndexOf('/'); - if (lastSlash === -1) return path; - return path.substr(lastSlash+1); - }, - join:(...paths) => PATH.normalize(paths.join('/')), - join2:(l, r) => PATH.normalize(l + '/' + r), + basename:(path) => path && path.match(/([^\/]+|\/)\/*$/)[1], +join:(...paths) => PATH.normalize(paths.join('/')), +join2:(l, r) => PATH.normalize(l + '/' + r), +}; + +var initRandomFill = () => { + + return (view) => (crypto.getRandomValues(view), 0); }; - - var initRandomFill = () => { - if (typeof crypto == 'object' && typeof crypto['getRandomValues'] == 'function') { - // for modern web browsers - return (view) => crypto.getRandomValues(view); - } else - // we couldn't find a proper implementation, as Math.random() is not suitable for /dev/random, see emscripten-core/emscripten/pull/7096 - abort('initRandomDevice'); - }; - var randomFill = (view) => { - // Lazily init on the first invocation. - return (randomFill = initRandomFill())(view); - }; - - - - var PATH_FS = { - resolve:(...args) => { - var resolvedPath = '', - resolvedAbsolute = false; - for (var i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) ? args[i] : FS.cwd(); - // Skip empty and invalid entries - if (typeof path != 'string') { - throw new TypeError('Arguments to path.resolve must be strings'); - } else if (!path) { - return ''; // an invalid portion invalidates the whole thing - } - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = PATH.isAbs(path); - } - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter((p) => !!p), !resolvedAbsolute).join('/'); - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; - }, - relative:(from, to) => { - from = PATH_FS.resolve(from).substr(1); - to = PATH_FS.resolve(to).substr(1); - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== '') break; - } - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== '') break; - } - if (start > end) return []; - return arr.slice(start, end - start + 1); - } - var fromParts = trim(from.split('/')); - var toParts = trim(to.split('/')); - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } +var randomFill = (view) => (randomFill = initRandomFill())(view); + + + +var PATH_FS = { +resolve:(...args) => { + var resolvedPath = '', + resolvedAbsolute = false; + for (var i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? args[i] : FS.cwd(); + // Skip empty and invalid entries + if (typeof path !== 'string') { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + return ''; // an invalid portion invalidates the whole thing } - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push('..'); + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = PATH.isAbs(path); + } + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter((p) => !!p), !resolvedAbsolute).join('/'); + return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; + }, +relative:(from, to) => { + from = PATH_FS.resolve(from).slice(1); + to = PATH_FS.resolve(to).slice(1); + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; + } + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; } - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - return outputParts.join('/'); - }, - }; + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join('/'); + }, +}; + + + + + /** + * Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given + * array that contains uint8 values, returns a copy of that string as a + * Javascript String object. + * heapOrArray is either a regular array, or a JavaScript typed array view. + * @param {number=} idx + * @param {number=} maxBytesToRead + * @param {boolean=} ignoreNul - If true, the function will not stop on a NUL character. + * @return {string} + */ + var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead, ignoreNul) => { + var endPtr = findStringEnd(heapOrArray, idx, maxBytesToRead, ignoreNul); + return UTF8Decoder.decode(heapOrArray.buffer ? heapOrArray.subarray(idx, endPtr) : new Uint8Array(heapOrArray.slice(idx, endPtr))); + }; var FS_stdin_getChar_buffer = []; @@ -927,18 +695,10 @@ function createWasm() { var startIdx = outIdx; var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code - // unit, not a Unicode code point of the character! So decode - // UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description // and https://www.ietf.org/rfc/rfc2279.txt // and https://tools.ietf.org/html/rfc3629 - var u = str.charCodeAt(i); // possibly a lead surrogate - if (u >= 0xD800 && u <= 0xDFFF) { - var u1 = str.charCodeAt(++i); - u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF); - } + var u = str.codePointAt(i); if (u <= 0x7F) { if (outIdx >= endIdx) break; heap[outIdx++] = u; @@ -957,6 +717,9 @@ function createWasm() { heap[outIdx++] = 0x80 | ((u >> 12) & 63); heap[outIdx++] = 0x80 | ((u >> 6) & 63); heap[outIdx++] = 0x80 | (u & 63); + // Gotcha: if codePoint is over 0xFFFF, it is represented as a surrogate pair in UTF-16. + // We need to manually skip over the second code unit for correct iteration. + i++; } } // Null-terminate the pointer to the buffer. @@ -964,18 +727,17 @@ function createWasm() { return outIdx - startIdx; }; /** @type {function(string, boolean=, number=)} */ - function intArrayFromString(stringy, dontAddNull, length) { - var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; - var u8array = new Array(len); - var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); - if (dontAddNull) u8array.length = numBytesWritten; - return u8array; - } + var intArrayFromString = (stringy, dontAddNull, length) => { + var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; + }; var FS_stdin_getChar = () => { if (!FS_stdin_getChar_buffer.length) { var result = null; - if (typeof window != 'undefined' && - typeof window.prompt == 'function') { + if (globalThis.window?.prompt) { // Browser. result = window.prompt('Input: '); // returns null on cancel if (result !== null) { @@ -1045,15 +807,18 @@ function createWasm() { } catch (e) { throw new FS.ErrnoError(29); } - if (result === undefined && bytesRead === 0) { + if (result === undefined && !bytesRead) { throw new FS.ErrnoError(6); } if (result === null || result === undefined) break; bytesRead++; buffer[offset+i] = result; + // We currently only support canonical mode (ICANON), where + // read(2) returns as soon as a line delimiter is read. + if (result === 10) break; } if (bytesRead) { - stream.node.timestamp = Date.now(); + stream.node.atime = Date.now(); } return bytesRead; }, @@ -1069,7 +834,7 @@ function createWasm() { throw new FS.ErrnoError(29); } if (length) { - stream.node.timestamp = Date.now(); + stream.node.mtime = stream.node.ctime = Date.now(); } return i; }, @@ -1087,7 +852,7 @@ function createWasm() { } }, fsync(tty) { - if (tty.output && tty.output.length > 0) { + if (tty.output?.length > 0) { out(UTF8ArrayToString(tty.output)); tty.output = []; } @@ -1124,7 +889,7 @@ function createWasm() { } }, fsync(tty) { - if (tty.output && tty.output.length > 0) { + if (tty.output?.length > 0) { err(UTF8ArrayToString(tty.output)); tty.output = []; } @@ -1133,9 +898,7 @@ function createWasm() { }; - var zeroMemory = (address, size) => { - HEAPU8.fill(0, address, address + size); - }; + var zeroMemory = (ptr, size) => HEAPU8.fill(0, ptr, ptr + size); var alignMemory = (size, alignment) => { return Math.ceil(size / alignment) * alignment; @@ -1146,14 +909,15 @@ function createWasm() { if (ptr) zeroMemory(ptr, size); return ptr; }; + var MEMFS = { ops_table:null, mount(mount) { return MEMFS.createNode(null, '/', 16895, 0); }, - createNode(parent, name, mode, dev) { + createNode(parent, name, mode, dev = undefined) { if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { - // no supported + // not supported throw new FS.ErrnoError(63); } MEMFS.ops_table ||= { @@ -1182,7 +946,6 @@ function createWasm() { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, - allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } @@ -1211,11 +974,14 @@ function createWasm() { } else if (FS.isFile(node.mode)) { node.node_ops = MEMFS.ops_table.file.node; node.stream_ops = MEMFS.ops_table.file.stream; - node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. - // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred - // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size - // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. - node.contents = null; + // The actual number of bytes used in the typed array, as opposed to + // contents.length which gives the whole capacity. + node.usedBytes = 0; + // The byte data of the file is stored in a typed array. + // Note: typed arrays are not resizable like normal JS arrays are, so + // there is a small penalty involved for appending file writes that + // continuously grow a file similar to std::vector capacity vs used. + node.contents = MEMFS.emptyFileContents ??= new Uint8Array(0); } else if (FS.isLink(node.mode)) { node.node_ops = MEMFS.ops_table.link.node; node.stream_ops = MEMFS.ops_table.link.stream; @@ -1223,45 +989,38 @@ function createWasm() { node.node_ops = MEMFS.ops_table.chrdev.node; node.stream_ops = MEMFS.ops_table.chrdev.stream; } - node.timestamp = Date.now(); + node.atime = node.mtime = node.ctime = Date.now(); // add the new node to the parent if (parent) { parent.contents[name] = node; - parent.timestamp = node.timestamp; + parent.atime = parent.mtime = parent.ctime = node.atime; } return node; }, getFileDataAsTypedArray(node) { - if (!node.contents) return new Uint8Array(0); - if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. - return new Uint8Array(node.contents); + return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. }, expandFileStorage(node, newCapacity) { - var prevCapacity = node.contents ? node.contents.length : 0; + var prevCapacity = node.contents.length; if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. - // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. - // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to - // avoid overshooting the allocation cap by a very large margin. - var CAPACITY_DOUBLING_MAX = 1024 * 1024; + // Don't expand strictly to the given requested limit if it's only a very + // small increase, but instead geometrically grow capacity. + // For small filesizes (<1MB), perform size*2 geometric increase, but for + // large sizes, do a much more conservative size*1.125 increase to avoid + // overshooting the allocation cap by a very large margin. + const CAPACITY_DOUBLING_MAX = 1024 * 1024; newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) >>> 0); - if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. - var oldContents = node.contents; + if (prevCapacity) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. + var oldContents = MEMFS.getFileDataAsTypedArray(node); node.contents = new Uint8Array(newCapacity); // Allocate new storage. - if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. + node.contents.set(oldContents); }, resizeFileStorage(node, newSize) { if (node.usedBytes == newSize) return; - if (newSize == 0) { - node.contents = null; // Fully decommit when requesting a resize to zero. - node.usedBytes = 0; - } else { - var oldContents = node.contents; - node.contents = new Uint8Array(newSize); // Allocate new storage. - if (oldContents) { - node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. - } - node.usedBytes = newSize; - } + var oldContents = node.contents; + node.contents = new Uint8Array(newSize); // Allocate new storage. + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. + node.usedBytes = newSize; }, node_ops:{ getattr(node) { @@ -1283,9 +1042,9 @@ function createWasm() { } else { attr.size = 0; } - attr.atime = new Date(node.timestamp); - attr.mtime = new Date(node.timestamp); - attr.ctime = new Date(node.timestamp); + attr.atime = new Date(node.atime); + attr.mtime = new Date(node.mtime); + attr.ctime = new Date(node.ctime); // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), // but this is not required by the standard. attr.blksize = 4096; @@ -1293,46 +1052,48 @@ function createWasm() { return attr; }, setattr(node, attr) { - if (attr.mode !== undefined) { - node.mode = attr.mode; - } - if (attr.timestamp !== undefined) { - node.timestamp = attr.timestamp; + for (const key of ['mode', 'atime', 'mtime', 'ctime']) { + if (attr[key] != null) { + node[key] = attr[key]; + } } if (attr.size !== undefined) { MEMFS.resizeFileStorage(node, attr.size); } }, lookup(parent, name) { + // This error may happen quite a bit. To avoid overhead we reuse it (and + // suffer a lack of stack info). + if (!MEMFS.doesNotExistError) { + MEMFS.doesNotExistError = new FS.ErrnoError(44); + /** @suppress {checkTypes} */ + MEMFS.doesNotExistError.stack = ''; + } throw MEMFS.doesNotExistError; }, - mknod(parent, name, mode, dev) { + mknod(parent, name, mode, dev = undefined) { return MEMFS.createNode(parent, name, mode, dev); }, rename(old_node, new_dir, new_name) { - // if we're overwriting a directory at new_name, make sure it's empty. - if (FS.isDir(old_node.mode)) { - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - } - if (new_node) { - for (var i in new_node.contents) { - throw new FS.ErrnoError(55); - } + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) {} + if (new_node && FS.isDir(old_node.mode)) { + // if we're overwriting a directory at new_name, make sure it's empty. + for (var i in new_node.contents) { + throw new FS.ErrnoError(55); } } // do the internal rewiring delete old_node.parent.contents[old_node.name]; - old_node.parent.timestamp = Date.now() - old_node.name = new_name; new_dir.contents[new_name] = old_node; - new_dir.timestamp = old_node.parent.timestamp; + old_node.name = new_name; + new_dir.ctime = new_dir.mtime = old_node.parent.ctime = old_node.parent.mtime = Date.now(); }, unlink(parent, name) { delete parent.contents[name]; - parent.timestamp = Date.now(); + parent.ctime = parent.mtime = Date.now(); }, rmdir(parent, name) { var node = FS.lookupNode(parent, name); @@ -1340,14 +1101,10 @@ function createWasm() { throw new FS.ErrnoError(55); } delete parent.contents[name]; - parent.timestamp = Date.now(); + parent.ctime = parent.mtime = Date.now(); }, readdir(node) { - var entries = ['.', '..']; - for (var key of Object.keys(node.contents)) { - entries.push(key); - } - return entries; + return ['.', '..', ...Object.keys(node.contents)]; }, symlink(parent, newname, oldpath) { var node = MEMFS.createNode(parent, newname, 0o777 | 40960, 0); @@ -1366,52 +1123,34 @@ function createWasm() { var contents = stream.node.contents; if (position >= stream.node.usedBytes) return 0; var size = Math.min(stream.node.usedBytes - position, length); - if (size > 8 && contents.subarray) { // non-trivial, and typed array - buffer.set(contents.subarray(position, position + size), offset); - } else { - for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; - } + buffer.set(contents.subarray(position, position + size), offset); return size; }, write(stream, buffer, offset, length, position, canOwn) { // If the buffer is located in main memory (HEAP), and if // memory can grow, we can't hold on to references of the // memory buffer, as they may get invalidated. That means we - // need to do copy its contents. + // need to copy its contents. if (buffer.buffer === HEAP8.buffer) { canOwn = false; } if (!length) return 0; var node = stream.node; - node.timestamp = Date.now(); - - if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array? - if (canOwn) { - node.contents = buffer.subarray(offset, offset + length); - node.usedBytes = length; - return length; - } else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. - node.contents = buffer.slice(offset, offset + length); - node.usedBytes = length; - return length; - } else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file? - node.contents.set(buffer.subarray(offset, offset + length), position); - return length; - } - } + node.mtime = node.ctime = Date.now(); - // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. - MEMFS.expandFileStorage(node, position+length); - if (node.contents.subarray && buffer.subarray) { + if (canOwn) { + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + } else if (!node.usedBytes && !position) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. + node.contents = buffer.slice(offset, offset + length); + node.usedBytes = length; + } else { + MEMFS.expandFileStorage(node, position+length); // Use typed array write which is available. node.contents.set(buffer.subarray(offset, offset + length), position); - } else { - for (var i = 0; i < length; i++) { - node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. - } + node.usedBytes = Math.max(node.usedBytes, position + length); } - node.usedBytes = Math.max(node.usedBytes, position + length); return length; }, llseek(stream, offset, whence) { @@ -1428,10 +1167,6 @@ function createWasm() { } return position; }, - allocate(stream, offset, length) { - MEMFS.expandFileStorage(stream.node, offset + length); - stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); - }, mmap(stream, length, position, prot, flags) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(43); @@ -1440,7 +1175,7 @@ function createWasm() { var allocated; var contents = stream.node.contents; // Only make a new copy when MAP_PRIVATE is specified. - if (!(flags & 2) && contents && contents.buffer === HEAP8.buffer) { + if (!(flags & 2) && contents.buffer === HEAP8.buffer) { // We can't emulate MAP_SHARED when the file is not backed by the // buffer we're mapping to (e.g. the HEAP buffer). allocated = false; @@ -1473,76 +1208,8 @@ function createWasm() { }, }; - /** @param {boolean=} noRunDep */ - var asyncLoad = (url, onload, onerror, noRunDep) => { - var dep = !noRunDep ? getUniqueRunDependency(`al ${url}`) : ''; - readAsync(url).then( - (arrayBuffer) => { - onload(new Uint8Array(arrayBuffer)); - if (dep) removeRunDependency(dep); - }, - (err) => { - if (onerror) { - onerror(); - } else { - throw `Loading data file "${url}" failed.`; - } - } - ); - if (dep) addRunDependency(dep); - }; - - - var FS_createDataFile = (parent, name, fileData, canRead, canWrite, canOwn) => { - FS.createDataFile(parent, name, fileData, canRead, canWrite, canOwn); - }; - - var preloadPlugins = Module['preloadPlugins'] || []; - var FS_handledByPreloadPlugin = (byteArray, fullname, finish, onerror) => { - // Ensure plugins are ready. - if (typeof Browser != 'undefined') Browser.init(); - - var handled = false; - preloadPlugins.forEach((plugin) => { - if (handled) return; - if (plugin['canHandle'](fullname)) { - plugin['handle'](byteArray, fullname, finish, onerror); - handled = true; - } - }); - return handled; - }; - var FS_createPreloadedFile = (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { - // TODO we should allow people to just pass in a complete filename instead - // of parent and name being that we just join them anyways - var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; - var dep = getUniqueRunDependency(`cp ${fullname}`); // might have several active requests for the same fullname - function processData(byteArray) { - function finish(byteArray) { - preFinish?.(); - if (!dontCreateFile) { - FS_createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); - } - onload?.(); - removeRunDependency(dep); - } - if (FS_handledByPreloadPlugin(byteArray, fullname, finish, () => { - onerror?.(); - removeRunDependency(dep); - })) { - return; - } - finish(byteArray); - } - addRunDependency(dep); - if (typeof url == 'string') { - asyncLoad(url, processData, onerror); - } else { - processData(url); - } - }; - var FS_modeStringToFlags = (str) => { + if (typeof str !== 'string') return str; var flagModes = { 'r': 0, 'r+': 2, @@ -1552,12 +1219,22 @@ function createWasm() { 'a+': 1024 | 64 | 2, }; var flags = flagModes[str]; - if (typeof flags == 'undefined') { + if (typeof flags === 'undefined') { throw new Error(`Unknown file open mode: ${str}`); } return flags; }; + var FS_fileDataToTypedArray = (data) => { + if (typeof data === 'string') { + data = intArrayFromString(data, true); + } + if (!data.subarray) { + data = new Uint8Array(data); + } + return data; + }; + var FS_getMode = (canRead, canWrite) => { var mode = 0; if (canRead) mode |= 292 | 73; @@ -1566,6 +1243,81 @@ function createWasm() { }; + var asyncLoad = async (url) => { + var arrayBuffer = await readAsync(url); + return new Uint8Array(arrayBuffer); + }; + + + var FS_createDataFile = (...args) => FS.createDataFile(...args); + + var getUniqueRunDependency = (id) => { + return id; + }; + + var dependenciesPromise = null; + var resolveRunDependencies = async () => dependenciesPromise; + var runDependencies = 0; + + + var dependenciesPromiseResolve = null; + var removeRunDependency = (id) => { + runDependencies--; + + if (!runDependencies) { + dependenciesPromiseResolve(); + } + }; + + + var addRunDependency = (id) => { + if (!runDependencies) { + dependenciesPromise = new Promise((resolve) => dependenciesPromiseResolve = resolve); + } + runDependencies++; + + }; + + + var preloadPlugins = []; + var FS_handledByPreloadPlugin = async (byteArray, fullname) => { + // Ensure plugins are ready. + if (typeof Browser !== 'undefined') Browser.init(); + + for (var plugin of preloadPlugins) { + if (plugin['canHandle'](fullname)) { + return plugin['handle'](byteArray, fullname); + } + } + // If no plugin handled this file then return the original/unmodified + // byteArray. + return byteArray; + }; + var FS_preloadFile = async (parent, name, url, canRead, canWrite, dontCreateFile, canOwn, preFinish) => { + // TODO we should allow people to just pass in a complete filename instead + // of parent and name being that we just join them anyways + var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; + var dep = getUniqueRunDependency(`cp ${fullname}`); // might have several active requests for the same fullname + addRunDependency(dep); + + try { + var byteArray = url; + if (typeof url === 'string') { + byteArray = await asyncLoad(url); + } + + byteArray = await FS_handledByPreloadPlugin(byteArray, fullname); + preFinish?.(); + if (!dontCreateFile) { + FS_createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + } finally { + removeRunDependency(dep); + } + }; + var FS_createPreloadedFile = (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { + FS_preloadFile(parent, name, url, canRead, canWrite, dontCreateFile, canOwn, preFinish).then(onload).catch(onerror); + }; var FS = { root:null, @@ -1574,10 +1326,11 @@ function createWasm() { }, streams:[], nextInode:1, - nameTable:null, + nameTable:[], currentPath:"/", initialized:false, ignorePermissions:true, + syncFSRequests:0, ErrnoError:class { name = 'ErrnoError'; // We set the `name` property to be able to identify `FS.ErrnoError` @@ -1590,10 +1343,6 @@ function createWasm() { this.errno = errno; } }, - filesystems:null, - syncFSRequests:0, - readFiles:{ - }, FSStream:class { shared = {}; get object() { @@ -1640,6 +1389,7 @@ function createWasm() { this.name = name; this.mode = mode; this.rdev = rdev; + this.atime = this.mtime = this.ctime = Date.now(); } get read() { return (this.mode & this.readMode) === this.readMode; @@ -1659,65 +1409,128 @@ function createWasm() { get isDevice() { return FS.isChrdev(this.mode); } + // The per-inode readiness wait-queue. The node carries a Set of listener + // entries {cb}; producers (SOCKFS, PIPEFS) call notifyListeners on a + // readiness transition, and poll()/epoll consume it. It lives on the node + // (not the fd) so dup'd fds share one queue. Only nodes that derive real + // readiness (sockets, pipes, and an epoll's own node) ever use this - + // always-ready types (regular files, ttys) never register or notify. + addListener(cb, exclusive = false) { + var entry = {cb, exclusive}; + var listeners = (this.listeners ??= new Set()); + listeners.add(entry); + return {listeners, entry}; + } + notifyListeners(flags) { + // Iterates the set without copying, which is safe ONLY under a + // load-bearing contract that every internal listener must honour: + // 1. A listener must not run user code synchronously (a poll waiter only + // resolves a Promise; an epoll registration only re-lists + + // re-notifies; the epoll callback only schedules a tick). User code + // runs on a later tick, never inside this loop. + // 2. A listener may delete entries only from ITS OWN waiter, never from + // a sibling node's set that may be mid-iteration. (Deleting an entry + // of the set being iterated here is fine - a Set tolerates removal of + // a not-yet-visited entry mid-iteration; mutating a *different* node's + // set is fine because that set is not being iterated.) + // Violating either gives silently skipped wakeups that are near-impossible + // to reproduce. Any new producer/listener must preserve it. + if (!this.listeners) return; + // Fire every non-exclusive listener. Among EPOLLEXCLUSIVE registrations + // (one fd watched by several epolls) wake only one, rotating round-robin + // per node, to avoid a thundering herd. (Only epoll registrations are ever + // exclusive; poll waiters and a node's own consumers are not.) + var excl; + for (var entry of this.listeners) { + if (entry.exclusive) (excl ||= []).push(entry); + else entry.cb(flags); + } + if (excl) { + var i = (this.exclTurn || 0) % excl.length; + this.exclTurn = i + 1; + excl[i].cb(flags); + } + } }, lookupPath(path, opts = {}) { - path = PATH_FS.resolve(path); - - if (!path) return { path: '', node: null }; - - var defaults = { - follow_mount: true, - recurse_count: 0 - }; - opts = Object.assign(defaults, opts) + if (!path) { + throw new FS.ErrnoError(44); + } + opts.follow_mount ??= true - if (opts.recurse_count > 8) { // max recursive lookup of 8 - throw new FS.ErrnoError(32); + if (!PATH.isAbs(path)) { + path = FS.cwd() + '/' + path; } - // split the absolute path - var parts = path.split('/').filter((p) => !!p); + // limit max consecutive symlinks to SYMLOOP_MAX. + linkloop: for (var nlinks = 0; nlinks < 40; nlinks++) { + // split the absolute path + var parts = path.split('/').filter((p) => !!p); - // start at the root - var current = FS.root; - var current_path = '/'; + // start at the root + var current = FS.root; + var current_path = '/'; - for (var i = 0; i < parts.length; i++) { - var islast = (i === parts.length-1); - if (islast && opts.parent) { - // stop resolving - break; - } + for (var i = 0; i < parts.length; i++) { + var islast = (i === parts.length-1); + if (islast && opts.parent) { + // stop resolving + break; + } - current = FS.lookupNode(current, parts[i]); - current_path = PATH.join2(current_path, parts[i]); + if (parts[i] === '.') { + continue; + } - // jump to the mount's root node if this is a mountpoint - if (FS.isMountpoint(current)) { - if (!islast || (islast && opts.follow_mount)) { - current = current.mounted.root; + if (parts[i] === '..') { + current_path = PATH.dirname(current_path); + if (FS.isRoot(current)) { + path = current_path + '/' + parts.slice(i + 1).join('/'); + // We're making progress here, don't let many consecutive ..'s + // lead to ELOOP + nlinks--; + continue linkloop; + } else { + current = current.parent; + } + continue; } - } - // by default, lookupPath will not follow a symlink if it is the final path component. - // setting opts.follow = true will override this behavior. - if (!islast || opts.follow) { - var count = 0; - while (FS.isLink(current.mode)) { - var link = FS.readlink(current_path); - current_path = PATH_FS.resolve(PATH.dirname(current_path), link); + current_path = PATH.join2(current_path, parts[i]); + try { + current = FS.lookupNode(current, parts[i]); + } catch (e) { + // if noent_okay is true, suppress a ENOENT in the last component + // and return an object with an undefined node. This is needed for + // resolving symlinks in the path when creating a file. + if ((e?.errno === 44) && islast && opts.noent_okay) { + return { path: current_path }; + } + throw e; + } - var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 }); - current = lookup.node; + // jump to the mount's root node if this is a mountpoint + if (FS.isMountpoint(current) && (!islast || opts.follow_mount)) { + current = current.mounted.root; + } - if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). - throw new FS.ErrnoError(32); + // by default, lookupPath will not follow a symlink if it is the final path component. + // setting opts.follow = true will override this behavior. + if (FS.isLink(current.mode) && (!islast || opts.follow)) { + if (!current.node_ops.readlink) { + throw new FS.ErrnoError(52); + } + var link = current.node_ops.readlink(current); + if (!PATH.isAbs(link)) { + link = PATH.dirname(current_path) + '/' + link; } + path = link + '/' + parts.slice(i + 1).join('/'); + continue linkloop; } } + return { path: current_path, node: current }; } - - return { path: current_path, node: current }; + throw new FS.ErrnoError(32); }, getPath(node) { var path; @@ -1774,7 +1587,7 @@ function createWasm() { // if we failed to find it in the cache, call into the VFS return FS.lookup(parent, name); }, - createNode(parent, name, mode, rdev) { + createNode(parent, name, mode, rdev = undefined) { var node = new FS.FSNode(parent, name, mode, rdev); FS.hashAddNode(node); @@ -1825,9 +1638,11 @@ function createWasm() { // return 0 if any user, group or owner bits are set. if (perms.includes('r') && !(node.mode & 292)) { return 2; - } else if (perms.includes('w') && !(node.mode & 146)) { + } + if (perms.includes('w') && !(node.mode & 146)) { return 2; - } else if (perms.includes('x') && !(node.mode & 73)) { + } + if (perms.includes('x') && !(node.mode & 73)) { return 2; } return 0; @@ -1840,6 +1655,9 @@ function createWasm() { return 0; }, mayCreate(dir, name) { + if (!FS.isDir(dir.mode)) { + return 54; + } try { var node = FS.lookupNode(dir, name); return 20; @@ -1865,10 +1683,8 @@ function createWasm() { if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { return 10; } - } else { - if (FS.isDir(node.mode)) { - return 31; - } + } else if (FS.isDir(node.mode)) { + return 31; } return 0; }, @@ -1878,13 +1694,22 @@ function createWasm() { } if (FS.isLink(node.mode)) { return 32; - } else if (FS.isDir(node.mode)) { - if (FS.flagsToPermissionString(flags) !== 'r' || // opening for write - (flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only) + } + var mode = FS.flagsToPermissionString(flags); + if (FS.isDir(node.mode)) { + // opening for write + // TODO: check for O_SEARCH? (== search for dir only) + if (mode !== 'r' || (flags & (512 | 64))) { return 31; } } - return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + return FS.nodePermissions(node, mode); + }, + checkOpExists(op, err) { + if (!op) { + throw new FS.ErrnoError(err); + } + return op; }, MAX_OPEN_FDS:4096, nextfd() { @@ -1922,6 +1747,20 @@ function createWasm() { stream.stream_ops?.dup?.(stream); return stream; }, + doSetAttr(stream, node, attr) { + var setattr = stream?.stream_ops.setattr; + var arg = setattr ? stream : node; + setattr ??= node.node_ops.setattr; + FS.checkOpExists(setattr, 63) + try { + setattr(arg, attr); + } catch (e) { + if (e instanceof RangeError) { + throw new FS.ErrnoError(22); + } + throw e; + } + }, chrdev_stream_ops:{ open(stream) { var device = FS.getDevice(stream.node.rdev); @@ -1956,7 +1795,7 @@ function createWasm() { return mounts; }, syncfs(populate, callback) { - if (typeof populate == 'function') { + if (typeof populate === 'function') { callback = populate; populate = false; } @@ -1989,12 +1828,13 @@ function createWasm() { }; // sync all mounts - mounts.forEach((mount) => { - if (!mount.type.syncfs) { - return done(null); + for (var mount of mounts) { + if (mount.type.syncfs) { + mount.type.syncfs(mount, populate, done); + } else { + done(null); } - mount.type.syncfs(mount, populate, done); - }); + } }, mount(type, opts, mountpoint) { var root = mountpoint === '/'; @@ -2056,9 +1896,7 @@ function createWasm() { var mount = node.mounted; var mounts = FS.getMounts(mount); - Object.keys(FS.nameTable).forEach((hash) => { - var current = FS.nameTable[hash]; - + for (var [hash, current] of Object.entries(FS.nameTable)) { while (current) { var next = current.name_next; @@ -2068,7 +1906,7 @@ function createWasm() { current = next; } - }); + } // no longer a mountpoint node.mounted = null; @@ -2084,9 +1922,12 @@ function createWasm() { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); - if (!name || name === '.' || name === '..') { + if (!name) { throw new FS.ErrnoError(28); } + if (name === '.' || name === '..') { + throw new FS.ErrnoError(20); + } var errCode = FS.mayCreate(parent, name); if (errCode) { throw new FS.ErrnoError(errCode); @@ -2097,15 +1938,24 @@ function createWasm() { return parent.node_ops.mknod(parent, name, mode, dev); }, statfs(path) { - + return FS.statfsNode(FS.lookupPath(path, {follow: true}).node); + }, + statfsStream(stream) { + // We keep a separate statfsStream function because noderawfs overrides + // it. In noderawfs, stream.node is sometimes null. Instead, we need to + // look at stream.path. + return FS.statfsNode(stream.node); + }, + statfsNode(node) { // NOTE: None of the defaults here are true. We're just returning safe and - // sane values. + // sane values. Currently nodefs and rawfs replace these defaults, + // other file systems leave them alone. var rtn = { bsize: 4096, frsize: 4096, - blocks: 1e6, - bfree: 5e5, - bavail: 5e5, + blocks: 1_000_000, + bfree: 500_000, + bavail: 500_000, files: FS.nextInode, ffree: FS.nextInode - 1, fsid: 42, @@ -2113,9 +1963,8 @@ function createWasm() { namelen: 255, }; - var parent = FS.lookupPath(path, {follow: true}).node; - if (parent?.node_ops.statfs) { - Object.assign(rtn, parent.node_ops.statfs(parent.mount.opts.root)); + if (node.node_ops.statfs) { + Object.assign(rtn, node.node_ops.statfs(node.mount.opts.root)); } return rtn; }, @@ -2129,12 +1978,13 @@ function createWasm() { mode |= 16384; return FS.mknod(path, mode, 0); }, - mkdirTree(path, mode) { + mkdirTree(path, mode = 0o777) { var dirs = path.split('/'); var d = ''; - for (var i = 0; i < dirs.length; ++i) { - if (!dirs[i]) continue; - d += '/' + dirs[i]; + for (var dir of dirs) { + if (!dir) continue; + if (d || PATH.isAbs(path)) d += '/'; + d += dir; try { FS.mkdir(d, mode); } catch(e) { @@ -2142,8 +1992,8 @@ function createWasm() { } } }, - mkdev(path, mode, dev) { - if (typeof dev == 'undefined') { + mkdev(path, mode, dev = undefined) { + if (typeof dev === 'undefined') { dev = mode; mode = 0o666; } @@ -2169,6 +2019,25 @@ function createWasm() { } return parent.node_ops.symlink(parent, newname, oldpath); }, + link(oldpath, newpath, flags) { + var lookup = FS.lookupPath(newpath, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var newname = PATH.basename(newpath); + var errCode = FS.mayCreate(parent, newname); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + // Hardlinks are only supported by filesystem backends that provide a + // `link` node op (e.g. NODERAWFS backed by the host). NODEFS omits it: + // a host hardlink cannot be confined to the mount root. + if (!parent.node_ops.link) { + throw new FS.ErrnoError(34); + } + return parent.node_ops.link(parent, newname, oldpath, flags); + }, rename(old_path, new_path) { var old_dirname = PATH.dirname(old_path); var new_dirname = PATH.dirname(new_path); @@ -2243,6 +2112,11 @@ function createWasm() { // do the underlying fs rename try { old_dir.node_ops.rename(old_node, new_dir, new_name); + // The replaced node is stale now. Evict it only after the rename + // succeeded: backends like NODEFS report node.id as st_ino. + if (new_node) { + FS.hashRemoveNode(new_node); + } // update old node (we do this here to avoid each backend // needing to) old_node.parent = new_dir; @@ -2275,10 +2149,8 @@ function createWasm() { readdir(path) { var lookup = FS.lookupPath(path, { follow: true }); var node = lookup.node; - if (!node.node_ops.readdir) { - throw new FS.ErrnoError(54); - } - return node.node_ops.readdir(node); + var readdir = FS.checkOpExists(node.node_ops.readdir, 54); + return readdir(node); }, unlink(path) { var lookup = FS.lookupPath(path, { parent: true }); @@ -2315,80 +2187,73 @@ function createWasm() { } return link.node_ops.readlink(link); }, - stat(path, dontFollow) { + stat(path, dontFollow = false) { var lookup = FS.lookupPath(path, { follow: !dontFollow }); var node = lookup.node; - if (!node) { - throw new FS.ErrnoError(44); - } - if (!node.node_ops.getattr) { - throw new FS.ErrnoError(63); - } - return node.node_ops.getattr(node); + var getattr = FS.checkOpExists(node.node_ops.getattr, 63); + return getattr(node); + }, + fstat(fd) { + var stream = FS.getStreamChecked(fd); + var node = stream.node; + var getattr = stream.stream_ops.getattr; + var arg = getattr ? stream : node; + getattr ??= node.node_ops.getattr; + FS.checkOpExists(getattr, 63) + return getattr(arg); }, lstat(path) { return FS.stat(path, true); }, - chmod(path, mode, dontFollow) { + doChmod(stream, node, mode, dontFollow = false) { + FS.doSetAttr(stream, node, { + mode: (mode & 4095) | (node.mode & ~4095), + ctime: Date.now(), + dontFollow + }); + }, + chmod(path, mode, dontFollow = false) { var node; - if (typeof path == 'string') { + if (typeof path === 'string') { var lookup = FS.lookupPath(path, { follow: !dontFollow }); node = lookup.node; } else { node = path; } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { - mode: (mode & 4095) | (node.mode & ~4095), - timestamp: Date.now() - }); + FS.doChmod(null, node, mode, dontFollow); }, lchmod(path, mode) { FS.chmod(path, mode, true); }, fchmod(fd, mode) { var stream = FS.getStreamChecked(fd); - FS.chmod(stream.node, mode); + FS.doChmod(stream, stream.node, mode, false); + }, + doChown(stream, node, dontFollow = false) { + FS.doSetAttr(stream, node, { + timestamp: Date.now(), + dontFollow + // we ignore the uid / gid for now + }); }, - chown(path, uid, gid, dontFollow) { + chown(path, uid, gid, dontFollow = false) { var node; - if (typeof path == 'string') { + if (typeof path === 'string') { var lookup = FS.lookupPath(path, { follow: !dontFollow }); node = lookup.node; } else { node = path; } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { - timestamp: Date.now() - // we ignore the uid / gid for now - }); + FS.doChown(null, node, dontFollow); }, lchown(path, uid, gid) { FS.chown(path, uid, gid, true); }, fchown(fd, uid, gid) { var stream = FS.getStreamChecked(fd); - FS.chown(stream.node, uid, gid); + FS.doChown(stream, stream.node, false); }, - truncate(path, len) { - if (len < 0) { - throw new FS.ErrnoError(28); - } - var node; - if (typeof path == 'string') { - var lookup = FS.lookupPath(path, { follow: true }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } + doTruncate(stream, node, len) { if (FS.isDir(node.mode)) { throw new FS.ErrnoError(31); } @@ -2399,48 +2264,64 @@ function createWasm() { if (errCode) { throw new FS.ErrnoError(errCode); } - node.node_ops.setattr(node, { + FS.doSetAttr(stream, node, { size: len, timestamp: Date.now() }); }, + truncate(path, len) { + if (len < 0) { + throw new FS.ErrnoError(28); + } + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + } else { + node = path; + } + FS.doTruncate(null, node, len); + }, ftruncate(fd, len) { var stream = FS.getStreamChecked(fd); - if ((stream.flags & 2097155) === 0) { + if (len < 0 || (stream.flags & 2097155) === 0) { throw new FS.ErrnoError(28); } - FS.truncate(stream.node, len); + FS.doTruncate(stream, stream.node, len); }, - utime(path, atime, mtime) { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - node.node_ops.setattr(node, { - timestamp: Math.max(atime, mtime) + utime(path, atime, mtime, dontFollow = false) { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + FS.doSetAttr(null, lookup.node, { + atime: atime, + mtime: mtime, + dontFollow }); }, open(path, flags, mode = 0o666) { - if (path === "") { + if (path === '') { throw new FS.ErrnoError(44); } - flags = typeof flags == 'string' ? FS_modeStringToFlags(flags) : flags; + flags = FS_modeStringToFlags(flags); if ((flags & 64)) { mode = (mode & 4095) | 32768; } else { mode = 0; } var node; - if (typeof path == 'object') { + var isDirPath; + if (typeof path === 'object') { node = path; } else { - path = PATH.normalize(path); - try { - var lookup = FS.lookupPath(path, { - follow: !(flags & 131072) - }); - node = lookup.node; - } catch (e) { - // ignore - } + isDirPath = path.endsWith('/'); + // noent_okay makes it so that if the final component of the path + // doesn't exist, lookupPath returns `node: undefined`. `path` will be + // updated to point to the target of all symlinks. + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072), + noent_okay: true + }); + node = lookup.node; + path = lookup.path; } // perhaps we need to create the node var created = false; @@ -2450,9 +2331,14 @@ function createWasm() { if ((flags & 128)) { throw new FS.ErrnoError(20); } + } else if (isDirPath) { + throw new FS.ErrnoError(31); } else { // node doesn't exist, try to create it - node = FS.mknod(path, mode, 0); + // Ignore the permission bits here to ensure we can `open` this new + // file below. We use chmod below to apply the permissions once the + // file is open. + node = FS.mknod(path, mode | 0o777, 0); created = true; } } @@ -2499,10 +2385,8 @@ function createWasm() { if (stream.stream_ops.open) { stream.stream_ops.open(stream); } - if (Module['logReadFiles'] && !(flags & 1)) { - if (!(path in FS.readFiles)) { - FS.readFiles[path] = 1; - } + if (created) { + FS.chmod(node, mode & 0o777); } return stream; }, @@ -2511,6 +2395,11 @@ function createWasm() { throw new FS.ErrnoError(8); } if (stream.getdents) stream.getdents = null; // free readdir state + // The fd is going away: wake anything waiting on it (poll/epoll) with + // POLLNVAL so a blocking wait unblocks and an epoll registration is evicted + // on its next derive. Only sockets/pipes/epoll ever carry a wait-queue, so + // for every other stream (incl. nodeless noderawfs stdio) this is a no-op. + stream.node?.notifyListeners(32); try { if (stream.stream_ops.close) { stream.stream_ops.close(stream); @@ -2539,7 +2428,7 @@ function createWasm() { stream.ungotten = []; return stream.position; }, - read(stream, buffer, offset, length, position) { + read(stream, buffer, offset, length, position = undefined) { if (length < 0 || position < 0) { throw new FS.ErrnoError(28); } @@ -2555,7 +2444,7 @@ function createWasm() { if (!stream.stream_ops.read) { throw new FS.ErrnoError(28); } - var seeking = typeof position != 'undefined'; + var seeking = typeof position !== 'undefined'; if (!seeking) { position = stream.position; } else if (!stream.seekable) { @@ -2565,7 +2454,7 @@ function createWasm() { if (!seeking) stream.position += bytesRead; return bytesRead; }, - write(stream, buffer, offset, length, position, canOwn) { + write(stream, buffer, offset, length, position = undefined, canOwn = undefined) { if (length < 0 || position < 0) { throw new FS.ErrnoError(28); } @@ -2585,7 +2474,7 @@ function createWasm() { // seek to the end before writing in append mode FS.llseek(stream, 0, 2); } - var seeking = typeof position != 'undefined'; + var seeking = typeof position !== 'undefined'; if (!seeking) { position = stream.position; } else if (!stream.seekable) { @@ -2595,24 +2484,6 @@ function createWasm() { if (!seeking) stream.position += bytesWritten; return bytesWritten; }, - allocate(stream, offset, length) { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (offset < 0 || length <= 0) { - throw new FS.ErrnoError(28); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (!stream.stream_ops.allocate) { - throw new FS.ErrnoError(138); - } - stream.stream_ops.allocate(stream, offset, length); - }, mmap(stream, length, position, prot, flags) { // User requests writing to file (prot & PROT_WRITE != 0). // Checking if we have permissions to write to the file unless @@ -2620,8 +2491,8 @@ function createWasm() { // to write to file opened in read-only mode with MAP_PRIVATE flag, // as all modifications will be visible only in the memory of // the current process. - if ((prot & 2) !== 0 - && (flags & 2) === 0 + if ((prot & 2) + && !(flags & 2) && (stream.flags & 2097155) !== 2) { throw new FS.ErrnoError(2); } @@ -2649,37 +2520,27 @@ function createWasm() { return stream.stream_ops.ioctl(stream, cmd, arg); }, readFile(path, opts = {}) { - opts.flags = opts.flags || 0; - opts.encoding = opts.encoding || 'binary'; + opts.flags ??= 0; + opts.encoding ??= 'binary'; if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { - throw new Error(`Invalid encoding type "${opts.encoding}"`); + abort(`Invalid encoding type "${opts.encoding}"`); } - var ret; var stream = FS.open(path, opts.flags); var stat = FS.stat(path); var length = stat.size; var buf = new Uint8Array(length); FS.read(stream, buf, 0, length, 0); if (opts.encoding === 'utf8') { - ret = UTF8ArrayToString(buf); - } else if (opts.encoding === 'binary') { - ret = buf; + buf = UTF8ArrayToString(buf); } FS.close(stream); - return ret; + return buf; }, writeFile(path, data, opts = {}) { - opts.flags = opts.flags || 577; + opts.flags ??= 577; var stream = FS.open(path, opts.flags, opts.mode); - if (typeof data == 'string') { - var buf = new Uint8Array(lengthBytesUTF8(data)+1); - var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); - FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn); - } else if (ArrayBuffer.isView(data)) { - FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); - } else { - throw new Error('Unsupported data type'); - } + data = FS_fileDataToTypedArray(data); + FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); FS.close(stream); }, cwd:() => FS.currentPath, @@ -2723,8 +2584,9 @@ function createWasm() { // use a buffer to avoid overhead of individual crypto calls per byte var randomBuffer = new Uint8Array(1024), randomLeft = 0; var randomByte = () => { - if (randomLeft === 0) { - randomLeft = randomFill(randomBuffer).byteLength; + if (!randomLeft) { + randomFill(randomBuffer); + randomLeft = randomBuffer.byteLength; } return randomBuffer[--randomLeft]; }; @@ -2744,6 +2606,9 @@ function createWasm() { FS.mount({ mount() { var node = FS.createNode(proc_self, 'fd', 16895, 73); + node.stream_ops = { + llseek: MEMFS.stream_ops.llseek, + }; node.node_ops = { lookup(parent, name) { var fd = +name; @@ -2752,9 +2617,15 @@ function createWasm() { parent: null, mount: { mountpoint: 'fake' }, node_ops: { readlink: () => stream.path }, + id: fd + 1, }; ret.parent = ret; // make it look like a simple root node return ret; + }, + readdir() { + return Array.from(FS.streams.entries()) + .filter(([k, v]) => v) + .map(([k, v]) => k.toString()); } }; return node; @@ -2792,25 +2663,18 @@ function createWasm() { var stderr = FS.open('/dev/stderr', 1); }, staticInit() { - FS.nameTable = new Array(4096); + FS.nameTable.length = 4096; FS.mount(MEMFS, {}, '/'); FS.createDefaultDirectories(); FS.createDefaultDevices(); FS.createSpecialDirectories(); - - FS.filesystems = { - 'MEMFS': MEMFS, - }; }, - init(input, output, error) { + init(input = undefined, output = undefined, error = undefined) { FS.initialized = true; // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here - input ??= Module['stdin']; - output ??= Module['stdout']; - error ??= Module['stderr']; FS.createStandardStreams(input, output, error); }, @@ -2818,22 +2682,13 @@ function createWasm() { FS.initialized = false; // force-flush all streams, so we get musl std streams printed out // close all of our streams - for (var i = 0; i < FS.streams.length; i++) { - var stream = FS.streams[i]; - if (!stream) { - continue; + for (var stream of FS.streams) { + if (stream) { + FS.close(stream); } - FS.close(stream); - } - }, - findObject(path, dontResolveLastLink) { - var ret = FS.analyzePath(path, dontResolveLastLink); - if (!ret.exists) { - return null; } - return ret.object; }, - analyzePath(path, dontResolveLastLink) { + analyzePath(path, dontResolveLastLink = false) { // operate from within the context of the symlink's target try { var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); @@ -2861,8 +2716,8 @@ function createWasm() { }; return ret; }, - createPath(parent, path, canRead, canWrite) { - parent = typeof parent == 'string' ? parent : FS.getPath(parent); + createPath(parent, path, canRead = undefined, canWrite = undefined) { + parent = typeof parent === 'string' ? parent : FS.getPath(parent); var parts = path.split('/').reverse(); while (parts.length) { var part = parts.pop(); @@ -2871,31 +2726,27 @@ function createWasm() { try { FS.mkdir(current); } catch (e) { - // ignore EEXIST + if (e.errno != 20) throw e; } parent = current; } return current; }, - createFile(parent, name, properties, canRead, canWrite) { - var path = PATH.join2(typeof parent == 'string' ? parent : FS.getPath(parent), name); + createFile(parent, name, properties, canRead = undefined, canWrite = undefined) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); var mode = FS_getMode(canRead, canWrite); return FS.create(path, mode); }, - createDataFile(parent, name, data, canRead, canWrite, canOwn) { + createDataFile(parent, name, data = undefined, canRead = undefined, canWrite = undefined, canOwn = undefined) { var path = name; if (parent) { - parent = typeof parent == 'string' ? parent : FS.getPath(parent); + parent = typeof parent === 'string' ? parent : FS.getPath(parent); path = name ? PATH.join2(parent, name) : parent; } var mode = FS_getMode(canRead, canWrite); var node = FS.create(path, mode); if (data) { - if (typeof data == 'string') { - var arr = new Array(data.length); - for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); - data = arr; - } + data = FS_fileDataToTypedArray(data); // make sure we can write to the file FS.chmod(node, mode | 146); var stream = FS.open(node, 577); @@ -2904,8 +2755,8 @@ function createWasm() { FS.chmod(node, mode); } }, - createDevice(parent, name, input, output) { - var path = PATH.join2(typeof parent == 'string' ? parent : FS.getPath(parent), name); + createDevice(parent, name, input = undefined, output = undefined) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); var mode = FS_getMode(!!input, !!output); FS.createDevice.major ??= 64; var dev = FS.makedev(FS.createDevice.major++, 0); @@ -2930,7 +2781,7 @@ function createWasm() { } catch (e) { throw new FS.ErrnoError(29); } - if (result === undefined && bytesRead === 0) { + if (result === undefined && !bytesRead) { throw new FS.ErrnoError(6); } if (result === null || result === undefined) break; @@ -2938,7 +2789,7 @@ function createWasm() { buffer[offset+i] = result; } if (bytesRead) { - stream.node.timestamp = Date.now(); + stream.node.atime = Date.now(); } return bytesRead; }, @@ -2951,7 +2802,7 @@ function createWasm() { } } if (length) { - stream.node.timestamp = Date.now(); + stream.node.mtime = stream.node.ctime = Date.now(); } return i; } @@ -2960,18 +2811,17 @@ function createWasm() { }, forceLoadFile(obj) { if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; - if (typeof XMLHttpRequest != 'undefined') { - throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); + if (globalThis.XMLHttpRequest) { + abort('Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.'); } else { // Command-line. try { obj.contents = readBinary(obj.url); - obj.usedBytes = obj.contents.length; } catch (e) { throw new FS.ErrnoError(29); } } }, - createLazyFile(parent, name, url, canRead, canWrite) { + createLazyFile(parent, name, url, canRead = undefined, canWrite = undefined) { // Lazy chunked Uint8Array (implements get and length from Uint8Array). // Actual getting is abstracted away for eventual reuse. class LazyUint8Array { @@ -2993,11 +2843,11 @@ function createWasm() { var xhr = new XMLHttpRequest(); xhr.open('HEAD', url, false); xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); - var datalength = Number(xhr.getResponseHeader("Content-length")); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort(`Couldn't load ${url}. Status: ${xhr.status}`); + var datalength = Number(xhr.getResponseHeader('Content-length')); var header; - var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; - var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + var hasByteServing = (header = xhr.getResponseHeader('Accept-Ranges')) && header === 'bytes'; + var usesGzip = (header = xhr.getResponseHeader('Content-Encoding')) && header === 'gzip'; var chunkSize = 1024*1024; // Chunk size in bytes @@ -3005,13 +2855,13 @@ function createWasm() { // Function to get a range from the remote URL. var doXHR = (from, to) => { - if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); - if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!"); + if (from > to) abort(`invalid range (${from}, ${to}) or no bytes requested!`); + if (to > datalength-1) abort(`only ${datalength} bytes available! programmer error!`); // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. var xhr = new XMLHttpRequest(); xhr.open('GET', url, false); - if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + if (datalength !== chunkSize) xhr.setRequestHeader('Range', `bytes=${from}-${to}`); // Some hints to the browser that we want binary data. xhr.responseType = 'arraybuffer'; @@ -3020,21 +2870,21 @@ function createWasm() { } xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort(`Couldn't load ${url}. Status: ${xhr.status}`); if (xhr.response !== undefined) { return new Uint8Array(/** @type{Array} */(xhr.response || [])); } - return intArrayFromString(xhr.responseText || '', true); + return intArrayFromString(xhr.responseText ?? '', true); }; var lazyArray = this; lazyArray.setDataGetter((chunkNum) => { var start = chunkNum * chunkSize; var end = (chunkNum+1) * chunkSize - 1; // including this byte end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block - if (typeof lazyArray.chunks[chunkNum] == 'undefined') { + if (typeof lazyArray.chunks[chunkNum] === 'undefined') { lazyArray.chunks[chunkNum] = doXHR(start, end); } - if (typeof lazyArray.chunks[chunkNum] == 'undefined') throw new Error('doXHR failed!'); + if (typeof lazyArray.chunks[chunkNum] === 'undefined') abort('doXHR failed!'); return lazyArray.chunks[chunkNum]; }); @@ -3043,7 +2893,7 @@ function createWasm() { chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file datalength = this.getter(0).length; chunkSize = datalength; - out("LazyFiles on gzip forces download of the whole file when length is accessed"); + out('LazyFiles on gzip forces download of the whole file when length is accessed'); } this._length = datalength; @@ -3064,8 +2914,8 @@ function createWasm() { } } - if (typeof XMLHttpRequest != 'undefined') { - if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; + if (globalThis.XMLHttpRequest) { + if (!ENVIRONMENT_IS_WORKER) abort('Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'); var lazyArray = new LazyUint8Array(); var properties = { isDevice: false, contents: lazyArray }; } else { @@ -3090,14 +2940,12 @@ function createWasm() { }); // override each stream op with one that tries to force load the lazy file first var stream_ops = {}; - var keys = Object.keys(node.stream_ops); - keys.forEach((key) => { - var fn = node.stream_ops[key]; + for (const [key, fn] of Object.entries(node.stream_ops)) { stream_ops[key] = (...args) => { FS.forceLoadFile(node); return fn(...args); }; - }); + } function writeChunks(stream, buffer, offset, length, position) { var contents = stream.node.contents; if (position >= contents.length) @@ -3134,9 +2982,19 @@ function createWasm() { }, }; + + + /** @type {!Int32Array} */ + var HEAP32; + + /** @type {!Uint32Array} */ + var HEAPU32; + + /** not-@type {!BigInt64Array} */ + var HEAP64; var SYSCALLS = { - DEFAULT_POLLMASK:5, - calculateAt(dirfd, path, allowEmpty) { + currentUmask:18, + calculateAt(dirfd, path, allowEmpty = false) { if (PATH.isAbs(path)) { return path; } @@ -3154,16 +3012,15 @@ function createWasm() { } return dir; } - return PATH.join2(dir, path); + return dir + '/' + path; }, - doStat(func, path, buf) { - var stat = func(path); - HEAP32[((buf)>>2)] = stat.dev; - HEAP32[(((buf)+(4))>>2)] = stat.mode; + writeStat(buf, stat) { + HEAPU32[((buf)>>2)] = stat.dev; + HEAPU32[(((buf)+(4))>>2)] = stat.mode; HEAPU32[(((buf)+(8))>>2)] = stat.nlink; - HEAP32[(((buf)+(12))>>2)] = stat.uid; - HEAP32[(((buf)+(16))>>2)] = stat.gid; - HEAP32[(((buf)+(20))>>2)] = stat.rdev; + HEAPU32[(((buf)+(12))>>2)] = stat.uid; + HEAPU32[(((buf)+(16))>>2)] = stat.gid; + HEAPU32[(((buf)+(20))>>2)] = stat.rdev; HEAP64[(((buf)+(24))>>3)] = BigInt(stat.size); HEAP32[(((buf)+(32))>>2)] = 4096; HEAP32[(((buf)+(36))>>2)] = stat.blocks; @@ -3179,6 +3036,18 @@ function createWasm() { HEAP64[(((buf)+(88))>>3)] = BigInt(stat.ino); return 0; }, + writeStatFs(buf, stats) { + HEAPU32[(((buf)+(4))>>2)] = stats.bsize; + HEAPU32[(((buf)+(60))>>2)] = stats.bsize; + HEAP64[(((buf)+(8))>>3)] = BigInt(stats.blocks); + HEAP64[(((buf)+(16))>>3)] = BigInt(stats.bfree); + HEAP64[(((buf)+(24))>>3)] = BigInt(stats.bavail); + HEAP64[(((buf)+(32))>>3)] = BigInt(stats.files); + HEAP64[(((buf)+(40))>>3)] = BigInt(stats.ffree); + HEAPU32[(((buf)+(48))>>2)] = stats.fsid; + HEAPU32[(((buf)+(64))>>2)] = stats.flags; // ST_NOSUID + HEAPU32[(((buf)+(56))>>2)] = stats.namelen; + }, doMsync(addr, stream, len, flags, offset) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(43); @@ -3187,7 +3056,7 @@ function createWasm() { // MAP_PRIVATE calls need not to be synced back to underlying fs return 0; } - var buffer = HEAPU8.slice(addr, addr + len); + var buffer = HEAPU8.subarray(addr, addr + len); FS.msync(stream, buffer, offset, len, flags); }, getStreamFromFD(fd) { @@ -3207,10 +3076,11 @@ function createWasm() { FS.chmod(path, mode); return 0; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } } + function ___syscall_faccessat(dirfd, path, amode, flags) { try { @@ -3235,10 +3105,11 @@ function createWasm() { } return 0; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } } + function ___syscall_fchmod(fd, mode) { try { @@ -3246,10 +3117,11 @@ function createWasm() { FS.fchmod(fd, mode); return 0; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } } + function ___syscall_fchown32(fd, owner, group) { try { @@ -3257,12 +3129,12 @@ function createWasm() { FS.fchown(fd, owner, group); return 0; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } } + - /** @suppress {duplicate } */ var syscallGetVarargI = () => { // the `+` prepended here is necessary to convince the JSCompiler that varargs is indeed a number. var ret = HEAP32[((+SYSCALLS.varargs)>>2)]; @@ -3272,6 +3144,9 @@ function createWasm() { var syscallGetVarargP = syscallGetVarargI; + + /** @type {!Int16Array} */ + var HEAP16; function ___syscall_fcntl64(fd, cmd, varargs) { SYSCALLS.varargs = varargs; try { @@ -3297,7 +3172,8 @@ function createWasm() { return stream.flags; case 4: { var arg = syscallGetVarargI(); - stream.flags |= arg; + var mask = 289792; + stream.flags = (stream.flags & ~mask) | (arg & mask); return 0; } case 12: { @@ -3309,25 +3185,30 @@ function createWasm() { } case 13: case 14: - return 0; // Pretend that the locking is successful. + // Pretend that the locking is successful. These are process-level locks, + // and Emscripten programs are a single process. If we supported linking a + // filesystem between programs, we'd need to do more here. + // See https://github.com/emscripten-core/emscripten/issues/23697 + return 0; } return -28; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } } + function ___syscall_fstat64(fd, buf) { try { - var stream = SYSCALLS.getStreamFromFD(fd); - return SYSCALLS.doStat(FS.stat, stream.path, buf); + return SYSCALLS.writeStat(buf, FS.fstat(fd)); } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } } + var INT53_MAX = 9007199254740992; @@ -3336,39 +3217,46 @@ function createWasm() { function ___syscall_ftruncate64(fd, length) { length = bigintToI53Checked(length); - + try { - if (isNaN(length)) return 61; + if (isNaN(length)) return -22; FS.ftruncate(fd, length); return 0; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } ; } + var stringToUTF8 = (str, outPtr, maxBytesToWrite) => { return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); }; function ___syscall_getcwd(buf, size) { try { - if (size === 0) return -28; + if (!size) return -28; var cwd = FS.cwd(); var cwdLengthInBytes = lengthBytesUTF8(cwd) + 1; if (size < cwdLengthInBytes) return -68; stringToUTF8(cwd, buf, size); return cwdLengthInBytes; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } } + + + var ___syscall_geteuid32 = () => 0; + + + function ___syscall_ioctl(fd, op, varargs) { SYSCALLS.varargs = varargs; try { @@ -3429,6 +3317,7 @@ function createWasm() { if (!stream.tty) return -59; return -28; // not supported } + case 21537: case 21531: { var argp = syscallGetVarargP(); return FS.ioctl(stream, op, argp); @@ -3459,38 +3348,38 @@ function createWasm() { default: return -28; // not supported } } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } } + function ___syscall_lstat64(path, buf) { try { path = SYSCALLS.getStr(path); - return SYSCALLS.doStat(FS.lstat, path, buf); + return SYSCALLS.writeStat(buf, FS.lstat(path)); } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } } + function ___syscall_mkdirat(dirfd, path, mode) { try { path = SYSCALLS.getStr(path); path = SYSCALLS.calculateAt(dirfd, path); - // remove a trailing slash, if one - /a/b/ has basename of '', but - // we want to create b in the context of this function - path = PATH.normalize(path); - if (path[path.length-1] === '/') path = path.substr(0, path.length-1); - FS.mkdir(path, mode, 0); + mode &= ~SYSCALLS.currentUmask; + FS.mkdir(path, mode); return 0; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } } + function ___syscall_newfstatat(dirfd, path, buf, flags) { try { @@ -3500,12 +3389,13 @@ function createWasm() { var allowEmpty = flags & 4096; flags = flags & (~6400); path = SYSCALLS.calculateAt(dirfd, path, allowEmpty); - return SYSCALLS.doStat(nofollow ? FS.lstat : FS.stat, path, buf); + return SYSCALLS.writeStat(buf, nofollow ? FS.lstat(path) : FS.stat(path)); } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } } + function ___syscall_openat(dirfd, path, flags, varargs) { @@ -3515,15 +3405,20 @@ function createWasm() { path = SYSCALLS.getStr(path); path = SYSCALLS.calculateAt(dirfd, path); var mode = varargs ? syscallGetVarargI() : 0; + if (flags & 64) { + mode &= ~SYSCALLS.currentUmask; + } return FS.open(path, flags, mode).fd; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } } + + function ___syscall_readlinkat(dirfd, path, buf, bufsize) { try { @@ -3540,10 +3435,11 @@ function createWasm() { HEAP8[buf+len] = endChar; return len; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } } + function ___syscall_rmdir(path) { try { @@ -3552,48 +3448,54 @@ function createWasm() { FS.rmdir(path); return 0; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } } + function ___syscall_stat64(path, buf) { try { path = SYSCALLS.getStr(path); - return SYSCALLS.doStat(FS.stat, path, buf); + return SYSCALLS.writeStat(buf, FS.stat(path)); } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } } + function ___syscall_unlinkat(dirfd, path, flags) { try { path = SYSCALLS.getStr(path); path = SYSCALLS.calculateAt(dirfd, path); - if (flags === 0) { + if (!flags) { FS.unlink(path); } else if (flags === 512) { FS.rmdir(path); } else { - abort('Invalid flags passed to unlinkat'); + return -28; } return 0; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } } + + var readI53FromI64 = (ptr) => { return HEAPU32[((ptr)>>2)] + HEAP32[(((ptr)+(4))>>2)] * 4294967296; }; + function ___syscall_utimensat(dirfd, path, times, flags) { try { + var nofollow = flags & 256; path = SYSCALLS.getStr(path); path = SYSCALLS.calculateAt(dirfd, path, true); var now = Date.now(), atime, mtime; @@ -3601,41 +3503,32 @@ function createWasm() { atime = now; mtime = now; } else { - var seconds = readI53FromI64(times); - var nanoseconds = HEAP32[(((times)+(8))>>2)]; - if (nanoseconds == 1073741823) { - atime = now; - } else if (nanoseconds == 1073741822) { - atime = -1; - } else { - atime = (seconds*1000) + (nanoseconds/(1000*1000)); - } - times += 16; - seconds = readI53FromI64(times); - nanoseconds = HEAP32[(((times)+(8))>>2)]; - if (nanoseconds == 1073741823) { - mtime = now; - } else if (nanoseconds == 1073741822) { - mtime = -1; - } else { - mtime = (seconds*1000) + (nanoseconds/(1000*1000)); + function readTimespec(ptr) { + var tv_nsec = HEAP32[(((ptr)+(8))>>2)]; + if (tv_nsec == 1073741823) { + return now; + } + if (tv_nsec == 1073741822) { + return null; + } + var tv_sec = readI53FromI64(ptr); + return (tv_sec*1000) + Math.floor(tv_nsec/(1000*1000)); } + atime = readTimespec(times); + mtime = readTimespec(times + 16); } - // -1 here means UTIME_OMIT was passed. FS.utime tables the max of these - // two values and sets the timestamp to that single value. If both were - // set to UTIME_OMIT then we can skip the call completely. - if (mtime != -1 || atime != -1) { - FS.utime(path, atime, mtime); + // null here means UTIME_OMIT was passed. If both were set to UTIME_OMIT then + // we can skip the call completely. + if ((mtime ?? atime) !== null) { + FS.utime(path, atime, mtime, nofollow); } return 0; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } } - - var nowIsMonotonic = 1; - var __emscripten_get_now_is_monotonic = () => nowIsMonotonic; + var isLeapYear = (year) => year%4 === 0 && (year%100 !== 0 || year%400 === 0); @@ -3650,11 +3543,15 @@ function createWasm() { return yday; }; + function __localtime_js(time, tmPtr) { time = bigintToI53Checked(time); - + var date = new Date(time*1000); + if (isNaN(date.getTime())) { + return 1; + } HEAP32[((tmPtr)>>2)] = date.getSeconds(); HEAP32[(((tmPtr)+(4))>>2)] = date.getMinutes(); HEAP32[(((tmPtr)+(8))>>2)] = date.getHours(); @@ -3673,6 +3570,7 @@ function createWasm() { var winterOffset = start.getTimezoneOffset(); var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset))|0; HEAP32[(((tmPtr)+(32))>>2)] = dst; + return 0; ; } @@ -3681,13 +3579,14 @@ function createWasm() { + + function __mmap_js(len, prot, flags, fd, offset, allocated, addr) { offset = bigintToI53Checked(offset); - + try { - if (isNaN(offset)) return 61; var stream = SYSCALLS.getStreamFromFD(fd); var res = FS.mmap(stream, len, offset, prot, flags); var ptr = res.ptr; @@ -3695,7 +3594,7 @@ function createWasm() { HEAPU32[((addr)>>2)] = ptr; return 0; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } ; @@ -3705,7 +3604,7 @@ function createWasm() { function __munmap_js(addr, len, prot, flags, fd, offset) { offset = bigintToI53Checked(offset); - + try { var stream = SYSCALLS.getStreamFromFD(fd); @@ -3713,12 +3612,14 @@ function createWasm() { SYSCALLS.doMsync(addr, stream, len, flags, offset); } } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return -e.errno; } ; } + + var __tzset_js = (timezone, daylight, std_name, dst_name) => { // TODO: Use (malleable) environment variables instead of system settings. var currentYear = new Date().getFullYear(); @@ -3747,11 +3648,11 @@ function createWasm() { var extractZone = (timezoneOffset) => { // Why inverse sign? // Read here https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset - var sign = timezoneOffset >= 0 ? "-" : "+"; + var sign = timezoneOffset >= 0 ? '-' : '+'; var absOffset = Math.abs(timezoneOffset) - var hours = String(Math.floor(absOffset / 60)).padStart(2, "0"); - var minutes = String(absOffset % 60).padStart(2, "0"); + var hours = String(Math.floor(absOffset / 60)).padStart(2, '0'); + var minutes = String(absOffset % 60).padStart(2, '0'); return `UTC${sign}${hours}${minutes}`; } @@ -3768,10 +3669,44 @@ function createWasm() { } }; + var _emscripten_get_now = () => performance.now(); + var _emscripten_date_now = () => Date.now(); + + var nowIsMonotonic = 1; + + var checkWasiClock = (clock_id) => clock_id >= 0 && clock_id <= 3; + + + function _clock_time_get(clk_id, ignored_precision, ptime) { + ignored_precision = bigintToI53Checked(ignored_precision); + + + if (!checkWasiClock(clk_id)) { + return 28; + } + var now; + // all wasi clocks but realtime are monotonic + if (clk_id === 0) { + now = _emscripten_date_now(); + } else if (nowIsMonotonic) { + now = _emscripten_get_now(); + } else { + return 52; + } + // "now" is in ms, and wasi times are in ns. + var nsec = Math.round(now * 1_000_000); + HEAP64[((ptime)>>3)] = BigInt(nsec); + return 0; + ; + } + - var _emscripten_get_now = () => performance.now(); + var abortOnCannotGrowMemory = (requestedSize) => { + abort('OOM'); + }; + var getHeapMax = () => // Stay one Wasm page short of 4GB: while e.g. Chrome is able to allocate // full 4GB Wasm memories, the size will wrap back to 0 bytes in Wasm side @@ -3780,13 +3715,9 @@ function createWasm() { 2147483648; - var abortOnCannotGrowMemory = (requestedSize) => { - abort('OOM'); - }; - var growMemory = (size) => { - var b = wasmMemory.buffer; - var pages = ((size - b.byteLength + 65535) / 65536) | 0; + var oldHeapSize = wasmMemory.buffer.byteLength; + var pages = ((size - oldHeapSize + 65535) / 65536) | 0; try { // round size grow request up to wasm page size (fixed 64KB per spec) wasmMemory.grow(pages); // .grow() takes a delta compared to the previous size @@ -3794,9 +3725,10 @@ function createWasm() { return 1 /*success*/; } catch(e) { } - // implicit 0 return to save code size (caller will cast "undefined" into 0 + // implicit 0 return to save code size (caller will cast 'undefined' into 0 // anyhow) }; + var _emscripten_resize_heap = (requestedSize) => { var oldSize = HEAPU8.length; // With CAN_ADDRESS_2GB or MEMORY64, pointers are already unsigned. @@ -3850,12 +3782,11 @@ function createWasm() { var ENV = { }; - var getExecutableName = () => thisProgram || './this.program'; + var getExecutableName = () => thisProgram; var getEnvStrings = () => { if (!getEnvStrings.strings) { // Default values. - // Browser language detection #8751 - var lang = ((typeof navigator == 'object' && navigator.languages && navigator.languages[0]) || 'C').replace('-', '_') + '.UTF-8'; + var lang = (globalThis.navigator?.language ?? 'C').replace('-', '_') + '.UTF-8'; var env = { 'USER': 'web_user', 'LOGNAME': 'web_user', @@ -3882,45 +3813,41 @@ function createWasm() { return getEnvStrings.strings; }; - var stringToAscii = (str, buffer) => { - for (var i = 0; i < str.length; ++i) { - HEAP8[buffer++] = str.charCodeAt(i); - } - // Null-terminate the string - HEAP8[buffer] = 0; - }; + var _environ_get = (__environ, environ_buf) => { var bufSize = 0; - getEnvStrings().forEach((string, i) => { + var envp = 0; + for (var string of getEnvStrings()) { var ptr = environ_buf + bufSize; - HEAPU32[(((__environ)+(i*4))>>2)] = ptr; - stringToAscii(string, ptr); - bufSize += string.length + 1; - }); + HEAPU32[(((__environ)+(envp))>>2)] = ptr; + bufSize += stringToUTF8(string, ptr, Infinity) + 1; + envp += 4; + } return 0; }; + + var _environ_sizes_get = (penviron_count, penviron_buf_size) => { var strings = getEnvStrings(); HEAPU32[((penviron_count)>>2)] = strings.length; var bufSize = 0; - strings.forEach((string) => bufSize += string.length + 1); + for (var string of strings) { + bufSize += lengthBytesUTF8(string) + 1; + } HEAPU32[((penviron_buf_size)>>2)] = bufSize; return 0; }; - var runtimeKeepaliveCounter = 0; - var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0; + var keepRuntimeAlive = () => true; var _proc_exit = (code) => { EXITSTATUS = code; if (!keepRuntimeAlive()) { - Module['onExit']?.(code); ABORT = true; } quit_(code, new ExitStatus(code)); }; - /** @suppress {duplicate } */ /** @param {boolean|number=} implicit */ var exitJS = (status, implicit) => { EXITSTATUS = status; @@ -3936,11 +3863,15 @@ function createWasm() { FS.close(stream); return 0; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return e.errno; } } + + + + function _fd_fdstat_get(fd, pbuf) { try { @@ -3962,11 +3893,13 @@ function createWasm() { HEAP64[(((pbuf)+(16))>>3)] = BigInt(rightsInheriting); return 0; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return e.errno; } } + + /** @param {number=} offset */ var doReadv = (stream, iov, iovcnt, offset) => { var ret = 0; @@ -3974,17 +3907,29 @@ function createWasm() { var ptr = HEAPU32[((iov)>>2)]; var len = HEAPU32[(((iov)+(4))>>2)]; iov += 8; - var curr = FS.read(stream, HEAP8, ptr, len, offset); + try { + var curr = FS.read(stream, HEAP8, ptr, len, offset); + } catch (e) { + // On a non-blocking stream a subsequent read may would-block after we + // already gathered data. POSIX readv is a single gather-read: return + // what we have rather than failing the whole call. + if (ret > 0 && e instanceof FS.ErrnoError && + (e.errno == 6 || e.errno == 6)) { + break; + } + throw e; + } if (curr < 0) return -1; ret += curr; if (curr < len) break; // nothing more to read - if (typeof offset != 'undefined') { + if (typeof offset !== 'undefined') { offset += curr; } } return ret; }; + function _fd_read(fd, iov, iovcnt, pnum) { try { @@ -3993,26 +3938,28 @@ function createWasm() { HEAPU32[((pnum)>>2)] = num; return 0; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return e.errno; } } + + function _fd_seek(fd, offset, whence, newOffset) { offset = bigintToI53Checked(offset); - + try { - if (isNaN(offset)) return 61; + if (isNaN(offset)) return 22; var stream = SYSCALLS.getStreamFromFD(fd); FS.llseek(stream, offset, whence); HEAP64[((newOffset)>>3)] = BigInt(stream.position); - if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state + if (stream.getdents && !offset && whence === 0) stream.getdents = null; // reset readdir state return 0; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return e.errno; } ; @@ -4022,37 +3969,43 @@ function createWasm() { try { var stream = SYSCALLS.getStreamFromFD(fd); - if (stream.stream_ops?.fsync) { - return stream.stream_ops.fsync(stream); - } - return 0; // we can't do anything synchronously; the in-memory FS is already synced to + var rtn = stream.stream_ops?.fsync?.(stream); + return rtn; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return e.errno; } } + + + /** @param {number=} offset */ var doWritev = (stream, iov, iovcnt, offset) => { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { + // Gather all iovecs into one contiguous buffer and issue a single + // FS.write, matching POSIX writev's single gather-write semantics (as + // __syscall_sendmsg already does). Per-iovec writes fragment a stream + // socket send into multiple segments, breaking stream byte semantics. + if (iovcnt == 1) { + // Single iovec: write directly from HEAP8, no gather buffer needed. + return FS.write(stream, HEAP8, HEAPU32[((iov)>>2)], HEAPU32[(((iov)+(4))>>2)], offset); + } + var total = 0; + for (var i = 0, p = iov; i < iovcnt; i++, p += 8) { + total += HEAPU32[(((p)+(4))>>2)]; + } + var view = new Uint8Array(total); + var voff = 0; + for (var i = 0; i < iovcnt; i++, iov += 8) { var ptr = HEAPU32[((iov)>>2)]; var len = HEAPU32[(((iov)+(4))>>2)]; - iov += 8; - var curr = FS.write(stream, HEAP8, ptr, len, offset); - if (curr < 0) return -1; - ret += curr; - if (curr < len) { - // No more space to write. - break; - } - if (typeof offset != 'undefined') { - offset += curr; - } + view.set(HEAPU8.subarray(ptr, ptr + len), voff); + voff += len; } - return ret; + return FS.write(stream, view, 0, total, offset); }; + function _fd_write(fd, iov, iovcnt, pnum) { try { @@ -4061,22 +4014,513 @@ function createWasm() { HEAPU32[((pnum)>>2)] = num; return 0; } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + if (typeof FS === 'undefined' || !(e.name === 'ErrnoError')) throw e; return e.errno; } } + + + + + + + /** @type {!Float32Array} */ + var HEAPF32; + + /** @type {!Float64Array} */ + var HEAPF64; + + + /** + * @param {number} ptr + * @param {string} type + */ + function getValue(ptr, type = 'i8') { + if (type.endsWith('*')) type = '*'; + switch (type) { + case 'i1': return HEAP8[ptr]; + case 'i8': return HEAP8[ptr]; + case 'i16': return HEAP16[((ptr)>>1)]; + case 'i32': return HEAP32[((ptr)>>2)]; + case 'i64': return HEAP64[((ptr)>>3)]; + case 'float': return HEAPF32[((ptr)>>2)]; + case 'double': return HEAPF64[((ptr)>>3)]; + case '*': return HEAPU32[((ptr)>>2)]; + default: abort(`invalid type for getValue: ${type}`); + } + } + + + + + + + + + /** + * @param {number} ptr + * @param {number} value + * @param {string} type + */ + function setValue(ptr, value, type = 'i8') { + if (type.endsWith('*')) type = '*'; + switch (type) { + case 'i1': HEAP8[ptr] = value; break; + case 'i8': HEAP8[ptr] = value; break; + case 'i16': HEAP16[((ptr)>>1)] = value; break; + case 'i32': HEAP32[((ptr)>>2)] = value; break; + case 'i64': HEAP64[((ptr)>>3)] = BigInt(value); break; + case 'float': HEAPF32[((ptr)>>2)] = value; break; + case 'double': HEAPF64[((ptr)>>3)] = value; break; + case '*': HEAPU32[((ptr)>>2)] = value; break; + default: abort(`invalid type for setValue: ${type}`); + } + } + + + + + + /** not-@type {!BigUint64Array} */ + var HEAPU64; + FS.createPreloadedFile = FS_createPreloadedFile; - FS.staticInit(); - // Set module methods based on EXPORTED_RUNTIME_METHODS - ; + FS.preloadFile = FS_preloadFile; + FS.staticInit();; +// End JS library code + +// include: postlibrary.js +// This file is included after the automatically-generated JS library code +// but before the wasm module is created. + +{ + + // Begin ATMODULES hooks + +if (Module['print']) out = Module['print']; +if (Module['printErr']) err = Module['printErr']; +if (Module['wasmBinary']) wasmBinary = Module['wasmBinary']; + // End ATMODULES hooks + + + + +} + +// Begin runtime exports + // End runtime exports + // Begin JS library exports + // End JS library exports + +// end include: postlibrary.js + + +// Imports from the Wasm binary. +var _sqlite3_vfs_find, + _sqlite3_free, + _sqlite3_finalize, + _sqlite3_exec, + _sqlite3_errmsg, + _sqlite3_strglob, + _sqlite3_prepare_v2, + _sqlite3_expanded_sql, + _sqlite3_step, + _sqlite3_column_text, + _sqlite3_column_count, + _sqlite3_column_type, + _sqlite3_column_bytes, + _sqlite3_column_blob, + _sqlite3_sql, + _sqlite3_reset, + _sqlite3_bind_int64, + _sqlite3_bind_int, + _sqlite3_bind_text, + _sqlite3_libversion_number, + _sqlite3_bind_double, + _sqlite3_malloc, + _sqlite3_libversion, + _sqlite3_sourceid, + _malloc, + _sqlite3_initialize, + _sqlite3_open_v2, + _sqlite3_file_control, + _sqlite3_create_function, + _sqlite3_db_status, + _sqlite3_status, + _free, + _sqlite3_stricmp, + _sqlite3_result_int64, + _wasm_main, + _sqlite3_status64, + _sqlite3_msize, + _sqlite3_vfs_register, + _sqlite3_vfs_unregister, + _sqlite3_malloc64, + _sqlite3_realloc, + _sqlite3_realloc64, + _sqlite3_value_text, + _sqlite3_randomness, + _sqlite3_strnicmp, + _sqlite3_uri_parameter, + _sqlite3_uri_boolean, + _sqlite3_serialize, + _sqlite3_column_int64, + _sqlite3_column_int, + _sqlite3_column_name, + _sqlite3_deserialize, + _sqlite3_clear_bindings, + _sqlite3_value_blob, + _sqlite3_value_bytes, + _sqlite3_value_double, + _sqlite3_value_int, + _sqlite3_value_int64, + _sqlite3_value_subtype, + _sqlite3_value_pointer, + _sqlite3_value_type, + _sqlite3_value_nochange, + _sqlite3_value_frombind, + _sqlite3_value_dup, + _sqlite3_value_free, + _sqlite3_result_blob, + _sqlite3_result_error_toobig, + _sqlite3_result_error_nomem, + _sqlite3_result_double, + _sqlite3_result_error, + _sqlite3_result_int, + _sqlite3_result_null, + _sqlite3_result_pointer, + _sqlite3_result_subtype, + _sqlite3_result_text, + _sqlite3_result_zeroblob, + _sqlite3_result_zeroblob64, + _sqlite3_result_error_code, + _sqlite3_user_data, + _sqlite3_context_db_handle, + _sqlite3_vtab_nochange, + _sqlite3_vtab_in_first, + _sqlite3_vtab_in_next, + _sqlite3_aggregate_context, + _sqlite3_get_auxdata, + _sqlite3_set_auxdata, + _sqlite3_data_count, + _sqlite3_column_double, + _sqlite3_column_value, + _sqlite3_column_decltype, + _sqlite3_bind_blob, + _sqlite3_bind_null, + _sqlite3_bind_pointer, + _sqlite3_bind_parameter_count, + _sqlite3_bind_parameter_name, + _sqlite3_bind_parameter_index, + _sqlite3_db_handle, + _sqlite3_stmt_readonly, + _sqlite3_stmt_isexplain, + _sqlite3_stmt_explain, + _sqlite3_stmt_busy, + _sqlite3_stmt_status, + _sqlite3_value_numeric_type, + _sqlite3_strlike, + _sqlite3_auto_extension, + _sqlite3_cancel_auto_extension, + _sqlite3_reset_auto_extension, + _sqlite3_prepare_v3, + _sqlite3_vtab_on_conflict, + _sqlite3_vtab_collation, + _sqlite3_vtab_in, + _sqlite3_vtab_rhs_value, + _sqlite3_vtab_distinct, + _sqlite3_keyword_name, + _sqlite3_keyword_count, + _sqlite3_keyword_check, + _sqlite3_complete, + _sqlite3_shutdown, + _sqlite3_last_insert_rowid, + _sqlite3_set_last_insert_rowid, + _sqlite3_changes64, + _sqlite3_changes, + _sqlite3_total_changes64, + _sqlite3_total_changes, + _sqlite3_txn_state, + _sqlite3_close_v2, + _sqlite3_busy_handler, + _sqlite3_busy_timeout, + _sqlite3_interrupt, + _sqlite3_is_interrupted, + _sqlite3_create_function_v2, + _sqlite3_overload_function, + _sqlite3_trace_v2, + _sqlite3_commit_hook, + _sqlite3_update_hook, + _sqlite3_rollback_hook, + _sqlite3_error_offset, + _sqlite3_errcode, + _sqlite3_extended_errcode, + _sqlite3_errstr, + _sqlite3_limit, + _sqlite3_open, + _sqlite3_create_collation, + _sqlite3_create_collation_v2, + _sqlite3_collation_needed, + _sqlite3_get_autocommit, + _sqlite3_table_column_metadata, + _sqlite3_extended_result_codes, + _sqlite3_uri_key, + _sqlite3_uri_int64, + _sqlite3_db_name, + _sqlite3_db_filename, + _sqlite3_db_readonly, + _sqlite3_compileoption_used, + _sqlite3_compileoption_get, + _sqlite3__wasm_pstack_ptr, + _sqlite3__wasm_pstack_restore, + _sqlite3__wasm_pstack_alloc, + _sqlite3__wasm_pstack_remaining, + _sqlite3__wasm_pstack_quota, + _sqlite3__wasm_db_error, + _sqlite3__wasm_test_struct, + _sqlite3__wasm_enum_json, + _sqlite3__wasm_vfs_unlink, + _sqlite3__wasm_db_vfs, + _sqlite3__wasm_db_reset, + _sqlite3__wasm_db_export_chunked, + _sqlite3__wasm_db_serialize, + _sqlite3__wasm_vfs_create_file, + _sqlite3__wasm_posix_create_file, + _sqlite3__wasm_kvvfsMakeKeyOnPstack, + _sqlite3__wasm_kvvfs_methods, + _sqlite3__wasm_vtab_config, + _sqlite3__wasm_db_config_ip, + _sqlite3__wasm_db_config_pii, + _sqlite3__wasm_db_config_s, + _sqlite3__wasm_config_i, + _sqlite3__wasm_config_ii, + _sqlite3__wasm_config_j, + _sqlite3__wasm_qfmt_token, + _sqlite3__wasm_init_wasmfs, + _sqlite3__wasm_test_intptr, + _sqlite3__wasm_test_voidptr, + _sqlite3__wasm_test_int64_max, + _sqlite3__wasm_test_int64_min, + _sqlite3__wasm_test_int64_times2, + _sqlite3__wasm_test_int64_minmax, + _sqlite3__wasm_test_int64ptr, + _sqlite3__wasm_test_stack_overflow, + _sqlite3__wasm_test_str_hello, + _sqlite3__wasm_SQLTester_strglob, + _realloc, + _emscripten_builtin_memalign, + _setThrew, + __emscripten_stack_restore, + __emscripten_stack_alloc, + _emscripten_stack_get_current, + memory, + __indirect_function_table, + wasmMemory; + + +function assignWasmExports(wasmExports) { + _sqlite3_vfs_find = Module['_sqlite3_vfs_find'] = wasmExports['sqlite3_vfs_find']; + _sqlite3_free = Module['_sqlite3_free'] = wasmExports['sqlite3_free']; + _sqlite3_finalize = Module['_sqlite3_finalize'] = wasmExports['sqlite3_finalize']; + _sqlite3_exec = Module['_sqlite3_exec'] = wasmExports['sqlite3_exec']; + _sqlite3_errmsg = Module['_sqlite3_errmsg'] = wasmExports['sqlite3_errmsg']; + _sqlite3_strglob = Module['_sqlite3_strglob'] = wasmExports['sqlite3_strglob']; + _sqlite3_prepare_v2 = Module['_sqlite3_prepare_v2'] = wasmExports['sqlite3_prepare_v2']; + _sqlite3_expanded_sql = Module['_sqlite3_expanded_sql'] = wasmExports['sqlite3_expanded_sql']; + _sqlite3_step = Module['_sqlite3_step'] = wasmExports['sqlite3_step']; + _sqlite3_column_text = Module['_sqlite3_column_text'] = wasmExports['sqlite3_column_text']; + _sqlite3_column_count = Module['_sqlite3_column_count'] = wasmExports['sqlite3_column_count']; + _sqlite3_column_type = Module['_sqlite3_column_type'] = wasmExports['sqlite3_column_type']; + _sqlite3_column_bytes = Module['_sqlite3_column_bytes'] = wasmExports['sqlite3_column_bytes']; + _sqlite3_column_blob = Module['_sqlite3_column_blob'] = wasmExports['sqlite3_column_blob']; + _sqlite3_sql = Module['_sqlite3_sql'] = wasmExports['sqlite3_sql']; + _sqlite3_reset = Module['_sqlite3_reset'] = wasmExports['sqlite3_reset']; + _sqlite3_bind_int64 = Module['_sqlite3_bind_int64'] = wasmExports['sqlite3_bind_int64']; + _sqlite3_bind_int = Module['_sqlite3_bind_int'] = wasmExports['sqlite3_bind_int']; + _sqlite3_bind_text = Module['_sqlite3_bind_text'] = wasmExports['sqlite3_bind_text']; + _sqlite3_libversion_number = Module['_sqlite3_libversion_number'] = wasmExports['sqlite3_libversion_number']; + _sqlite3_bind_double = Module['_sqlite3_bind_double'] = wasmExports['sqlite3_bind_double']; + _sqlite3_malloc = Module['_sqlite3_malloc'] = wasmExports['sqlite3_malloc']; + _sqlite3_libversion = Module['_sqlite3_libversion'] = wasmExports['sqlite3_libversion']; + _sqlite3_sourceid = Module['_sqlite3_sourceid'] = wasmExports['sqlite3_sourceid']; + _malloc = Module['_malloc'] = wasmExports['malloc']; + _sqlite3_initialize = Module['_sqlite3_initialize'] = wasmExports['sqlite3_initialize']; + _sqlite3_open_v2 = Module['_sqlite3_open_v2'] = wasmExports['sqlite3_open_v2']; + _sqlite3_file_control = Module['_sqlite3_file_control'] = wasmExports['sqlite3_file_control']; + _sqlite3_create_function = Module['_sqlite3_create_function'] = wasmExports['sqlite3_create_function']; + _sqlite3_db_status = Module['_sqlite3_db_status'] = wasmExports['sqlite3_db_status']; + _sqlite3_status = Module['_sqlite3_status'] = wasmExports['sqlite3_status']; + _free = Module['_free'] = wasmExports['free']; + _sqlite3_stricmp = Module['_sqlite3_stricmp'] = wasmExports['sqlite3_stricmp']; + _sqlite3_result_int64 = Module['_sqlite3_result_int64'] = wasmExports['sqlite3_result_int64']; + _wasm_main = Module['_wasm_main'] = wasmExports['wasm_main']; + _sqlite3_status64 = Module['_sqlite3_status64'] = wasmExports['sqlite3_status64']; + _sqlite3_msize = Module['_sqlite3_msize'] = wasmExports['sqlite3_msize']; + _sqlite3_vfs_register = Module['_sqlite3_vfs_register'] = wasmExports['sqlite3_vfs_register']; + _sqlite3_vfs_unregister = Module['_sqlite3_vfs_unregister'] = wasmExports['sqlite3_vfs_unregister']; + _sqlite3_malloc64 = Module['_sqlite3_malloc64'] = wasmExports['sqlite3_malloc64']; + _sqlite3_realloc = Module['_sqlite3_realloc'] = wasmExports['sqlite3_realloc']; + _sqlite3_realloc64 = Module['_sqlite3_realloc64'] = wasmExports['sqlite3_realloc64']; + _sqlite3_value_text = Module['_sqlite3_value_text'] = wasmExports['sqlite3_value_text']; + _sqlite3_randomness = Module['_sqlite3_randomness'] = wasmExports['sqlite3_randomness']; + _sqlite3_strnicmp = Module['_sqlite3_strnicmp'] = wasmExports['sqlite3_strnicmp']; + _sqlite3_uri_parameter = Module['_sqlite3_uri_parameter'] = wasmExports['sqlite3_uri_parameter']; + _sqlite3_uri_boolean = Module['_sqlite3_uri_boolean'] = wasmExports['sqlite3_uri_boolean']; + _sqlite3_serialize = Module['_sqlite3_serialize'] = wasmExports['sqlite3_serialize']; + _sqlite3_column_int64 = Module['_sqlite3_column_int64'] = wasmExports['sqlite3_column_int64']; + _sqlite3_column_int = Module['_sqlite3_column_int'] = wasmExports['sqlite3_column_int']; + _sqlite3_column_name = Module['_sqlite3_column_name'] = wasmExports['sqlite3_column_name']; + _sqlite3_deserialize = Module['_sqlite3_deserialize'] = wasmExports['sqlite3_deserialize']; + _sqlite3_clear_bindings = Module['_sqlite3_clear_bindings'] = wasmExports['sqlite3_clear_bindings']; + _sqlite3_value_blob = Module['_sqlite3_value_blob'] = wasmExports['sqlite3_value_blob']; + _sqlite3_value_bytes = Module['_sqlite3_value_bytes'] = wasmExports['sqlite3_value_bytes']; + _sqlite3_value_double = Module['_sqlite3_value_double'] = wasmExports['sqlite3_value_double']; + _sqlite3_value_int = Module['_sqlite3_value_int'] = wasmExports['sqlite3_value_int']; + _sqlite3_value_int64 = Module['_sqlite3_value_int64'] = wasmExports['sqlite3_value_int64']; + _sqlite3_value_subtype = Module['_sqlite3_value_subtype'] = wasmExports['sqlite3_value_subtype']; + _sqlite3_value_pointer = Module['_sqlite3_value_pointer'] = wasmExports['sqlite3_value_pointer']; + _sqlite3_value_type = Module['_sqlite3_value_type'] = wasmExports['sqlite3_value_type']; + _sqlite3_value_nochange = Module['_sqlite3_value_nochange'] = wasmExports['sqlite3_value_nochange']; + _sqlite3_value_frombind = Module['_sqlite3_value_frombind'] = wasmExports['sqlite3_value_frombind']; + _sqlite3_value_dup = Module['_sqlite3_value_dup'] = wasmExports['sqlite3_value_dup']; + _sqlite3_value_free = Module['_sqlite3_value_free'] = wasmExports['sqlite3_value_free']; + _sqlite3_result_blob = Module['_sqlite3_result_blob'] = wasmExports['sqlite3_result_blob']; + _sqlite3_result_error_toobig = Module['_sqlite3_result_error_toobig'] = wasmExports['sqlite3_result_error_toobig']; + _sqlite3_result_error_nomem = Module['_sqlite3_result_error_nomem'] = wasmExports['sqlite3_result_error_nomem']; + _sqlite3_result_double = Module['_sqlite3_result_double'] = wasmExports['sqlite3_result_double']; + _sqlite3_result_error = Module['_sqlite3_result_error'] = wasmExports['sqlite3_result_error']; + _sqlite3_result_int = Module['_sqlite3_result_int'] = wasmExports['sqlite3_result_int']; + _sqlite3_result_null = Module['_sqlite3_result_null'] = wasmExports['sqlite3_result_null']; + _sqlite3_result_pointer = Module['_sqlite3_result_pointer'] = wasmExports['sqlite3_result_pointer']; + _sqlite3_result_subtype = Module['_sqlite3_result_subtype'] = wasmExports['sqlite3_result_subtype']; + _sqlite3_result_text = Module['_sqlite3_result_text'] = wasmExports['sqlite3_result_text']; + _sqlite3_result_zeroblob = Module['_sqlite3_result_zeroblob'] = wasmExports['sqlite3_result_zeroblob']; + _sqlite3_result_zeroblob64 = Module['_sqlite3_result_zeroblob64'] = wasmExports['sqlite3_result_zeroblob64']; + _sqlite3_result_error_code = Module['_sqlite3_result_error_code'] = wasmExports['sqlite3_result_error_code']; + _sqlite3_user_data = Module['_sqlite3_user_data'] = wasmExports['sqlite3_user_data']; + _sqlite3_context_db_handle = Module['_sqlite3_context_db_handle'] = wasmExports['sqlite3_context_db_handle']; + _sqlite3_vtab_nochange = Module['_sqlite3_vtab_nochange'] = wasmExports['sqlite3_vtab_nochange']; + _sqlite3_vtab_in_first = Module['_sqlite3_vtab_in_first'] = wasmExports['sqlite3_vtab_in_first']; + _sqlite3_vtab_in_next = Module['_sqlite3_vtab_in_next'] = wasmExports['sqlite3_vtab_in_next']; + _sqlite3_aggregate_context = Module['_sqlite3_aggregate_context'] = wasmExports['sqlite3_aggregate_context']; + _sqlite3_get_auxdata = Module['_sqlite3_get_auxdata'] = wasmExports['sqlite3_get_auxdata']; + _sqlite3_set_auxdata = Module['_sqlite3_set_auxdata'] = wasmExports['sqlite3_set_auxdata']; + _sqlite3_data_count = Module['_sqlite3_data_count'] = wasmExports['sqlite3_data_count']; + _sqlite3_column_double = Module['_sqlite3_column_double'] = wasmExports['sqlite3_column_double']; + _sqlite3_column_value = Module['_sqlite3_column_value'] = wasmExports['sqlite3_column_value']; + _sqlite3_column_decltype = Module['_sqlite3_column_decltype'] = wasmExports['sqlite3_column_decltype']; + _sqlite3_bind_blob = Module['_sqlite3_bind_blob'] = wasmExports['sqlite3_bind_blob']; + _sqlite3_bind_null = Module['_sqlite3_bind_null'] = wasmExports['sqlite3_bind_null']; + _sqlite3_bind_pointer = Module['_sqlite3_bind_pointer'] = wasmExports['sqlite3_bind_pointer']; + _sqlite3_bind_parameter_count = Module['_sqlite3_bind_parameter_count'] = wasmExports['sqlite3_bind_parameter_count']; + _sqlite3_bind_parameter_name = Module['_sqlite3_bind_parameter_name'] = wasmExports['sqlite3_bind_parameter_name']; + _sqlite3_bind_parameter_index = Module['_sqlite3_bind_parameter_index'] = wasmExports['sqlite3_bind_parameter_index']; + _sqlite3_db_handle = Module['_sqlite3_db_handle'] = wasmExports['sqlite3_db_handle']; + _sqlite3_stmt_readonly = Module['_sqlite3_stmt_readonly'] = wasmExports['sqlite3_stmt_readonly']; + _sqlite3_stmt_isexplain = Module['_sqlite3_stmt_isexplain'] = wasmExports['sqlite3_stmt_isexplain']; + _sqlite3_stmt_explain = Module['_sqlite3_stmt_explain'] = wasmExports['sqlite3_stmt_explain']; + _sqlite3_stmt_busy = Module['_sqlite3_stmt_busy'] = wasmExports['sqlite3_stmt_busy']; + _sqlite3_stmt_status = Module['_sqlite3_stmt_status'] = wasmExports['sqlite3_stmt_status']; + _sqlite3_value_numeric_type = Module['_sqlite3_value_numeric_type'] = wasmExports['sqlite3_value_numeric_type']; + _sqlite3_strlike = Module['_sqlite3_strlike'] = wasmExports['sqlite3_strlike']; + _sqlite3_auto_extension = Module['_sqlite3_auto_extension'] = wasmExports['sqlite3_auto_extension']; + _sqlite3_cancel_auto_extension = Module['_sqlite3_cancel_auto_extension'] = wasmExports['sqlite3_cancel_auto_extension']; + _sqlite3_reset_auto_extension = Module['_sqlite3_reset_auto_extension'] = wasmExports['sqlite3_reset_auto_extension']; + _sqlite3_prepare_v3 = Module['_sqlite3_prepare_v3'] = wasmExports['sqlite3_prepare_v3']; + _sqlite3_vtab_on_conflict = Module['_sqlite3_vtab_on_conflict'] = wasmExports['sqlite3_vtab_on_conflict']; + _sqlite3_vtab_collation = Module['_sqlite3_vtab_collation'] = wasmExports['sqlite3_vtab_collation']; + _sqlite3_vtab_in = Module['_sqlite3_vtab_in'] = wasmExports['sqlite3_vtab_in']; + _sqlite3_vtab_rhs_value = Module['_sqlite3_vtab_rhs_value'] = wasmExports['sqlite3_vtab_rhs_value']; + _sqlite3_vtab_distinct = Module['_sqlite3_vtab_distinct'] = wasmExports['sqlite3_vtab_distinct']; + _sqlite3_keyword_name = Module['_sqlite3_keyword_name'] = wasmExports['sqlite3_keyword_name']; + _sqlite3_keyword_count = Module['_sqlite3_keyword_count'] = wasmExports['sqlite3_keyword_count']; + _sqlite3_keyword_check = Module['_sqlite3_keyword_check'] = wasmExports['sqlite3_keyword_check']; + _sqlite3_complete = Module['_sqlite3_complete'] = wasmExports['sqlite3_complete']; + _sqlite3_shutdown = Module['_sqlite3_shutdown'] = wasmExports['sqlite3_shutdown']; + _sqlite3_last_insert_rowid = Module['_sqlite3_last_insert_rowid'] = wasmExports['sqlite3_last_insert_rowid']; + _sqlite3_set_last_insert_rowid = Module['_sqlite3_set_last_insert_rowid'] = wasmExports['sqlite3_set_last_insert_rowid']; + _sqlite3_changes64 = Module['_sqlite3_changes64'] = wasmExports['sqlite3_changes64']; + _sqlite3_changes = Module['_sqlite3_changes'] = wasmExports['sqlite3_changes']; + _sqlite3_total_changes64 = Module['_sqlite3_total_changes64'] = wasmExports['sqlite3_total_changes64']; + _sqlite3_total_changes = Module['_sqlite3_total_changes'] = wasmExports['sqlite3_total_changes']; + _sqlite3_txn_state = Module['_sqlite3_txn_state'] = wasmExports['sqlite3_txn_state']; + _sqlite3_close_v2 = Module['_sqlite3_close_v2'] = wasmExports['sqlite3_close_v2']; + _sqlite3_busy_handler = Module['_sqlite3_busy_handler'] = wasmExports['sqlite3_busy_handler']; + _sqlite3_busy_timeout = Module['_sqlite3_busy_timeout'] = wasmExports['sqlite3_busy_timeout']; + _sqlite3_interrupt = Module['_sqlite3_interrupt'] = wasmExports['sqlite3_interrupt']; + _sqlite3_is_interrupted = Module['_sqlite3_is_interrupted'] = wasmExports['sqlite3_is_interrupted']; + _sqlite3_create_function_v2 = Module['_sqlite3_create_function_v2'] = wasmExports['sqlite3_create_function_v2']; + _sqlite3_overload_function = Module['_sqlite3_overload_function'] = wasmExports['sqlite3_overload_function']; + _sqlite3_trace_v2 = Module['_sqlite3_trace_v2'] = wasmExports['sqlite3_trace_v2']; + _sqlite3_commit_hook = Module['_sqlite3_commit_hook'] = wasmExports['sqlite3_commit_hook']; + _sqlite3_update_hook = Module['_sqlite3_update_hook'] = wasmExports['sqlite3_update_hook']; + _sqlite3_rollback_hook = Module['_sqlite3_rollback_hook'] = wasmExports['sqlite3_rollback_hook']; + _sqlite3_error_offset = Module['_sqlite3_error_offset'] = wasmExports['sqlite3_error_offset']; + _sqlite3_errcode = Module['_sqlite3_errcode'] = wasmExports['sqlite3_errcode']; + _sqlite3_extended_errcode = Module['_sqlite3_extended_errcode'] = wasmExports['sqlite3_extended_errcode']; + _sqlite3_errstr = Module['_sqlite3_errstr'] = wasmExports['sqlite3_errstr']; + _sqlite3_limit = Module['_sqlite3_limit'] = wasmExports['sqlite3_limit']; + _sqlite3_open = Module['_sqlite3_open'] = wasmExports['sqlite3_open']; + _sqlite3_create_collation = Module['_sqlite3_create_collation'] = wasmExports['sqlite3_create_collation']; + _sqlite3_create_collation_v2 = Module['_sqlite3_create_collation_v2'] = wasmExports['sqlite3_create_collation_v2']; + _sqlite3_collation_needed = Module['_sqlite3_collation_needed'] = wasmExports['sqlite3_collation_needed']; + _sqlite3_get_autocommit = Module['_sqlite3_get_autocommit'] = wasmExports['sqlite3_get_autocommit']; + _sqlite3_table_column_metadata = Module['_sqlite3_table_column_metadata'] = wasmExports['sqlite3_table_column_metadata']; + _sqlite3_extended_result_codes = Module['_sqlite3_extended_result_codes'] = wasmExports['sqlite3_extended_result_codes']; + _sqlite3_uri_key = Module['_sqlite3_uri_key'] = wasmExports['sqlite3_uri_key']; + _sqlite3_uri_int64 = Module['_sqlite3_uri_int64'] = wasmExports['sqlite3_uri_int64']; + _sqlite3_db_name = Module['_sqlite3_db_name'] = wasmExports['sqlite3_db_name']; + _sqlite3_db_filename = Module['_sqlite3_db_filename'] = wasmExports['sqlite3_db_filename']; + _sqlite3_db_readonly = Module['_sqlite3_db_readonly'] = wasmExports['sqlite3_db_readonly']; + _sqlite3_compileoption_used = Module['_sqlite3_compileoption_used'] = wasmExports['sqlite3_compileoption_used']; + _sqlite3_compileoption_get = Module['_sqlite3_compileoption_get'] = wasmExports['sqlite3_compileoption_get']; + _sqlite3__wasm_pstack_ptr = Module['_sqlite3__wasm_pstack_ptr'] = wasmExports['sqlite3__wasm_pstack_ptr']; + _sqlite3__wasm_pstack_restore = Module['_sqlite3__wasm_pstack_restore'] = wasmExports['sqlite3__wasm_pstack_restore']; + _sqlite3__wasm_pstack_alloc = Module['_sqlite3__wasm_pstack_alloc'] = wasmExports['sqlite3__wasm_pstack_alloc']; + _sqlite3__wasm_pstack_remaining = Module['_sqlite3__wasm_pstack_remaining'] = wasmExports['sqlite3__wasm_pstack_remaining']; + _sqlite3__wasm_pstack_quota = Module['_sqlite3__wasm_pstack_quota'] = wasmExports['sqlite3__wasm_pstack_quota']; + _sqlite3__wasm_db_error = Module['_sqlite3__wasm_db_error'] = wasmExports['sqlite3__wasm_db_error']; + _sqlite3__wasm_test_struct = Module['_sqlite3__wasm_test_struct'] = wasmExports['sqlite3__wasm_test_struct']; + _sqlite3__wasm_enum_json = Module['_sqlite3__wasm_enum_json'] = wasmExports['sqlite3__wasm_enum_json']; + _sqlite3__wasm_vfs_unlink = Module['_sqlite3__wasm_vfs_unlink'] = wasmExports['sqlite3__wasm_vfs_unlink']; + _sqlite3__wasm_db_vfs = Module['_sqlite3__wasm_db_vfs'] = wasmExports['sqlite3__wasm_db_vfs']; + _sqlite3__wasm_db_reset = Module['_sqlite3__wasm_db_reset'] = wasmExports['sqlite3__wasm_db_reset']; + _sqlite3__wasm_db_export_chunked = Module['_sqlite3__wasm_db_export_chunked'] = wasmExports['sqlite3__wasm_db_export_chunked']; + _sqlite3__wasm_db_serialize = Module['_sqlite3__wasm_db_serialize'] = wasmExports['sqlite3__wasm_db_serialize']; + _sqlite3__wasm_vfs_create_file = Module['_sqlite3__wasm_vfs_create_file'] = wasmExports['sqlite3__wasm_vfs_create_file']; + _sqlite3__wasm_posix_create_file = Module['_sqlite3__wasm_posix_create_file'] = wasmExports['sqlite3__wasm_posix_create_file']; + _sqlite3__wasm_kvvfsMakeKeyOnPstack = Module['_sqlite3__wasm_kvvfsMakeKeyOnPstack'] = wasmExports['sqlite3__wasm_kvvfsMakeKeyOnPstack']; + _sqlite3__wasm_kvvfs_methods = Module['_sqlite3__wasm_kvvfs_methods'] = wasmExports['sqlite3__wasm_kvvfs_methods']; + _sqlite3__wasm_vtab_config = Module['_sqlite3__wasm_vtab_config'] = wasmExports['sqlite3__wasm_vtab_config']; + _sqlite3__wasm_db_config_ip = Module['_sqlite3__wasm_db_config_ip'] = wasmExports['sqlite3__wasm_db_config_ip']; + _sqlite3__wasm_db_config_pii = Module['_sqlite3__wasm_db_config_pii'] = wasmExports['sqlite3__wasm_db_config_pii']; + _sqlite3__wasm_db_config_s = Module['_sqlite3__wasm_db_config_s'] = wasmExports['sqlite3__wasm_db_config_s']; + _sqlite3__wasm_config_i = Module['_sqlite3__wasm_config_i'] = wasmExports['sqlite3__wasm_config_i']; + _sqlite3__wasm_config_ii = Module['_sqlite3__wasm_config_ii'] = wasmExports['sqlite3__wasm_config_ii']; + _sqlite3__wasm_config_j = Module['_sqlite3__wasm_config_j'] = wasmExports['sqlite3__wasm_config_j']; + _sqlite3__wasm_qfmt_token = Module['_sqlite3__wasm_qfmt_token'] = wasmExports['sqlite3__wasm_qfmt_token']; + _sqlite3__wasm_init_wasmfs = Module['_sqlite3__wasm_init_wasmfs'] = wasmExports['sqlite3__wasm_init_wasmfs']; + _sqlite3__wasm_test_intptr = Module['_sqlite3__wasm_test_intptr'] = wasmExports['sqlite3__wasm_test_intptr']; + _sqlite3__wasm_test_voidptr = Module['_sqlite3__wasm_test_voidptr'] = wasmExports['sqlite3__wasm_test_voidptr']; + _sqlite3__wasm_test_int64_max = Module['_sqlite3__wasm_test_int64_max'] = wasmExports['sqlite3__wasm_test_int64_max']; + _sqlite3__wasm_test_int64_min = Module['_sqlite3__wasm_test_int64_min'] = wasmExports['sqlite3__wasm_test_int64_min']; + _sqlite3__wasm_test_int64_times2 = Module['_sqlite3__wasm_test_int64_times2'] = wasmExports['sqlite3__wasm_test_int64_times2']; + _sqlite3__wasm_test_int64_minmax = Module['_sqlite3__wasm_test_int64_minmax'] = wasmExports['sqlite3__wasm_test_int64_minmax']; + _sqlite3__wasm_test_int64ptr = Module['_sqlite3__wasm_test_int64ptr'] = wasmExports['sqlite3__wasm_test_int64ptr']; + _sqlite3__wasm_test_stack_overflow = Module['_sqlite3__wasm_test_stack_overflow'] = wasmExports['sqlite3__wasm_test_stack_overflow']; + _sqlite3__wasm_test_str_hello = Module['_sqlite3__wasm_test_str_hello'] = wasmExports['sqlite3__wasm_test_str_hello']; + _sqlite3__wasm_SQLTester_strglob = Module['_sqlite3__wasm_SQLTester_strglob'] = wasmExports['sqlite3__wasm_SQLTester_strglob']; + _realloc = Module['_realloc'] = wasmExports['realloc']; + _emscripten_builtin_memalign = wasmExports['emscripten_builtin_memalign']; + _setThrew = wasmExports['setThrew']; + __emscripten_stack_restore = wasmExports['_emscripten_stack_restore']; + __emscripten_stack_alloc = wasmExports['_emscripten_stack_alloc']; + _emscripten_stack_get_current = wasmExports['emscripten_stack_get_current']; + memory = wasmMemory = Module['wasmMemory'] = wasmExports['memory']; + __indirect_function_table = wasmExports['__indirect_function_table']; +} - // This error may happen quite a bit. To avoid overhead we reuse it (and - // suffer a lack of stack info). - MEMFS.doesNotExistError = new FS.ErrnoError(44); - /** @suppress {checkTypes} */ - MEMFS.doesNotExistError.stack = ''; - ; var wasmImports = { /** @export */ __assert_fail: ___assert_fail, @@ -4097,6 +4541,8 @@ var wasmImports = { /** @export */ __syscall_getcwd: ___syscall_getcwd, /** @export */ + __syscall_geteuid32: ___syscall_geteuid32, + /** @export */ __syscall_ioctl: ___syscall_ioctl, /** @export */ __syscall_lstat64: ___syscall_lstat64, @@ -4117,8 +4563,6 @@ var wasmImports = { /** @export */ __syscall_utimensat: ___syscall_utimensat, /** @export */ - _emscripten_get_now_is_monotonic: __emscripten_get_now_is_monotonic, - /** @export */ _localtime_js: __localtime_js, /** @export */ _mmap_js: __mmap_js, @@ -4127,6 +4571,8 @@ var wasmImports = { /** @export */ _tzset_js: __tzset_js, /** @export */ + clock_time_get: _clock_time_get, + /** @export */ emscripten_date_now: _emscripten_date_now, /** @export */ emscripten_get_now: _emscripten_get_now, @@ -4151,274 +4597,36 @@ var wasmImports = { /** @export */ fd_write: _fd_write }; -var wasmExports = createWasm(); -var ___wasm_call_ctors = () => (___wasm_call_ctors = wasmExports['__wasm_call_ctors'])(); -var _sqlite3_vfs_find = Module['_sqlite3_vfs_find'] = (a0) => (_sqlite3_vfs_find = Module['_sqlite3_vfs_find'] = wasmExports['sqlite3_vfs_find'])(a0); -var _sqlite3_free = Module['_sqlite3_free'] = (a0) => (_sqlite3_free = Module['_sqlite3_free'] = wasmExports['sqlite3_free'])(a0); -var _sqlite3_finalize = Module['_sqlite3_finalize'] = (a0) => (_sqlite3_finalize = Module['_sqlite3_finalize'] = wasmExports['sqlite3_finalize'])(a0); -var _sqlite3_exec = Module['_sqlite3_exec'] = (a0, a1, a2, a3, a4) => (_sqlite3_exec = Module['_sqlite3_exec'] = wasmExports['sqlite3_exec'])(a0, a1, a2, a3, a4); -var _sqlite3_errmsg = Module['_sqlite3_errmsg'] = (a0) => (_sqlite3_errmsg = Module['_sqlite3_errmsg'] = wasmExports['sqlite3_errmsg'])(a0); -var _sqlite3_strglob = Module['_sqlite3_strglob'] = (a0, a1) => (_sqlite3_strglob = Module['_sqlite3_strglob'] = wasmExports['sqlite3_strglob'])(a0, a1); -var _sqlite3_prepare_v2 = Module['_sqlite3_prepare_v2'] = (a0, a1, a2, a3, a4) => (_sqlite3_prepare_v2 = Module['_sqlite3_prepare_v2'] = wasmExports['sqlite3_prepare_v2'])(a0, a1, a2, a3, a4); -var _sqlite3_expanded_sql = Module['_sqlite3_expanded_sql'] = (a0) => (_sqlite3_expanded_sql = Module['_sqlite3_expanded_sql'] = wasmExports['sqlite3_expanded_sql'])(a0); -var _sqlite3_step = Module['_sqlite3_step'] = (a0) => (_sqlite3_step = Module['_sqlite3_step'] = wasmExports['sqlite3_step'])(a0); -var _sqlite3_column_text = Module['_sqlite3_column_text'] = (a0, a1) => (_sqlite3_column_text = Module['_sqlite3_column_text'] = wasmExports['sqlite3_column_text'])(a0, a1); -var _sqlite3_column_count = Module['_sqlite3_column_count'] = (a0) => (_sqlite3_column_count = Module['_sqlite3_column_count'] = wasmExports['sqlite3_column_count'])(a0); -var _sqlite3_column_type = Module['_sqlite3_column_type'] = (a0, a1) => (_sqlite3_column_type = Module['_sqlite3_column_type'] = wasmExports['sqlite3_column_type'])(a0, a1); -var _sqlite3_column_bytes = Module['_sqlite3_column_bytes'] = (a0, a1) => (_sqlite3_column_bytes = Module['_sqlite3_column_bytes'] = wasmExports['sqlite3_column_bytes'])(a0, a1); -var _sqlite3_column_blob = Module['_sqlite3_column_blob'] = (a0, a1) => (_sqlite3_column_blob = Module['_sqlite3_column_blob'] = wasmExports['sqlite3_column_blob'])(a0, a1); -var _sqlite3_sql = Module['_sqlite3_sql'] = (a0) => (_sqlite3_sql = Module['_sqlite3_sql'] = wasmExports['sqlite3_sql'])(a0); -var _sqlite3_reset = Module['_sqlite3_reset'] = (a0) => (_sqlite3_reset = Module['_sqlite3_reset'] = wasmExports['sqlite3_reset'])(a0); -var _sqlite3_bind_int64 = Module['_sqlite3_bind_int64'] = (a0, a1, a2) => (_sqlite3_bind_int64 = Module['_sqlite3_bind_int64'] = wasmExports['sqlite3_bind_int64'])(a0, a1, a2); -var _sqlite3_bind_int = Module['_sqlite3_bind_int'] = (a0, a1, a2) => (_sqlite3_bind_int = Module['_sqlite3_bind_int'] = wasmExports['sqlite3_bind_int'])(a0, a1, a2); -var _sqlite3_bind_text = Module['_sqlite3_bind_text'] = (a0, a1, a2, a3, a4) => (_sqlite3_bind_text = Module['_sqlite3_bind_text'] = wasmExports['sqlite3_bind_text'])(a0, a1, a2, a3, a4); -var _sqlite3_libversion_number = Module['_sqlite3_libversion_number'] = () => (_sqlite3_libversion_number = Module['_sqlite3_libversion_number'] = wasmExports['sqlite3_libversion_number'])(); -var _sqlite3_bind_double = Module['_sqlite3_bind_double'] = (a0, a1, a2) => (_sqlite3_bind_double = Module['_sqlite3_bind_double'] = wasmExports['sqlite3_bind_double'])(a0, a1, a2); -var _sqlite3_malloc = Module['_sqlite3_malloc'] = (a0) => (_sqlite3_malloc = Module['_sqlite3_malloc'] = wasmExports['sqlite3_malloc'])(a0); -var _sqlite3_libversion = Module['_sqlite3_libversion'] = () => (_sqlite3_libversion = Module['_sqlite3_libversion'] = wasmExports['sqlite3_libversion'])(); -var _sqlite3_sourceid = Module['_sqlite3_sourceid'] = () => (_sqlite3_sourceid = Module['_sqlite3_sourceid'] = wasmExports['sqlite3_sourceid'])(); -var _malloc = Module['_malloc'] = (a0) => (_malloc = Module['_malloc'] = wasmExports['malloc'])(a0); -var _sqlite3_initialize = Module['_sqlite3_initialize'] = () => (_sqlite3_initialize = Module['_sqlite3_initialize'] = wasmExports['sqlite3_initialize'])(); -var _sqlite3_open_v2 = Module['_sqlite3_open_v2'] = (a0, a1, a2, a3) => (_sqlite3_open_v2 = Module['_sqlite3_open_v2'] = wasmExports['sqlite3_open_v2'])(a0, a1, a2, a3); -var _sqlite3_file_control = Module['_sqlite3_file_control'] = (a0, a1, a2, a3) => (_sqlite3_file_control = Module['_sqlite3_file_control'] = wasmExports['sqlite3_file_control'])(a0, a1, a2, a3); -var _sqlite3_create_function = Module['_sqlite3_create_function'] = (a0, a1, a2, a3, a4, a5, a6, a7) => (_sqlite3_create_function = Module['_sqlite3_create_function'] = wasmExports['sqlite3_create_function'])(a0, a1, a2, a3, a4, a5, a6, a7); -var _sqlite3_db_status = Module['_sqlite3_db_status'] = (a0, a1, a2, a3, a4) => (_sqlite3_db_status = Module['_sqlite3_db_status'] = wasmExports['sqlite3_db_status'])(a0, a1, a2, a3, a4); -var _sqlite3_status = Module['_sqlite3_status'] = (a0, a1, a2, a3) => (_sqlite3_status = Module['_sqlite3_status'] = wasmExports['sqlite3_status'])(a0, a1, a2, a3); -var _free = Module['_free'] = (a0) => (_free = Module['_free'] = wasmExports['free'])(a0); -var _sqlite3_stricmp = Module['_sqlite3_stricmp'] = (a0, a1) => (_sqlite3_stricmp = Module['_sqlite3_stricmp'] = wasmExports['sqlite3_stricmp'])(a0, a1); -var _sqlite3_result_int64 = Module['_sqlite3_result_int64'] = (a0, a1) => (_sqlite3_result_int64 = Module['_sqlite3_result_int64'] = wasmExports['sqlite3_result_int64'])(a0, a1); -var _wasm_main = Module['_wasm_main'] = (a0, a1) => (_wasm_main = Module['_wasm_main'] = wasmExports['wasm_main'])(a0, a1); -var _sqlite3_status64 = Module['_sqlite3_status64'] = (a0, a1, a2, a3) => (_sqlite3_status64 = Module['_sqlite3_status64'] = wasmExports['sqlite3_status64'])(a0, a1, a2, a3); -var _sqlite3_msize = Module['_sqlite3_msize'] = (a0) => (_sqlite3_msize = Module['_sqlite3_msize'] = wasmExports['sqlite3_msize'])(a0); -var _sqlite3_vfs_register = Module['_sqlite3_vfs_register'] = (a0, a1) => (_sqlite3_vfs_register = Module['_sqlite3_vfs_register'] = wasmExports['sqlite3_vfs_register'])(a0, a1); -var _sqlite3_vfs_unregister = Module['_sqlite3_vfs_unregister'] = (a0) => (_sqlite3_vfs_unregister = Module['_sqlite3_vfs_unregister'] = wasmExports['sqlite3_vfs_unregister'])(a0); -var _sqlite3_malloc64 = Module['_sqlite3_malloc64'] = (a0) => (_sqlite3_malloc64 = Module['_sqlite3_malloc64'] = wasmExports['sqlite3_malloc64'])(a0); -var _sqlite3_realloc = Module['_sqlite3_realloc'] = (a0, a1) => (_sqlite3_realloc = Module['_sqlite3_realloc'] = wasmExports['sqlite3_realloc'])(a0, a1); -var _sqlite3_realloc64 = Module['_sqlite3_realloc64'] = (a0, a1) => (_sqlite3_realloc64 = Module['_sqlite3_realloc64'] = wasmExports['sqlite3_realloc64'])(a0, a1); -var _sqlite3_value_text = Module['_sqlite3_value_text'] = (a0) => (_sqlite3_value_text = Module['_sqlite3_value_text'] = wasmExports['sqlite3_value_text'])(a0); -var _sqlite3_randomness = Module['_sqlite3_randomness'] = (a0, a1) => (_sqlite3_randomness = Module['_sqlite3_randomness'] = wasmExports['sqlite3_randomness'])(a0, a1); -var _sqlite3_strnicmp = Module['_sqlite3_strnicmp'] = (a0, a1, a2) => (_sqlite3_strnicmp = Module['_sqlite3_strnicmp'] = wasmExports['sqlite3_strnicmp'])(a0, a1, a2); -var _sqlite3_uri_parameter = Module['_sqlite3_uri_parameter'] = (a0, a1) => (_sqlite3_uri_parameter = Module['_sqlite3_uri_parameter'] = wasmExports['sqlite3_uri_parameter'])(a0, a1); -var _sqlite3_uri_boolean = Module['_sqlite3_uri_boolean'] = (a0, a1, a2) => (_sqlite3_uri_boolean = Module['_sqlite3_uri_boolean'] = wasmExports['sqlite3_uri_boolean'])(a0, a1, a2); -var _sqlite3_serialize = Module['_sqlite3_serialize'] = (a0, a1, a2, a3) => (_sqlite3_serialize = Module['_sqlite3_serialize'] = wasmExports['sqlite3_serialize'])(a0, a1, a2, a3); -var _sqlite3_column_int64 = Module['_sqlite3_column_int64'] = (a0, a1) => (_sqlite3_column_int64 = Module['_sqlite3_column_int64'] = wasmExports['sqlite3_column_int64'])(a0, a1); -var _sqlite3_column_int = Module['_sqlite3_column_int'] = (a0, a1) => (_sqlite3_column_int = Module['_sqlite3_column_int'] = wasmExports['sqlite3_column_int'])(a0, a1); -var _sqlite3_column_name = Module['_sqlite3_column_name'] = (a0, a1) => (_sqlite3_column_name = Module['_sqlite3_column_name'] = wasmExports['sqlite3_column_name'])(a0, a1); -var _sqlite3_deserialize = Module['_sqlite3_deserialize'] = (a0, a1, a2, a3, a4, a5) => (_sqlite3_deserialize = Module['_sqlite3_deserialize'] = wasmExports['sqlite3_deserialize'])(a0, a1, a2, a3, a4, a5); -var _sqlite3_clear_bindings = Module['_sqlite3_clear_bindings'] = (a0) => (_sqlite3_clear_bindings = Module['_sqlite3_clear_bindings'] = wasmExports['sqlite3_clear_bindings'])(a0); -var _sqlite3_value_blob = Module['_sqlite3_value_blob'] = (a0) => (_sqlite3_value_blob = Module['_sqlite3_value_blob'] = wasmExports['sqlite3_value_blob'])(a0); -var _sqlite3_value_bytes = Module['_sqlite3_value_bytes'] = (a0) => (_sqlite3_value_bytes = Module['_sqlite3_value_bytes'] = wasmExports['sqlite3_value_bytes'])(a0); -var _sqlite3_value_double = Module['_sqlite3_value_double'] = (a0) => (_sqlite3_value_double = Module['_sqlite3_value_double'] = wasmExports['sqlite3_value_double'])(a0); -var _sqlite3_value_int = Module['_sqlite3_value_int'] = (a0) => (_sqlite3_value_int = Module['_sqlite3_value_int'] = wasmExports['sqlite3_value_int'])(a0); -var _sqlite3_value_int64 = Module['_sqlite3_value_int64'] = (a0) => (_sqlite3_value_int64 = Module['_sqlite3_value_int64'] = wasmExports['sqlite3_value_int64'])(a0); -var _sqlite3_value_subtype = Module['_sqlite3_value_subtype'] = (a0) => (_sqlite3_value_subtype = Module['_sqlite3_value_subtype'] = wasmExports['sqlite3_value_subtype'])(a0); -var _sqlite3_value_pointer = Module['_sqlite3_value_pointer'] = (a0, a1) => (_sqlite3_value_pointer = Module['_sqlite3_value_pointer'] = wasmExports['sqlite3_value_pointer'])(a0, a1); -var _sqlite3_value_type = Module['_sqlite3_value_type'] = (a0) => (_sqlite3_value_type = Module['_sqlite3_value_type'] = wasmExports['sqlite3_value_type'])(a0); -var _sqlite3_value_nochange = Module['_sqlite3_value_nochange'] = (a0) => (_sqlite3_value_nochange = Module['_sqlite3_value_nochange'] = wasmExports['sqlite3_value_nochange'])(a0); -var _sqlite3_value_frombind = Module['_sqlite3_value_frombind'] = (a0) => (_sqlite3_value_frombind = Module['_sqlite3_value_frombind'] = wasmExports['sqlite3_value_frombind'])(a0); -var _sqlite3_value_dup = Module['_sqlite3_value_dup'] = (a0) => (_sqlite3_value_dup = Module['_sqlite3_value_dup'] = wasmExports['sqlite3_value_dup'])(a0); -var _sqlite3_value_free = Module['_sqlite3_value_free'] = (a0) => (_sqlite3_value_free = Module['_sqlite3_value_free'] = wasmExports['sqlite3_value_free'])(a0); -var _sqlite3_result_blob = Module['_sqlite3_result_blob'] = (a0, a1, a2, a3) => (_sqlite3_result_blob = Module['_sqlite3_result_blob'] = wasmExports['sqlite3_result_blob'])(a0, a1, a2, a3); -var _sqlite3_result_error_toobig = Module['_sqlite3_result_error_toobig'] = (a0) => (_sqlite3_result_error_toobig = Module['_sqlite3_result_error_toobig'] = wasmExports['sqlite3_result_error_toobig'])(a0); -var _sqlite3_result_error_nomem = Module['_sqlite3_result_error_nomem'] = (a0) => (_sqlite3_result_error_nomem = Module['_sqlite3_result_error_nomem'] = wasmExports['sqlite3_result_error_nomem'])(a0); -var _sqlite3_result_double = Module['_sqlite3_result_double'] = (a0, a1) => (_sqlite3_result_double = Module['_sqlite3_result_double'] = wasmExports['sqlite3_result_double'])(a0, a1); -var _sqlite3_result_error = Module['_sqlite3_result_error'] = (a0, a1, a2) => (_sqlite3_result_error = Module['_sqlite3_result_error'] = wasmExports['sqlite3_result_error'])(a0, a1, a2); -var _sqlite3_result_int = Module['_sqlite3_result_int'] = (a0, a1) => (_sqlite3_result_int = Module['_sqlite3_result_int'] = wasmExports['sqlite3_result_int'])(a0, a1); -var _sqlite3_result_null = Module['_sqlite3_result_null'] = (a0) => (_sqlite3_result_null = Module['_sqlite3_result_null'] = wasmExports['sqlite3_result_null'])(a0); -var _sqlite3_result_pointer = Module['_sqlite3_result_pointer'] = (a0, a1, a2, a3) => (_sqlite3_result_pointer = Module['_sqlite3_result_pointer'] = wasmExports['sqlite3_result_pointer'])(a0, a1, a2, a3); -var _sqlite3_result_subtype = Module['_sqlite3_result_subtype'] = (a0, a1) => (_sqlite3_result_subtype = Module['_sqlite3_result_subtype'] = wasmExports['sqlite3_result_subtype'])(a0, a1); -var _sqlite3_result_text = Module['_sqlite3_result_text'] = (a0, a1, a2, a3) => (_sqlite3_result_text = Module['_sqlite3_result_text'] = wasmExports['sqlite3_result_text'])(a0, a1, a2, a3); -var _sqlite3_result_zeroblob = Module['_sqlite3_result_zeroblob'] = (a0, a1) => (_sqlite3_result_zeroblob = Module['_sqlite3_result_zeroblob'] = wasmExports['sqlite3_result_zeroblob'])(a0, a1); -var _sqlite3_result_zeroblob64 = Module['_sqlite3_result_zeroblob64'] = (a0, a1) => (_sqlite3_result_zeroblob64 = Module['_sqlite3_result_zeroblob64'] = wasmExports['sqlite3_result_zeroblob64'])(a0, a1); -var _sqlite3_result_error_code = Module['_sqlite3_result_error_code'] = (a0, a1) => (_sqlite3_result_error_code = Module['_sqlite3_result_error_code'] = wasmExports['sqlite3_result_error_code'])(a0, a1); -var _sqlite3_user_data = Module['_sqlite3_user_data'] = (a0) => (_sqlite3_user_data = Module['_sqlite3_user_data'] = wasmExports['sqlite3_user_data'])(a0); -var _sqlite3_context_db_handle = Module['_sqlite3_context_db_handle'] = (a0) => (_sqlite3_context_db_handle = Module['_sqlite3_context_db_handle'] = wasmExports['sqlite3_context_db_handle'])(a0); -var _sqlite3_vtab_nochange = Module['_sqlite3_vtab_nochange'] = (a0) => (_sqlite3_vtab_nochange = Module['_sqlite3_vtab_nochange'] = wasmExports['sqlite3_vtab_nochange'])(a0); -var _sqlite3_vtab_in_first = Module['_sqlite3_vtab_in_first'] = (a0, a1) => (_sqlite3_vtab_in_first = Module['_sqlite3_vtab_in_first'] = wasmExports['sqlite3_vtab_in_first'])(a0, a1); -var _sqlite3_vtab_in_next = Module['_sqlite3_vtab_in_next'] = (a0, a1) => (_sqlite3_vtab_in_next = Module['_sqlite3_vtab_in_next'] = wasmExports['sqlite3_vtab_in_next'])(a0, a1); -var _sqlite3_aggregate_context = Module['_sqlite3_aggregate_context'] = (a0, a1) => (_sqlite3_aggregate_context = Module['_sqlite3_aggregate_context'] = wasmExports['sqlite3_aggregate_context'])(a0, a1); -var _sqlite3_get_auxdata = Module['_sqlite3_get_auxdata'] = (a0, a1) => (_sqlite3_get_auxdata = Module['_sqlite3_get_auxdata'] = wasmExports['sqlite3_get_auxdata'])(a0, a1); -var _sqlite3_set_auxdata = Module['_sqlite3_set_auxdata'] = (a0, a1, a2, a3) => (_sqlite3_set_auxdata = Module['_sqlite3_set_auxdata'] = wasmExports['sqlite3_set_auxdata'])(a0, a1, a2, a3); -var _sqlite3_data_count = Module['_sqlite3_data_count'] = (a0) => (_sqlite3_data_count = Module['_sqlite3_data_count'] = wasmExports['sqlite3_data_count'])(a0); -var _sqlite3_column_double = Module['_sqlite3_column_double'] = (a0, a1) => (_sqlite3_column_double = Module['_sqlite3_column_double'] = wasmExports['sqlite3_column_double'])(a0, a1); -var _sqlite3_column_value = Module['_sqlite3_column_value'] = (a0, a1) => (_sqlite3_column_value = Module['_sqlite3_column_value'] = wasmExports['sqlite3_column_value'])(a0, a1); -var _sqlite3_column_decltype = Module['_sqlite3_column_decltype'] = (a0, a1) => (_sqlite3_column_decltype = Module['_sqlite3_column_decltype'] = wasmExports['sqlite3_column_decltype'])(a0, a1); -var _sqlite3_bind_blob = Module['_sqlite3_bind_blob'] = (a0, a1, a2, a3, a4) => (_sqlite3_bind_blob = Module['_sqlite3_bind_blob'] = wasmExports['sqlite3_bind_blob'])(a0, a1, a2, a3, a4); -var _sqlite3_bind_null = Module['_sqlite3_bind_null'] = (a0, a1) => (_sqlite3_bind_null = Module['_sqlite3_bind_null'] = wasmExports['sqlite3_bind_null'])(a0, a1); -var _sqlite3_bind_pointer = Module['_sqlite3_bind_pointer'] = (a0, a1, a2, a3, a4) => (_sqlite3_bind_pointer = Module['_sqlite3_bind_pointer'] = wasmExports['sqlite3_bind_pointer'])(a0, a1, a2, a3, a4); -var _sqlite3_bind_parameter_count = Module['_sqlite3_bind_parameter_count'] = (a0) => (_sqlite3_bind_parameter_count = Module['_sqlite3_bind_parameter_count'] = wasmExports['sqlite3_bind_parameter_count'])(a0); -var _sqlite3_bind_parameter_name = Module['_sqlite3_bind_parameter_name'] = (a0, a1) => (_sqlite3_bind_parameter_name = Module['_sqlite3_bind_parameter_name'] = wasmExports['sqlite3_bind_parameter_name'])(a0, a1); -var _sqlite3_bind_parameter_index = Module['_sqlite3_bind_parameter_index'] = (a0, a1) => (_sqlite3_bind_parameter_index = Module['_sqlite3_bind_parameter_index'] = wasmExports['sqlite3_bind_parameter_index'])(a0, a1); -var _sqlite3_db_handle = Module['_sqlite3_db_handle'] = (a0) => (_sqlite3_db_handle = Module['_sqlite3_db_handle'] = wasmExports['sqlite3_db_handle'])(a0); -var _sqlite3_stmt_readonly = Module['_sqlite3_stmt_readonly'] = (a0) => (_sqlite3_stmt_readonly = Module['_sqlite3_stmt_readonly'] = wasmExports['sqlite3_stmt_readonly'])(a0); -var _sqlite3_stmt_isexplain = Module['_sqlite3_stmt_isexplain'] = (a0) => (_sqlite3_stmt_isexplain = Module['_sqlite3_stmt_isexplain'] = wasmExports['sqlite3_stmt_isexplain'])(a0); -var _sqlite3_stmt_explain = Module['_sqlite3_stmt_explain'] = (a0, a1) => (_sqlite3_stmt_explain = Module['_sqlite3_stmt_explain'] = wasmExports['sqlite3_stmt_explain'])(a0, a1); -var _sqlite3_stmt_busy = Module['_sqlite3_stmt_busy'] = (a0) => (_sqlite3_stmt_busy = Module['_sqlite3_stmt_busy'] = wasmExports['sqlite3_stmt_busy'])(a0); -var _sqlite3_stmt_status = Module['_sqlite3_stmt_status'] = (a0, a1, a2) => (_sqlite3_stmt_status = Module['_sqlite3_stmt_status'] = wasmExports['sqlite3_stmt_status'])(a0, a1, a2); -var _sqlite3_value_numeric_type = Module['_sqlite3_value_numeric_type'] = (a0) => (_sqlite3_value_numeric_type = Module['_sqlite3_value_numeric_type'] = wasmExports['sqlite3_value_numeric_type'])(a0); -var _sqlite3_strlike = Module['_sqlite3_strlike'] = (a0, a1, a2) => (_sqlite3_strlike = Module['_sqlite3_strlike'] = wasmExports['sqlite3_strlike'])(a0, a1, a2); -var _sqlite3_auto_extension = Module['_sqlite3_auto_extension'] = (a0) => (_sqlite3_auto_extension = Module['_sqlite3_auto_extension'] = wasmExports['sqlite3_auto_extension'])(a0); -var _sqlite3_cancel_auto_extension = Module['_sqlite3_cancel_auto_extension'] = (a0) => (_sqlite3_cancel_auto_extension = Module['_sqlite3_cancel_auto_extension'] = wasmExports['sqlite3_cancel_auto_extension'])(a0); -var _sqlite3_reset_auto_extension = Module['_sqlite3_reset_auto_extension'] = () => (_sqlite3_reset_auto_extension = Module['_sqlite3_reset_auto_extension'] = wasmExports['sqlite3_reset_auto_extension'])(); -var _sqlite3_prepare_v3 = Module['_sqlite3_prepare_v3'] = (a0, a1, a2, a3, a4, a5) => (_sqlite3_prepare_v3 = Module['_sqlite3_prepare_v3'] = wasmExports['sqlite3_prepare_v3'])(a0, a1, a2, a3, a4, a5); -var _sqlite3_vtab_on_conflict = Module['_sqlite3_vtab_on_conflict'] = (a0) => (_sqlite3_vtab_on_conflict = Module['_sqlite3_vtab_on_conflict'] = wasmExports['sqlite3_vtab_on_conflict'])(a0); -var _sqlite3_vtab_collation = Module['_sqlite3_vtab_collation'] = (a0, a1) => (_sqlite3_vtab_collation = Module['_sqlite3_vtab_collation'] = wasmExports['sqlite3_vtab_collation'])(a0, a1); -var _sqlite3_vtab_in = Module['_sqlite3_vtab_in'] = (a0, a1, a2) => (_sqlite3_vtab_in = Module['_sqlite3_vtab_in'] = wasmExports['sqlite3_vtab_in'])(a0, a1, a2); -var _sqlite3_vtab_rhs_value = Module['_sqlite3_vtab_rhs_value'] = (a0, a1, a2) => (_sqlite3_vtab_rhs_value = Module['_sqlite3_vtab_rhs_value'] = wasmExports['sqlite3_vtab_rhs_value'])(a0, a1, a2); -var _sqlite3_vtab_distinct = Module['_sqlite3_vtab_distinct'] = (a0) => (_sqlite3_vtab_distinct = Module['_sqlite3_vtab_distinct'] = wasmExports['sqlite3_vtab_distinct'])(a0); -var _sqlite3_keyword_name = Module['_sqlite3_keyword_name'] = (a0, a1, a2) => (_sqlite3_keyword_name = Module['_sqlite3_keyword_name'] = wasmExports['sqlite3_keyword_name'])(a0, a1, a2); -var _sqlite3_keyword_count = Module['_sqlite3_keyword_count'] = () => (_sqlite3_keyword_count = Module['_sqlite3_keyword_count'] = wasmExports['sqlite3_keyword_count'])(); -var _sqlite3_keyword_check = Module['_sqlite3_keyword_check'] = (a0, a1) => (_sqlite3_keyword_check = Module['_sqlite3_keyword_check'] = wasmExports['sqlite3_keyword_check'])(a0, a1); -var _sqlite3_complete = Module['_sqlite3_complete'] = (a0) => (_sqlite3_complete = Module['_sqlite3_complete'] = wasmExports['sqlite3_complete'])(a0); -var _sqlite3_shutdown = Module['_sqlite3_shutdown'] = () => (_sqlite3_shutdown = Module['_sqlite3_shutdown'] = wasmExports['sqlite3_shutdown'])(); -var _sqlite3_last_insert_rowid = Module['_sqlite3_last_insert_rowid'] = (a0) => (_sqlite3_last_insert_rowid = Module['_sqlite3_last_insert_rowid'] = wasmExports['sqlite3_last_insert_rowid'])(a0); -var _sqlite3_set_last_insert_rowid = Module['_sqlite3_set_last_insert_rowid'] = (a0, a1) => (_sqlite3_set_last_insert_rowid = Module['_sqlite3_set_last_insert_rowid'] = wasmExports['sqlite3_set_last_insert_rowid'])(a0, a1); -var _sqlite3_changes64 = Module['_sqlite3_changes64'] = (a0) => (_sqlite3_changes64 = Module['_sqlite3_changes64'] = wasmExports['sqlite3_changes64'])(a0); -var _sqlite3_changes = Module['_sqlite3_changes'] = (a0) => (_sqlite3_changes = Module['_sqlite3_changes'] = wasmExports['sqlite3_changes'])(a0); -var _sqlite3_total_changes64 = Module['_sqlite3_total_changes64'] = (a0) => (_sqlite3_total_changes64 = Module['_sqlite3_total_changes64'] = wasmExports['sqlite3_total_changes64'])(a0); -var _sqlite3_total_changes = Module['_sqlite3_total_changes'] = (a0) => (_sqlite3_total_changes = Module['_sqlite3_total_changes'] = wasmExports['sqlite3_total_changes'])(a0); -var _sqlite3_txn_state = Module['_sqlite3_txn_state'] = (a0, a1) => (_sqlite3_txn_state = Module['_sqlite3_txn_state'] = wasmExports['sqlite3_txn_state'])(a0, a1); -var _sqlite3_close_v2 = Module['_sqlite3_close_v2'] = (a0) => (_sqlite3_close_v2 = Module['_sqlite3_close_v2'] = wasmExports['sqlite3_close_v2'])(a0); -var _sqlite3_busy_handler = Module['_sqlite3_busy_handler'] = (a0, a1, a2) => (_sqlite3_busy_handler = Module['_sqlite3_busy_handler'] = wasmExports['sqlite3_busy_handler'])(a0, a1, a2); -var _sqlite3_busy_timeout = Module['_sqlite3_busy_timeout'] = (a0, a1) => (_sqlite3_busy_timeout = Module['_sqlite3_busy_timeout'] = wasmExports['sqlite3_busy_timeout'])(a0, a1); -var _sqlite3_interrupt = Module['_sqlite3_interrupt'] = (a0) => (_sqlite3_interrupt = Module['_sqlite3_interrupt'] = wasmExports['sqlite3_interrupt'])(a0); -var _sqlite3_is_interrupted = Module['_sqlite3_is_interrupted'] = (a0) => (_sqlite3_is_interrupted = Module['_sqlite3_is_interrupted'] = wasmExports['sqlite3_is_interrupted'])(a0); -var _sqlite3_create_function_v2 = Module['_sqlite3_create_function_v2'] = (a0, a1, a2, a3, a4, a5, a6, a7, a8) => (_sqlite3_create_function_v2 = Module['_sqlite3_create_function_v2'] = wasmExports['sqlite3_create_function_v2'])(a0, a1, a2, a3, a4, a5, a6, a7, a8); -var _sqlite3_overload_function = Module['_sqlite3_overload_function'] = (a0, a1, a2) => (_sqlite3_overload_function = Module['_sqlite3_overload_function'] = wasmExports['sqlite3_overload_function'])(a0, a1, a2); -var _sqlite3_trace_v2 = Module['_sqlite3_trace_v2'] = (a0, a1, a2, a3) => (_sqlite3_trace_v2 = Module['_sqlite3_trace_v2'] = wasmExports['sqlite3_trace_v2'])(a0, a1, a2, a3); -var _sqlite3_commit_hook = Module['_sqlite3_commit_hook'] = (a0, a1, a2) => (_sqlite3_commit_hook = Module['_sqlite3_commit_hook'] = wasmExports['sqlite3_commit_hook'])(a0, a1, a2); -var _sqlite3_update_hook = Module['_sqlite3_update_hook'] = (a0, a1, a2) => (_sqlite3_update_hook = Module['_sqlite3_update_hook'] = wasmExports['sqlite3_update_hook'])(a0, a1, a2); -var _sqlite3_rollback_hook = Module['_sqlite3_rollback_hook'] = (a0, a1, a2) => (_sqlite3_rollback_hook = Module['_sqlite3_rollback_hook'] = wasmExports['sqlite3_rollback_hook'])(a0, a1, a2); -var _sqlite3_error_offset = Module['_sqlite3_error_offset'] = (a0) => (_sqlite3_error_offset = Module['_sqlite3_error_offset'] = wasmExports['sqlite3_error_offset'])(a0); -var _sqlite3_errcode = Module['_sqlite3_errcode'] = (a0) => (_sqlite3_errcode = Module['_sqlite3_errcode'] = wasmExports['sqlite3_errcode'])(a0); -var _sqlite3_extended_errcode = Module['_sqlite3_extended_errcode'] = (a0) => (_sqlite3_extended_errcode = Module['_sqlite3_extended_errcode'] = wasmExports['sqlite3_extended_errcode'])(a0); -var _sqlite3_errstr = Module['_sqlite3_errstr'] = (a0) => (_sqlite3_errstr = Module['_sqlite3_errstr'] = wasmExports['sqlite3_errstr'])(a0); -var _sqlite3_limit = Module['_sqlite3_limit'] = (a0, a1, a2) => (_sqlite3_limit = Module['_sqlite3_limit'] = wasmExports['sqlite3_limit'])(a0, a1, a2); -var _sqlite3_open = Module['_sqlite3_open'] = (a0, a1) => (_sqlite3_open = Module['_sqlite3_open'] = wasmExports['sqlite3_open'])(a0, a1); -var _sqlite3_create_collation = Module['_sqlite3_create_collation'] = (a0, a1, a2, a3, a4) => (_sqlite3_create_collation = Module['_sqlite3_create_collation'] = wasmExports['sqlite3_create_collation'])(a0, a1, a2, a3, a4); -var _sqlite3_create_collation_v2 = Module['_sqlite3_create_collation_v2'] = (a0, a1, a2, a3, a4, a5) => (_sqlite3_create_collation_v2 = Module['_sqlite3_create_collation_v2'] = wasmExports['sqlite3_create_collation_v2'])(a0, a1, a2, a3, a4, a5); -var _sqlite3_collation_needed = Module['_sqlite3_collation_needed'] = (a0, a1, a2) => (_sqlite3_collation_needed = Module['_sqlite3_collation_needed'] = wasmExports['sqlite3_collation_needed'])(a0, a1, a2); -var _sqlite3_get_autocommit = Module['_sqlite3_get_autocommit'] = (a0) => (_sqlite3_get_autocommit = Module['_sqlite3_get_autocommit'] = wasmExports['sqlite3_get_autocommit'])(a0); -var _sqlite3_table_column_metadata = Module['_sqlite3_table_column_metadata'] = (a0, a1, a2, a3, a4, a5, a6, a7, a8) => (_sqlite3_table_column_metadata = Module['_sqlite3_table_column_metadata'] = wasmExports['sqlite3_table_column_metadata'])(a0, a1, a2, a3, a4, a5, a6, a7, a8); -var _sqlite3_extended_result_codes = Module['_sqlite3_extended_result_codes'] = (a0, a1) => (_sqlite3_extended_result_codes = Module['_sqlite3_extended_result_codes'] = wasmExports['sqlite3_extended_result_codes'])(a0, a1); -var _sqlite3_uri_key = Module['_sqlite3_uri_key'] = (a0, a1) => (_sqlite3_uri_key = Module['_sqlite3_uri_key'] = wasmExports['sqlite3_uri_key'])(a0, a1); -var _sqlite3_uri_int64 = Module['_sqlite3_uri_int64'] = (a0, a1, a2) => (_sqlite3_uri_int64 = Module['_sqlite3_uri_int64'] = wasmExports['sqlite3_uri_int64'])(a0, a1, a2); -var _sqlite3_db_name = Module['_sqlite3_db_name'] = (a0, a1) => (_sqlite3_db_name = Module['_sqlite3_db_name'] = wasmExports['sqlite3_db_name'])(a0, a1); -var _sqlite3_db_filename = Module['_sqlite3_db_filename'] = (a0, a1) => (_sqlite3_db_filename = Module['_sqlite3_db_filename'] = wasmExports['sqlite3_db_filename'])(a0, a1); -var _sqlite3_db_readonly = Module['_sqlite3_db_readonly'] = (a0, a1) => (_sqlite3_db_readonly = Module['_sqlite3_db_readonly'] = wasmExports['sqlite3_db_readonly'])(a0, a1); -var _sqlite3_compileoption_used = Module['_sqlite3_compileoption_used'] = (a0) => (_sqlite3_compileoption_used = Module['_sqlite3_compileoption_used'] = wasmExports['sqlite3_compileoption_used'])(a0); -var _sqlite3_compileoption_get = Module['_sqlite3_compileoption_get'] = (a0) => (_sqlite3_compileoption_get = Module['_sqlite3_compileoption_get'] = wasmExports['sqlite3_compileoption_get'])(a0); -var _sqlite3__wasm_pstack_ptr = Module['_sqlite3__wasm_pstack_ptr'] = () => (_sqlite3__wasm_pstack_ptr = Module['_sqlite3__wasm_pstack_ptr'] = wasmExports['sqlite3__wasm_pstack_ptr'])(); -var _sqlite3__wasm_pstack_restore = Module['_sqlite3__wasm_pstack_restore'] = (a0) => (_sqlite3__wasm_pstack_restore = Module['_sqlite3__wasm_pstack_restore'] = wasmExports['sqlite3__wasm_pstack_restore'])(a0); -var _sqlite3__wasm_pstack_alloc = Module['_sqlite3__wasm_pstack_alloc'] = (a0) => (_sqlite3__wasm_pstack_alloc = Module['_sqlite3__wasm_pstack_alloc'] = wasmExports['sqlite3__wasm_pstack_alloc'])(a0); -var _sqlite3__wasm_pstack_remaining = Module['_sqlite3__wasm_pstack_remaining'] = () => (_sqlite3__wasm_pstack_remaining = Module['_sqlite3__wasm_pstack_remaining'] = wasmExports['sqlite3__wasm_pstack_remaining'])(); -var _sqlite3__wasm_pstack_quota = Module['_sqlite3__wasm_pstack_quota'] = () => (_sqlite3__wasm_pstack_quota = Module['_sqlite3__wasm_pstack_quota'] = wasmExports['sqlite3__wasm_pstack_quota'])(); -var _sqlite3__wasm_db_error = Module['_sqlite3__wasm_db_error'] = (a0, a1, a2) => (_sqlite3__wasm_db_error = Module['_sqlite3__wasm_db_error'] = wasmExports['sqlite3__wasm_db_error'])(a0, a1, a2); -var _sqlite3__wasm_test_struct = Module['_sqlite3__wasm_test_struct'] = (a0) => (_sqlite3__wasm_test_struct = Module['_sqlite3__wasm_test_struct'] = wasmExports['sqlite3__wasm_test_struct'])(a0); -var _sqlite3__wasm_enum_json = Module['_sqlite3__wasm_enum_json'] = () => (_sqlite3__wasm_enum_json = Module['_sqlite3__wasm_enum_json'] = wasmExports['sqlite3__wasm_enum_json'])(); -var _sqlite3__wasm_vfs_unlink = Module['_sqlite3__wasm_vfs_unlink'] = (a0, a1) => (_sqlite3__wasm_vfs_unlink = Module['_sqlite3__wasm_vfs_unlink'] = wasmExports['sqlite3__wasm_vfs_unlink'])(a0, a1); -var _sqlite3__wasm_db_vfs = Module['_sqlite3__wasm_db_vfs'] = (a0, a1) => (_sqlite3__wasm_db_vfs = Module['_sqlite3__wasm_db_vfs'] = wasmExports['sqlite3__wasm_db_vfs'])(a0, a1); -var _sqlite3__wasm_db_reset = Module['_sqlite3__wasm_db_reset'] = (a0) => (_sqlite3__wasm_db_reset = Module['_sqlite3__wasm_db_reset'] = wasmExports['sqlite3__wasm_db_reset'])(a0); -var _sqlite3__wasm_db_export_chunked = Module['_sqlite3__wasm_db_export_chunked'] = (a0, a1) => (_sqlite3__wasm_db_export_chunked = Module['_sqlite3__wasm_db_export_chunked'] = wasmExports['sqlite3__wasm_db_export_chunked'])(a0, a1); -var _sqlite3__wasm_db_serialize = Module['_sqlite3__wasm_db_serialize'] = (a0, a1, a2, a3, a4) => (_sqlite3__wasm_db_serialize = Module['_sqlite3__wasm_db_serialize'] = wasmExports['sqlite3__wasm_db_serialize'])(a0, a1, a2, a3, a4); -var _sqlite3__wasm_vfs_create_file = Module['_sqlite3__wasm_vfs_create_file'] = (a0, a1, a2, a3) => (_sqlite3__wasm_vfs_create_file = Module['_sqlite3__wasm_vfs_create_file'] = wasmExports['sqlite3__wasm_vfs_create_file'])(a0, a1, a2, a3); -var _sqlite3__wasm_posix_create_file = Module['_sqlite3__wasm_posix_create_file'] = (a0, a1, a2) => (_sqlite3__wasm_posix_create_file = Module['_sqlite3__wasm_posix_create_file'] = wasmExports['sqlite3__wasm_posix_create_file'])(a0, a1, a2); -var _sqlite3__wasm_kvvfsMakeKeyOnPstack = Module['_sqlite3__wasm_kvvfsMakeKeyOnPstack'] = (a0, a1) => (_sqlite3__wasm_kvvfsMakeKeyOnPstack = Module['_sqlite3__wasm_kvvfsMakeKeyOnPstack'] = wasmExports['sqlite3__wasm_kvvfsMakeKeyOnPstack'])(a0, a1); -var _sqlite3__wasm_kvvfs_methods = Module['_sqlite3__wasm_kvvfs_methods'] = () => (_sqlite3__wasm_kvvfs_methods = Module['_sqlite3__wasm_kvvfs_methods'] = wasmExports['sqlite3__wasm_kvvfs_methods'])(); -var _sqlite3__wasm_vtab_config = Module['_sqlite3__wasm_vtab_config'] = (a0, a1, a2) => (_sqlite3__wasm_vtab_config = Module['_sqlite3__wasm_vtab_config'] = wasmExports['sqlite3__wasm_vtab_config'])(a0, a1, a2); -var _sqlite3__wasm_db_config_ip = Module['_sqlite3__wasm_db_config_ip'] = (a0, a1, a2, a3) => (_sqlite3__wasm_db_config_ip = Module['_sqlite3__wasm_db_config_ip'] = wasmExports['sqlite3__wasm_db_config_ip'])(a0, a1, a2, a3); -var _sqlite3__wasm_db_config_pii = Module['_sqlite3__wasm_db_config_pii'] = (a0, a1, a2, a3, a4) => (_sqlite3__wasm_db_config_pii = Module['_sqlite3__wasm_db_config_pii'] = wasmExports['sqlite3__wasm_db_config_pii'])(a0, a1, a2, a3, a4); -var _sqlite3__wasm_db_config_s = Module['_sqlite3__wasm_db_config_s'] = (a0, a1, a2) => (_sqlite3__wasm_db_config_s = Module['_sqlite3__wasm_db_config_s'] = wasmExports['sqlite3__wasm_db_config_s'])(a0, a1, a2); -var _sqlite3__wasm_config_i = Module['_sqlite3__wasm_config_i'] = (a0, a1) => (_sqlite3__wasm_config_i = Module['_sqlite3__wasm_config_i'] = wasmExports['sqlite3__wasm_config_i'])(a0, a1); -var _sqlite3__wasm_config_ii = Module['_sqlite3__wasm_config_ii'] = (a0, a1, a2) => (_sqlite3__wasm_config_ii = Module['_sqlite3__wasm_config_ii'] = wasmExports['sqlite3__wasm_config_ii'])(a0, a1, a2); -var _sqlite3__wasm_config_j = Module['_sqlite3__wasm_config_j'] = (a0, a1) => (_sqlite3__wasm_config_j = Module['_sqlite3__wasm_config_j'] = wasmExports['sqlite3__wasm_config_j'])(a0, a1); -var _sqlite3__wasm_qfmt_token = Module['_sqlite3__wasm_qfmt_token'] = (a0, a1) => (_sqlite3__wasm_qfmt_token = Module['_sqlite3__wasm_qfmt_token'] = wasmExports['sqlite3__wasm_qfmt_token'])(a0, a1); -var _sqlite3__wasm_init_wasmfs = Module['_sqlite3__wasm_init_wasmfs'] = (a0) => (_sqlite3__wasm_init_wasmfs = Module['_sqlite3__wasm_init_wasmfs'] = wasmExports['sqlite3__wasm_init_wasmfs'])(a0); -var _sqlite3__wasm_test_intptr = Module['_sqlite3__wasm_test_intptr'] = (a0) => (_sqlite3__wasm_test_intptr = Module['_sqlite3__wasm_test_intptr'] = wasmExports['sqlite3__wasm_test_intptr'])(a0); -var _sqlite3__wasm_test_voidptr = Module['_sqlite3__wasm_test_voidptr'] = (a0) => (_sqlite3__wasm_test_voidptr = Module['_sqlite3__wasm_test_voidptr'] = wasmExports['sqlite3__wasm_test_voidptr'])(a0); -var _sqlite3__wasm_test_int64_max = Module['_sqlite3__wasm_test_int64_max'] = () => (_sqlite3__wasm_test_int64_max = Module['_sqlite3__wasm_test_int64_max'] = wasmExports['sqlite3__wasm_test_int64_max'])(); -var _sqlite3__wasm_test_int64_min = Module['_sqlite3__wasm_test_int64_min'] = () => (_sqlite3__wasm_test_int64_min = Module['_sqlite3__wasm_test_int64_min'] = wasmExports['sqlite3__wasm_test_int64_min'])(); -var _sqlite3__wasm_test_int64_times2 = Module['_sqlite3__wasm_test_int64_times2'] = (a0) => (_sqlite3__wasm_test_int64_times2 = Module['_sqlite3__wasm_test_int64_times2'] = wasmExports['sqlite3__wasm_test_int64_times2'])(a0); -var _sqlite3__wasm_test_int64_minmax = Module['_sqlite3__wasm_test_int64_minmax'] = (a0, a1) => (_sqlite3__wasm_test_int64_minmax = Module['_sqlite3__wasm_test_int64_minmax'] = wasmExports['sqlite3__wasm_test_int64_minmax'])(a0, a1); -var _sqlite3__wasm_test_int64ptr = Module['_sqlite3__wasm_test_int64ptr'] = (a0) => (_sqlite3__wasm_test_int64ptr = Module['_sqlite3__wasm_test_int64ptr'] = wasmExports['sqlite3__wasm_test_int64ptr'])(a0); -var _sqlite3__wasm_test_stack_overflow = Module['_sqlite3__wasm_test_stack_overflow'] = (a0) => (_sqlite3__wasm_test_stack_overflow = Module['_sqlite3__wasm_test_stack_overflow'] = wasmExports['sqlite3__wasm_test_stack_overflow'])(a0); -var _sqlite3__wasm_test_str_hello = Module['_sqlite3__wasm_test_str_hello'] = (a0) => (_sqlite3__wasm_test_str_hello = Module['_sqlite3__wasm_test_str_hello'] = wasmExports['sqlite3__wasm_test_str_hello'])(a0); -var _sqlite3__wasm_SQLTester_strglob = Module['_sqlite3__wasm_SQLTester_strglob'] = (a0, a1) => (_sqlite3__wasm_SQLTester_strglob = Module['_sqlite3__wasm_SQLTester_strglob'] = wasmExports['sqlite3__wasm_SQLTester_strglob'])(a0, a1); -var _realloc = Module['_realloc'] = (a0, a1) => (_realloc = Module['_realloc'] = wasmExports['realloc'])(a0, a1); -var _emscripten_builtin_memalign = (a0, a1) => (_emscripten_builtin_memalign = wasmExports['emscripten_builtin_memalign'])(a0, a1); -var __emscripten_stack_restore = (a0) => (__emscripten_stack_restore = wasmExports['_emscripten_stack_restore'])(a0); -var __emscripten_stack_alloc = (a0) => (__emscripten_stack_alloc = wasmExports['_emscripten_stack_alloc'])(a0); -var _emscripten_stack_get_current = () => (_emscripten_stack_get_current = wasmExports['emscripten_stack_get_current'])(); // include: postamble.js // === Auto-generated postamble setup entry stuff === -Module['wasmMemory'] = wasmMemory; - - -var calledRun; - -dependenciesFulfilled = function runCaller() { - // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) - if (!calledRun) run(); - if (!calledRun) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled -}; - -function run() { - - if (runDependencies > 0) { - return; - } +async function run() { preRun(); - // a preRun added a dependency, run will be called later - if (runDependencies > 0) { - return; + if (runDependencies) { + await resolveRunDependencies(); } - function doRun() { - // run may have just been called through dependencies being fulfilled just in this very frame, - // or while the async setStatus time below was happening - if (calledRun) return; - calledRun = true; - Module['calledRun'] = true; - - if (ABORT) return; + if (ABORT) return; - initRuntime(); + initRuntime(); - readyPromiseResolve(Module); - Module['onRuntimeInitialized']?.(); - - postRun(); - } - - if (Module['setStatus']) { - Module['setStatus']('Running...'); - setTimeout(() => { - setTimeout(() => Module['setStatus'](''), 1); - doRun(); - }, 1); - } else - { - doRun(); - } + postRun(); } -if (Module['preInit']) { - if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; - while (Module['preInit'].length > 0) { - Module['preInit'].pop()(); - } -} +var wasmExports; -run(); +// In modularize mode the generated code is within a factory function so we +// can use await here (since it's not top-level-await). +wasmExports = await createWasm(); +await run(); // end include: postamble.js -// include: /usr/local/google/home/dlehmann/JetStream/sqlite3/sqlite-src-3480000/ext/wasm/bld/post-js.speedtest1-vanilla.js +// include: ./bld/post-js.speedtest1-vanilla.js /* BEGIN FILE: api/post-js-header.js */ /** post-js-header.js is to be prepended to other code to create @@ -4429,8 +4637,7 @@ run(); installs will be run after the WASM module is loaded, at which point the sqlite3 JS API bits will get set up. */ -if(!Module.postRun) Module.postRun = []; -Module.postRun.push(function(Module/*the Emscripten-style module object*/){ +Module.runSQLite3PostLoadInit = function(Module/*the Emscripten-style module object*/){ 'use strict'; /* This function will contain at least the following: @@ -4481,9 +4688,9 @@ Module.postRun.push(function(Module/*the Emscripten-style module object*/){ ** ** SQLITE_VERSION "3.48.0" ** SQLITE_VERSION_NUMBER 3048000 -** SQLITE_SOURCE_ID "2025-01-14 11:05:00 d2fe6b05f38d9d7cd78c5d252e99ac59f1aea071d669830c1ffe4e8966e84010" +** SQLITE_SOURCE_ID "2025-01-14 11:05:00 d2fe6b05f38d9d7cd78c5d252e99ac59f1aea071d669830c1ffe4e8966e8alt1" ** -** Using the Emscripten SDK version 3.1.73. +** Using the Emscripten SDK version 6.0.13. */ /* END FILE: ./bld/sqlite3-license-version.js */ /* BEGIN FILE: api/sqlite3-api-prologue.js */ @@ -11579,7 +11786,7 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){ /* END FILE: api/sqlite3-api-glue.c-pp.js */ /* BEGIN FILE: ./bld/sqlite3-api-build-version.js */ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){ - sqlite3.version = {"libVersion": "3.48.0", "libVersionNumber": 3048000, "sourceId": "2025-01-14 11:05:00 d2fe6b05f38d9d7cd78c5d252e99ac59f1aea071d669830c1ffe4e8966e84010","downloadVersion": 3480000}; + sqlite3.version = {"libVersion": "3.48.0", "libVersionNumber": 3048000, "sourceId": "2025-01-14 11:05:00 d2fe6b05f38d9d7cd78c5d252e99ac59f1aea071d669830c1ffe4e8966e8alt1","downloadVersion": 3480000}; }); /* END FILE: ./bld/sqlite3-api-build-version.js */ /* BEGIN FILE: api/sqlite3-api-oo1.c-pp.js */ @@ -17622,32 +17829,32 @@ if('undefined' !== typeof Module){ // presumably an Emscripten build /* The current function scope was opened via post-js-header.js, which gets prepended to this at build-time. This file closes that scope. */ -})/*postRun.push(...)*/; +}/*Module.runSQLite3PostLoadInit()*/; /* END FILE: api/post-js-footer.js */ -// end include: /usr/local/google/home/dlehmann/JetStream/sqlite3/sqlite-src-3480000/ext/wasm/bld/post-js.speedtest1-vanilla.js +// end include: ./bld/post-js.speedtest1-vanilla.js // include: postamble_modularize.js // In MODULARIZE mode we wrap the generated code in a factory function // and return either the Module itself, or a promise of the module. -// -// We assign to the `moduleRtn` global here and configure closure to see -// this as and extern so it won't get minified. - -moduleRtn = readyPromise; // end include: postamble_modularize.js - return moduleRtn; -} -); + return Module; + }; })(); -if (typeof exports === 'object' && typeof module === 'object') + +// Export using a UMD style export, or ES6 exports if selected +if (typeof exports === 'object' && typeof module === 'object') { module.exports = sqlite3InitModule; -else if (typeof define === 'function' && define['amd']) + // This default export looks redundant, but it allows TS to import this + // commonjs style module. + module.exports.default = sqlite3InitModule; +} else if (typeof define === 'function' && define['amd']) define([], () => sqlite3InitModule); + /* ^^^^ ACHTUNG: blank line at the start is necessary because Emscripten will not add a newline in some cases and we need a blank line for a sed-based kludge for the ES6 build. */ @@ -17709,6 +17916,7 @@ else if (typeof define === 'function' && define['amd']) //console.warn("Using replaced sqlite3InitModule()",globalThis.location); return originalInit(...args).then((EmscriptenModule)=>{ //console.warn("sqlite3InitModule() returning sqlite3 object."); + EmscriptenModule.runSQLite3PostLoadInit(EmscriptenModule); const s = EmscriptenModule.sqlite3; s.scriptInfo = initModuleState; //console.warn("sqlite3.scriptInfo =",s.scriptInfo); diff --git a/workloads/sqlite3-wasm/build/jswasm/speedtest1.wasm b/workloads/sqlite3-wasm/build/jswasm/speedtest1.wasm index 94c755beb5d965e35bd21cce14b8339513b65141..4e7c05953cb804a9684feab2c8c12dcf8bdaf674 100644 GIT binary patch delta 339004 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

V4R`|Ug0I%|=yQ{MMNfBxI$-j<8P>e`CN z@A(_vhW9<;AAGy~vAv&FRd4uLzpzupZarHrFElGJd;BgOT`@e})=9yA&4B^TqJZYg zcW~5Yu^-B~SZz`9k*pInS;Ot=n6CPPaC@k}FP8lp-ZAi`}D z`tWRy%@z>CK>?PO}@6d?`dCB{)j=(8>b~rq&M=2K?UkbGv{4B3cJ^yRF zK`*(a@uWSJj#}Nn4?w1D_F7bc0cqzC==kcR8LKNG3FX(nS1z?(b1sx0OGn^!gxY1k zw7LAHecxS=$kK0u=L!n|YGhZPgPRfAtlJMn82NZny5IxCZ^d4WOj!qM3iod=ckPXk zqa`i?TQn4fjmR#5cc@XZIa=%o1zX29Wg(3C^wpG&Qg#o(j<36PJ2$Cx`38y4%Pu{_ z{W7t#37DGTmR1X9Zq5{O;RsH%!tWHh9cL|X|K0yM|d3o18;ax)cR(ZDxJ7@G67P@Cu7#v8-$ZpT$ zz+g6uhD+g_>!Ub3(~-#) zzwDnaxOx2sK(f17w;Dvm%mqM~0uUbNNIW{U=stz^b4Sr7#|06mI)V76ic0Oo4u_{X zoplAWp_1aj(>F@~ESBnnJ8I;obah#S^11XPmxvwlr(J(Q!AE?(UHJ6Ef$A#iDA^ngFjx$UN%wMwW=;L>uU zgl^<7r8%Nol5S+VW%16Lb$F|Pz`32+)e0BO1w&AVeDLh%XGf&2jIFo{(Rx3l;$=>nWL`UD&TL3Fqlryx6EV=YAL5kfh^6AWT&@wF|NG#icEcfMC|_R_Ev~;v$`sX_ zLynLsLeRDjfRkB8M`jPH+@3@2f8^?p53xb=|jD} zquz$o%p$y{C`{^3ii!>2lCz3rZ}({$jQrz#RCmvv5Z*ViH=y?@9u8uR_$pwfK}8rq zZlg#j`#X1`=JoK^Sxc@gFy*gD^-XudH0#GGv+T=)J3@%5ZS_|6yL#(u?}XEj_13DW z{`1vB1!a}lOTzE8kNAB9g519Bmo&R+`^b;>8+JU1DQ0RJeVk-&J`UTHemGZZMG%to zpPIgK_p_fyP|(Pe&92rXH(Kxm6-^T5mGK8!7piCaz7{t=I?>N+aR+R_RhAxt6H{3d ztBDn4WrTN``tpQOhQGeW?H!%%H?_E*Mz8v-TS55O{JpI-^s0Zk)lG@6^W$UprAbh{ zVx6#?ttnnJG4lho;0v3oVfFXMu4{}mMy?DZtE_9(?7B>cSN-PLb$6~$rANvxv;Yw% z`Q$dYLqF;@3Du@&Y9E2d&4-Tvf_DX5ev@C;h9KDF*S5JGYX}eP3N6f(Q}bi+v}H?V ztCzO)`hzF9K7ZlGxh}u!C=RVbFC{1hA+Tc>O*DZVsgcc+0IMJP%SO2!#$CgP7$h^8 zq_%?rYk?P5@k;;5C^vU_6~-$XDDK@>BoAM^32O2YLnfh~f z6U#P6#G&7@({0bDP)&hJAQ#W{pXvmsH+kRb#_d{Aq45;hYEka-2C(g|v|M-qwp1~7 z@nomld*2moyrfH_cI00Iw)Ui;L(Q`F^I!ohz*i=hR2NuKIchYE)NM|>(*2}We?phr z7C+3{UCj1+|I04-HF>VO-BB~KyCgmgnhYqZjL4gq0v<4r}5=f!J&yz}!G4qhp;wEjDuCSR!$Y`nfBXm-k~&Yl<-e42C~|eg!#d z^>ed*k(qkTs$6T~qzy%`_>r%**6%wu{1S1uV3eY_uEjYTu(ZiG;S~X8=w}`WMv+CJ zxF^eDtKZ$~(|*(EXt8f#WdE!m zGXZQ!8lVc*g#m_N=mT4tlHs`3lV}EwsrdVQ+?S(Pe@w3%82(CYU@k~S+Flh9Cz@$qVPl|OiK)b5WT=hke8Bic$?;44rOu3T8BTzwxS$9)d$sb#@& zzw>xEsf}kblm>!tK)Vq9$>ZIO?g4-_{UjXn;0wsdR|;NKG8upKcsI7QAIRboV9}8; z%0D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 delta 341792 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 t-u#>JL(~@u*AVlOz+I8h`xF{&&={vWDg0W1Ij diff --git a/workloads/sqlite3-wasm/emscripten-4-post-load-init.patch b/workloads/sqlite3-wasm/emscripten-4-post-load-init.patch new file mode 100644 index 00000000..cc9975b7 --- /dev/null +++ b/workloads/sqlite3-wasm/emscripten-4-post-load-init.patch @@ -0,0 +1,41 @@ +Backport of the SQLite 3.49.0 fix for building with Emscripten 4.0 or newer. + +Since Emscripten 4.0.0 (emscripten-core/emscripten#23157), the -sMODULARIZE +factory awaits the Wasm instantiation and runs Module.postRun before any +--post-js code executes. SQLite 3.48.0 registers its API setup as a +Module.postRun handler in post-js-header.js, so with Emscripten 4+ that +handler never runs and sqlite3InitModule() fails with "s is undefined". +SQLite 3.49.0 replaced the handler with Module.runSQLite3PostLoadInit(), +which extern-post-js.c-pp.js calls once the factory promise resolves. +Remove this patch when updating to SQLite 3.49.0 or newer. + +--- a/ext/wasm/api/post-js-header.js ++++ b/ext/wasm/api/post-js-header.js +@@ -7,8 +7,7 @@ + installs will be run after the WASM module is loaded, at which + point the sqlite3 JS API bits will get set up. + */ +-if(!Module.postRun) Module.postRun = []; +-Module.postRun.push(function(Module/*the Emscripten-style module object*/){ ++Module.runSQLite3PostLoadInit = function(Module/*the Emscripten-style module object*/){ + 'use strict'; + /* This function will contain at least the following: + +--- a/ext/wasm/api/post-js-footer.js ++++ b/ext/wasm/api/post-js-footer.js +@@ -1,4 +1,4 @@ + /* The current function scope was opened via post-js-header.js, which + gets prepended to this at build-time. This file closes that + scope. */ +-})/*postRun.push(...)*/; ++}/*Module.runSQLite3PostLoadInit()*/; +--- a/ext/wasm/api/extern-post-js.c-pp.js ++++ b/ext/wasm/api/extern-post-js.c-pp.js +@@ -75,6 +75,7 @@ + } + //#endif + //console.warn("sqlite3InitModule() returning sqlite3 object."); ++ EmscriptenModule.runSQLite3PostLoadInit(EmscriptenModule); + const s = EmscriptenModule.sqlite3; + s.scriptInfo = initModuleState; + //console.warn("sqlite3.scriptInfo =",s.scriptInfo);