From 55bb1177ae5120938f9b49eddae67e5ab6e80474 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 10:46:27 -0700 Subject: [PATCH 01/47] Cleanup --- aioli.js | 319 ------------------------------------------------ aioli.worker.js | 232 ----------------------------------- 2 files changed, 551 deletions(-) delete mode 100644 aioli.js delete mode 100644 aioli.worker.js diff --git a/aioli.js b/aioli.js deleted file mode 100644 index 455a4d7..0000000 --- a/aioli.js +++ /dev/null @@ -1,319 +0,0 @@ -// Notes: -// - Files mounted after WebWorkers are initialized will be auto-mounted on each Worker -// - WebAssembly module and WebWorker initialization code downloaded from cdn.biowasm.com -// - Mounting URLs uses lazy-loading to fetch information as needed - -class Aioli -{ - // ========================================================================= - // Properties - // ========================================================================= - - // Module: - // ready = false; // Will be true when the module is ready - // config = { // Config - // module: "seq-align", - // program: "smith_waterman", // optional (defaults to $module) - // version: "latest", // optional (defaults to latest) - // urlModule: "./path/to/wasm/files/", // optional (defaults to biowasm CDN) - // urlAioli: "./path/to/aioli.worker.js", // optional (defaults to biowasm CDN) - // }; - - // WebWorker: - // worker = null; // WebWorker this module communicates with - // resolves = {}; // Track Promise functions for each message we send to the Worker - // rejects = {}; - // callbacks = {}; // Callbacks can be made to send messages without resolving the Promise - - // ========================================================================= - // Initialization - // ========================================================================= - - // Create module - constructor(config) - { - // Support "/" or "//" instead of object config - if(typeof config == "string") - { - const configSplit = config.split("/"); - if(configSplit.length < 2 || configSplit.length > 3) - throw `Error: Aioli("${config}") is not valid. Expecting "/" or "//".`; - config = { - module: configSplit[0], - program: configSplit.length == 3 ? configSplit[1] : configSplit[0], - version: configSplit[configSplit.length - 1], - }; - } - - // Make sure config.module is defined - if(config.module == null) - throw "Must specify a `module` name"; - - // Default settings - let defaults = { - // In most cases, the program is the same as the module, but other times isn't. - // e.g. for module=seq-align, program can be "needleman_wunsch", "smith_waterman", or "lcs" - program: config.module, - - // Separate URLs to make it easier to test modifying Aioli while using the CDN for Wasm modules - urlModule: `https://cdn.biowasm.com/${config.module}/${config.version || "latest"}`, - urlAioli: "https://cdn.biowasm.com/aioli/latest/aioli.worker.js", // to use a local worker.js, specify "./aioli.worker.js" - }; - this.config = Object.assign({}, defaults, config); - - // Initialize properties - this.ready = false; - this.worker = null; - this.resolves = {}; - this.rejects = {}; - this.callbacks = {}; - - // Paths on the virtual file system (class properties because needed by static mount() function) - // TODO: allow these to be changed without having to modify aioli.worker.js - Aioli.dirFiles = "/data"; - Aioli.dirURLs = "/urls"; - } - - // Download module code and launch WebWorker - async init() - { - // Load Aioli worker JS - const workerResponse = await fetch(this.config.urlAioli); - const workerJS = await workerResponse.text(); - - // Feature detection using the module's config.json file - try { - const workerConfig = await fetch(`${this.config.urlModule}/config.json`).then(d => d.json()); - // Check for SIMD support (source: ) - if(workerConfig["wasm-features"].includes("simd") && !WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]))) - this.config.program += "-nosimd"; - } catch (error) { } - - // Load compiled .wasm module JS - const moduleResponse = await fetch(`${this.config.urlModule}/${this.config.program}.js`); - const moduleJS = await moduleResponse.text(); - - // Prepend Aioli worker code to the module (one alternative would be to launch an Aioli - // WebWorker that imports the module code and eval(), but would rather avoid that) - const js = `BIOWASM_URL = "${this.config.urlModule}/";\n${workerJS}\n${moduleJS}`; - const blob = new Blob([js], { type: "application/javascript" }); - this.worker = new Worker(URL.createObjectURL(blob)); - - // Worker will make contact when ready - // Note: without `.bind(this)`, `this` refers to the Worker object, not the Aioli object - this.worker.onmessage = this.receive.bind(this); - - // Keep track of the WebWorkers we've launched overall. This will be useful when - // we need to mount a File to all workers using Aioli.mount() - Aioli.workers = Aioli.workers.concat(this); - - // Send a message to the worker so it initializes - return this - .send("init") - .then(() => { - this.ready = true; - return new Promise(resolve => resolve("ready")); - }); - } - - - // ========================================================================= - // Worker Communication - // ========================================================================= - - send(action, data, callback=null, transferables=[]) - { - // API: what to do when sending messages - const id = Aioli.uuid(); - return new Promise((resolve, reject) => - { - // Track resolve/reject functions so can call them when receive message back from worker - this.resolves[id] = resolve; - this.rejects[id] = reject; - this.callbacks[id] = callback; - - // Send message to worker - Aioli.log(`Sending: Action=%c${action}%c; Data=%c${JSON.stringify(data)} %c[id=${id}]`, "color:deepskyblue; font-weight:bold", "", "color:deepskyblue; font-weight:bold"); - this.worker.postMessage({ - id: id, - action: action, - data: data - }, transferables); - }); - } - - receive(message) - { - // Parse message - const id = message.data.id; - const data = message.data.data; - const action = message.data.action; - - Aioli.log(`Worker Says: Action=%c${action}%c; Data=%c${JSON.stringify(data)} %c[id=${id}]`, "color:green; font-weight:bold", "", "color:green; font-weight:bold"); - Aioli.log('================') - - // Resolve promise - if(action == "resolve") - this.resolves[id](data); - else if(action == "reject") - this.rejects[id](data); - else if(action == "callback" && this.callbacks[id] != null) - this.callbacks[id](data); - else - throw "Invalid action received from worker."; - } - - - // ========================================================================= - // Execute commands in the WebWorker - // ========================================================================= - - // Call main with custom arguments - exec(command, callback=null) - { - return this.send("exec", command, callback); - } - - // File system operations - ls(path="/") - { - return this.send("ls", path); - } - cat(path) - { - return this.send("cat", path); - } - download(path) - { - return this.send("download", path); - } - - // Custom file system operations. For example: - // FS.readFile("/file.txt", { encoding: "utf8" }); - // becomes: - // aioli.fs("readFile", "/file.txt", { encoding: "utf8" }) - // Supported FS operations: - fs() - { - // Convert function arguments into array (`arguments` is an object) - let args = [...arguments]; - return this.send("fs", { - fn: args.shift(), - args: args - }); - } - - // ========================================================================= - // Worker Management: Track workers that Aioli is managing so that e.g. it - // can be notified when a new file is mounted - // ========================================================================= - - static get workers() { return this._workers || []; } - static set workers(workers) { this._workers = workers; } - - - // ========================================================================= - // File Management - // ========================================================================= - - static get files() { return this._files || []; } - static set files(files) { this._files = files; } - - // ------------------------------------------------------------------------ - // Transfer a mounted file from a worker to another - // ------------------------------------------------------------------------ - static transfer(path, workerFrom, workerTo) - { - // Create a communication channel the workers can use - const channel = new MessageChannel(); - - // Ask the workers to transfer a file - return Promise.all([ - workerFrom.send("transfer", { role: "sender", path: path, port: channel.port1 }, null, [channel.port1]), - workerTo.send("transfer", { role: "receiver", path: path, port: channel.port2 }, null, [channel.port2]) - ]); - } - - // ------------------------------------------------------------------------ - // Mount a File, Blob or string URL - // ------------------------------------------------------------------------ - static mount(file, name=null, directory=null) - { - let mountedFile = {}; - - // Input validation - if(directory == Aioli.dirFiles || directory == Aioli.dirURLs) - throw "Can't mount a file to a system directory."; - - // Handle File and Blob objects - if(file instanceof File || file instanceof Blob) - { - // Set defaults - name = name || file.name; - directory = directory || Aioli.dirFiles; - - // Create a copy of the File object (not the file contents) - // mountedFile = new File([ file ], name); - mountedFile.file = file; - mountedFile.source = "file"; - } - - // Handle URLs - else if(typeof file == "string" && file.startsWith("http")) - { - // Set defaults (if no name provided: "https://website.com/some/path.js" mounts to "/urls/website.com-some-path.js") - name = name || file.split("//").pop().replace(/\//g, "-"); - directory = directory || Aioli.dirURLs; - - // For URLs, we just use an object, not a File object - mountedFile.url = file; - mountedFile.source = "url"; - } - - // Otherwise error out - else throw "Only support mounting File, Blob, or string URL"; - - // Keep track of this new file - mountedFile.name = name; - mountedFile.path = `${directory}/${name}`; - mountedFile.directory = directory; - Aioli.files = Aioli.files.concat(mountedFile); - - // Notify attached workers to mount a new file? - let promises = []; - for(let worker of Aioli.workers) - promises.push(worker.send("mount", mountedFile)); - - return Promise.all(promises) - .then(d => new Promise(resolve => resolve(mountedFile))); - } - - - // ========================================================================= - // Utility functions - // ========================================================================= - - // Output message on console - static log(message) - { - if(!Aioli.debug) - return; - - // Get all arguments except `message` - let args = [...arguments]; - args.shift(); - console.log(`%c[MainThread]%c ${message}`, "font-weight:bold", "", ...args); - } - - // UUID v4: https://stackoverflow.com/a/2117523 - static uuid() - { - return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c => - (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16) - ); - } -} - -// Export module if applicable -if(typeof module !== 'undefined' && module.exports) - module.exports = { Aioli }; diff --git a/aioli.worker.js b/aioli.worker.js deleted file mode 100644 index 47d1239..0000000 --- a/aioli.worker.js +++ /dev/null @@ -1,232 +0,0 @@ -// ============================================================================= -// Config -// ============================================================================= - -// State -DEBUG = false; -MSG_UUID = null; - -// Stdout/stderr indexed by message uuid -STDOUT = {}; -STDERR = {}; - -// Files mounted and paths -FILES = []; -DIR_DATA_FILES = "/data"; -DIR_DATA_URLS = "/urls"; - -// Initialization -- two conditions for this worker to be ready: -// 1) Got UUID from Main Thread that it sent with the "init" message -// 2) Wasm module is initialized -resolveInitWasm = null; -resolveInitWorker = null; -promiseInitWasm = new Promise(resolve => resolveInitWasm = resolve); -promiseInitWorker = new Promise(resolve => resolveInitWorker = resolve); -Promise.all([ promiseInitWasm, promiseInitWorker ]) - .then(() => send(MSG_UUID, "ready")); - -// WebAssembly Module config -Module = { - // When the module is initialized, resolve the initWasm promise - onRuntimeInitialized: () => { - // Setup folders - FS.mkdir(DIR_DATA_FILES, 0o777); - FS.mkdir(DIR_DATA_URLS, 0o777); - // Resolve promise - resolveInitWasm(); - }, - - // Load .wasm/.data files from a custom path - locateFile: (path, dir) => { - var dirRoot = ""; - - // Use hardcoded path if `BIOWASM_URL` was defined when creating WebWorker script - if(typeof BIOWASM_URL !== 'undefined') - dirRoot = BIOWASM_URL; - // Or infer it from the path to the JS file - else { - var dirJS = self.location.href; - dirRoot = dirJS.substring(0, dirJS.lastIndexOf("/") + 1); - } - return dirRoot + path; - }, - - // Setup print functions to store stdout/stderr based on id - print: text => STDOUT[MSG_UUID] += `${text}\n`, - printErr: text => STDERR[MSG_UUID] += `${text}\n` -} - - -// ============================================================================= -// Handle messages from the outside -// ============================================================================= - -// Format: "message": d => { ; return ; } -API = { - // ------------------------------------------------------------------------- - // Initialize WebWorker: resolve initWorker promise when get UUID from main thread - // ------------------------------------------------------------------------- - init: (id, data) => { - resolveInitWorker(); - }, - - // ------------------------------------------------------------------------- - // File system operations - // ------------------------------------------------------------------------- - ls: (id, path) => { - return FS.readdir(path); - }, - - cat: (id, path) => { - return FS.readFile(path, { encoding: "utf8" }); - }, - - download: (id, path) => { - let file = FS.readFile(path, { encoding: "utf8" }); - let blob = new Blob([ file ]); - return URL.createObjectURL(blob); - }, - - fs: (id, config) => { - let fn = config.fn; - let args = config.args; - - try { - if(!(fn in FS)) - throw `Invalid function ${fn}. See for valid functions.`; - let response = FS[fn](...args); - if(response == null) - response = "ok"; - return response; - } catch(err) { - console.error(`[AioliWorker] Failed to run FS.${fn}(${args}): ${err}`); - return "error"; - } - }, - - // ------------------------------------------------------------------------- - // Call main function with custom command - // ------------------------------------------------------------------------- - exec: (id, command) => { - // Initialize stdout/stderr - STDOUT[id] = ""; - STDERR[id] = ""; - - // Call main function with command - Module.callMain(command.split(" ")); - - // Re-open stdout/stderr (fix error "error closing standard output: -1") - FS.streams[1] = FS.open("/dev/stdout", "w"); - FS.streams[2] = FS.open("/dev/stderr", "w"); - - return { - stdout: STDOUT[id], - stderr: STDERR[id] - }; - }, - - // ------------------------------------------------------------------------- - // Mount files - // ------------------------------------------------------------------------- - mount: (id, file) => { - // Support File objects - if(file.source == "file") - { - // Unmount & remount all files (can only mount a folder once) - try { - FS.unmount(DIR_DATA_FILES); - } catch(e) {} - FILES.push(file); - - // Handle File and Blob objects - FS.mount(WORKERFS, { - files: FILES.filter(f => f.file instanceof File).map(f => f.file), - blobs: FILES.filter(f => f.file instanceof Blob).map(f => ({ name: f.name, data: f.file })) - }, DIR_DATA_FILES); - } - - // Support URLs - else if(file.source == "url") - FS.createLazyFile(DIR_DATA_URLS, file.name, file.url, true, true); - - // Otherwise invalid input - else throw "Only accept File objects or URL strings."; - - return file.path; - }, - - // ------------------------------------------------------------------------- - // Transfer files from one worker to another. This is useful when one Worker - // creates a file on their file system (i.e. a file that is not mounted) and - // another Worker needs access to that file. - // ------------------------------------------------------------------------- - transfer: (id, data) => { - const role = data.role; - const port = data.port; - const path = data.path; - - // If this is the WebWorker that is sending the file to the other worker, - // first read the file and then *transfer* (not copy!) the ArrayBuffer over - if(role == "sender") { - const file = FS.readFile(path); - port.postMessage(file, [file.buffer]); - } - - // If this is the WebWorker receiving files, write the ArrayBuffer to a file - else if(role == "receiver") { - port.onmessage = d => { - const buffer = d.data; - const stream = FS.open(path, "w+"); - FS.write(stream, buffer, 0, buffer.length, 0); - FS.close(stream); - } - } - }, -}; - -// ------------------------------------------------------------------------- -// On message handler -// ------------------------------------------------------------------------- -onmessage = message => { - // Parse message - const id = message.data.id; - const data = message.data.data; - const action = message.data.action || "default"; - log(`MainThread Says: Action=%c${action}%c; Data=%c${JSON.stringify(data)}%c [id=${id}]`, "color:red; font-weight:bold", "", "color:red; font-weight:bold"); - - // Figure out what to do and return in response - MSG_UUID = id; - const response = API[action](id, data); - if(response != null) - send(id, response); - - // Clean up stdout/stderr after sending message - delete STDOUT[id]; - delete STDERR[id]; -} - - -// ============================================================================= -// Utility functions -// ============================================================================= - -function send(id, response, action="resolve", transferables=[]) -{ - log(`Sending: Action=%c${action}%c; Data=%c${JSON.stringify(response)}%c [id=${id}]`, "color:deepskyblue; font-weight:bold", "", "color:deepskyblue; font-weight:bold"); - postMessage({ - id: id, - action: action, - data: response - }, transferables); -} - -function log(message) -{ - if(!DEBUG) - return; - - // Get all arguments except `message` - let args = [...arguments]; - args.shift(); - console.warn(`%c[Worker]%c ${message}`, "font-weight:bold", "", ...args); -} From 67bbb98175b6d504dce0ea25a010d5c3424abf86 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 10:48:33 -0700 Subject: [PATCH 02/47] Add .gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8d67a86 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.DS_Store +node_modules +dist From eeb1ac99ed8986903b9b3a5a42b5c116460c3f85 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 10:49:26 -0700 Subject: [PATCH 03/47] Prepare package.json for rollup config --- package.json | 27 ++++++++++++++++++++++++--- rollup.config.js | 25 +++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 rollup.config.js diff --git a/package.json b/package.json index 9255583..0a7e570 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,33 @@ { "name": "@biowasm/aioli", - "version": "1.5.0", + "version": "2.0.0", "description": "A framework for building WebAssembly-based genomics tools", + "browser": "dist/aioli.js", + "worker": "dist/aioli.worker.js", "main": "aioli.js", "repository": { "type": "git", "url": "git+https://github.com/biowasm/aioli.git" }, "author": "Robert Aboukhalil", - "license": "MIT" -} \ No newline at end of file + "license": "MIT", + "dependencies": { + "comlink": "^4.3.1", + "wasm-feature-detect": "^1.2.11" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^11.0.1", + "@rollup/plugin-node-resolve": "^7.0.0", + "rollup": "^1.29.0", + "rollup-plugin-terser": "^7.0.2" + }, + "scripts": { + "build": "rollup -c", + "dev": "rollup -c -w", + "test": "node test/test.js", + "pretest": "npm run build" + }, + "files": [ + "dist" + ] +} diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..456c630 --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,25 @@ +import resolve from "@rollup/plugin-node-resolve"; +import commonjs from "@rollup/plugin-commonjs"; +import terser from "rollup-plugin-terser"; +import pkg from "./package.json"; + +export default [ + // Browser-friendly UMD build + { + input: "src/main.js", + output: { + name: "Aioli", + file: pkg.browser, + format: "umd" + }, + plugins: [ resolve(), commonjs(), terser.terser() ] + }, + // WebWorker + { + input: "src/worker.js", + output: { + file: pkg.worker, + }, + plugins: [ resolve(), commonjs(), terser.terser() ] + } +]; From 97402a2dbc8a3eefe00edaa399a44b3b404fa9bc Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 10:50:08 -0700 Subject: [PATCH 04/47] Initial main/webworker code - just testing the bundling + WebWorkers/Comlink connection --- src/main.js | 17 +++++++++++++++++ src/worker.js | 13 +++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 src/main.js create mode 100644 src/worker.js diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..c1f4cc5 --- /dev/null +++ b/src/main.js @@ -0,0 +1,17 @@ +import { simd, threads } from "wasm-feature-detect"; +import * as Comlink from "comlink"; + +export default class Aioli +{ + constructor(config) + { + // + } + + async init() + { + const worker = new Worker("./dist/aioli.worker.js"); + const obj = Comlink.wrap(worker); + return obj; + } +} diff --git a/src/worker.js b/src/worker.js new file mode 100644 index 0000000..9425199 --- /dev/null +++ b/src/worker.js @@ -0,0 +1,13 @@ +import * as Comlink from "comlink"; + +const obj = { + counter: 0, + inc() { + this.counter++; + }, + mount() { + console.log("mount") + } +}; + +Comlink.expose(obj); From 5710ade6fd2ce338396986e42acd0d80b10edd50 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 11:06:22 -0700 Subject: [PATCH 05/47] Update .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 8d67a86..a20bcd7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .DS_Store node_modules dist +package-lock.json From d32d1db5caf5968c8e826dab2750679da8d08a1c Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 13:43:33 -0700 Subject: [PATCH 06/47] Enable importing JSON files so we download the correct Aioli worker version based on what is in package.json! --- rollup.config.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/rollup.config.js b/rollup.config.js index 456c630..8a937aa 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,6 +1,7 @@ -import resolve from "@rollup/plugin-node-resolve"; -import commonjs from "@rollup/plugin-commonjs"; -import terser from "rollup-plugin-terser"; +import resolve from "@rollup/plugin-node-resolve"; // Resolve node import statements +import commonjs from "@rollup/plugin-commonjs"; // ES module conversion +import terser from "rollup-plugin-terser"; // Minify JS to save space +import json from "@rollup/plugin-json"; // Allow us to import JSON from main.js import pkg from "./package.json"; export default [ @@ -12,7 +13,7 @@ export default [ file: pkg.browser, format: "umd" }, - plugins: [ resolve(), commonjs(), terser.terser() ] + plugins: [ resolve(), commonjs(), terser.terser(), json() ] }, // WebWorker { @@ -20,6 +21,6 @@ export default [ output: { file: pkg.worker, }, - plugins: [ resolve(), commonjs(), terser.terser() ] + plugins: [ resolve(), commonjs(), terser.terser(), json() ] } ]; From 44d9174234c2421b082217a95a9a04c84dfb1700 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 13:43:51 -0700 Subject: [PATCH 07/47] Enable importing JSON files so we download the correct Aioli worker version based on what is in package.json! --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 0a7e570..bcd5788 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ }, "devDependencies": { "@rollup/plugin-commonjs": "^11.0.1", + "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^7.0.0", "rollup": "^1.29.0", "rollup-plugin-terser": "^7.0.2" From 834b9aa2ef4e5deb33fac833267f9ebbd0803d35 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 13:44:25 -0700 Subject: [PATCH 08/47] Checkpoint --- src/main.js | 32 ++++++++++++++++++++++++-------- src/worker.js | 35 ++++++++++++++++++++++++++++------- 2 files changed, 52 insertions(+), 15 deletions(-) diff --git a/src/main.js b/src/main.js index c1f4cc5..2220920 100644 --- a/src/main.js +++ b/src/main.js @@ -1,17 +1,33 @@ -import { simd, threads } from "wasm-feature-detect"; +import pkg from "../package.json"; import * as Comlink from "comlink"; +import { simd, threads } from "wasm-feature-detect"; + +// Constants +const URL_CDN_ROOT = "https://cdn.biowasm.com/v2"; +const configDefault = { + urlRoot: URL_CDN_ROOT, + urlAioli: `${URL_CDN_ROOT}/aioli/${pkg.version}.aioli.worker.js` +} +// Class: 1 object = 1 worker; user can decide if they want tools running in separate threads or all of them in one export default class Aioli { - constructor(config) + constructor(tools, config=configDefault) { - // - } + // Input validation + if(tools == null) + throw "Expecting array of tools as input to Aioli constructor."; + if(!Array.isArray(tools)) + tools = [ tools ]; - async init() - { + // Create the WebWorker const worker = new Worker("./dist/aioli.worker.js"); - const obj = Comlink.wrap(worker); - return obj; + const aioli = Comlink.wrap(worker); + + // Update configuration + aioli.tools = tools; + Object.assign(aioli.config, config); + + return aioli; } } diff --git a/src/worker.js b/src/worker.js index 9425199..047d7b6 100644 --- a/src/worker.js +++ b/src/worker.js @@ -1,13 +1,34 @@ +import pkg from "../package.json"; import * as Comlink from "comlink"; -const obj = { - counter: 0, - inc() { - this.counter++; + +const aioli = { + // + tools: [], + config: { + a: 42, + dirData: "", + }, + + // + async init() + { + console.log(aioli.tools); + console.log(aioli.config) + console.log(`aioli v${pkg.version}`) + return 345; }, - mount() { + + // + mount(files) { console.log("mount") - } + console.log(files[0].name) + console.log(files[0].size) + return 123 + }, + set(tools) { + + }, }; -Comlink.expose(obj); +Comlink.expose(aioli); From 889a6c5355f36df729c0aed4019af49c1a8cac59 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 14:40:58 -0700 Subject: [PATCH 09/47] Basic code for Aioli class to initialize communication with WebWorker --- src/main.js | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main.js b/src/main.js index 2220920..15a7005 100644 --- a/src/main.js +++ b/src/main.js @@ -4,15 +4,20 @@ import { simd, threads } from "wasm-feature-detect"; // Constants const URL_CDN_ROOT = "https://cdn.biowasm.com/v2"; -const configDefault = { - urlRoot: URL_CDN_ROOT, - urlAioli: `${URL_CDN_ROOT}/aioli/${pkg.version}.aioli.worker.js` -} +const CONFIG_DEFAULTS = { + // Biowasm CDN URLs + urlCDN: URL_CDN_ROOT, + // Get the Worker code corresponding to the current Aioli version + urlAioli: `${URL_CDN_ROOT}/aioli/${pkg.version}/aioli.worker.js`, + // Various folder paths use in the virtual file system + dirData: "/data", + dirDataReadOnly: "/data-readonly" +}; // Class: 1 object = 1 worker; user can decide if they want tools running in separate threads or all of them in one export default class Aioli { - constructor(tools, config=configDefault) + constructor(tools, config={}) { // Input validation if(tools == null) @@ -20,13 +25,16 @@ export default class Aioli if(!Array.isArray(tools)) tools = [ tools ]; + // Overwrite default config if specified + config = Object.assign({}, CONFIG_DEFAULTS, config); + // Create the WebWorker - const worker = new Worker("./dist/aioli.worker.js"); + const worker = new Worker(config.urlAioli); const aioli = Comlink.wrap(worker); // Update configuration aioli.tools = tools; - Object.assign(aioli.config, config); + aioli.config = config; return aioli; } From 6782b5b6ef1846323aab94baa9945acc0bc34acb Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 14:41:26 -0700 Subject: [PATCH 10/47] Worker: Initialize WebAssembly module by fetching .js/.wasm from CDN --- src/worker.js | 83 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 55 insertions(+), 28 deletions(-) diff --git a/src/worker.js b/src/worker.js index 047d7b6..d5b13e1 100644 --- a/src/worker.js +++ b/src/worker.js @@ -1,34 +1,61 @@ -import pkg from "../package.json"; import * as Comlink from "comlink"; - const aioli = { - // - tools: [], - config: { - a: 42, - dirData: "", - }, - - // - async init() - { - console.log(aioli.tools); - console.log(aioli.config) - console.log(`aioli v${pkg.version}`) - return 345; - }, - - // - mount(files) { - console.log("mount") - console.log(files[0].name) - console.log(files[0].size) - return 123 - }, - set(tools) { - - }, + // Configuration + tools: [], + config: {}, + + // ========================================================================= + // Initialize the WebAssembly module(s) + // ========================================================================= + async init() + { + // Load each tool + for(let tool of aioli.tools) + { + // ----------------------------------------------------------------- + // Set default settings + // ----------------------------------------------------------------- + // Unless specified, we want to use the latest version of a tool + if(!tool.version) + tool.version = "latest"; + + // In most cases, the program is the same as the module, but there are exceptions. For example, for the + // module "seq-align", program can be "needleman_wunsch", "smith_waterman", or "lcs". + if(!tool.program) + tool.program = tool.module; + + // By default, use the CDN path, but also accept custom paths for each tool + if(!tool.urlPrefix) + tool.urlPrefix = `${aioli.config.urlCDN}/${tool.module}/${tool.version}`; + + // ----------------------------------------------------------------- + // Import the WebAssembly module + // ----------------------------------------------------------------- + // All biowasm modules export the variable "Module" so assign it + self.importScripts(`${tool.urlPrefix}/${tool.program}.js`); + tool.module = await Module({ + locateFile: (path, prefix) => `${tool.urlPrefix}/${path}` + }); + } + + console.log(aioli.tools); + console.log(aioli.tools[0].module.FS.readdir("/")); + // console.log(aioli.config) + // console.log(`aioli v${pkg.version}`) + return 345; + }, + + // + mount(files) { + console.log("mount") + console.log(files[0].name) + console.log(files[0].size) + return 123 + }, + set(tools) { + + }, }; Comlink.expose(aioli); From cb7e1a0447dc71a73c65bba2517b5c37decfab31 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 15:05:00 -0700 Subject: [PATCH 11/47] Detect and warn users if loading a non-threaded/non-SIMD version of a module --- src/main.js | 1 - src/worker.js | 19 ++++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main.js b/src/main.js index 15a7005..5954801 100644 --- a/src/main.js +++ b/src/main.js @@ -1,6 +1,5 @@ import pkg from "../package.json"; import * as Comlink from "comlink"; -import { simd, threads } from "wasm-feature-detect"; // Constants const URL_CDN_ROOT = "https://cdn.biowasm.com/v2"; diff --git a/src/worker.js b/src/worker.js index d5b13e1..8c6fee0 100644 --- a/src/worker.js +++ b/src/worker.js @@ -1,4 +1,5 @@ import * as Comlink from "comlink"; +import { simd, threads } from "wasm-feature-detect"; const aioli = { // Configuration @@ -16,6 +17,10 @@ const aioli = { // ----------------------------------------------------------------- // Set default settings // ----------------------------------------------------------------- + // By default, use the CDN path, but also accept custom paths for each tool + if(!tool.urlPrefix) + tool.urlPrefix = `${aioli.config.urlCDN}/${tool.module}/${tool.version}`; + // Unless specified, we want to use the latest version of a tool if(!tool.version) tool.version = "latest"; @@ -25,9 +30,17 @@ const aioli = { if(!tool.program) tool.program = tool.module; - // By default, use the CDN path, but also accept custom paths for each tool - if(!tool.urlPrefix) - tool.urlPrefix = `${aioli.config.urlCDN}/${tool.module}/${tool.version}`; + // SIMD and Threads are WebAssembly features that aren't enabled on all browsers. In those cases, we + // load the right version of the .wasm binaries based on what is supported by the user's browser. + const toolConfig = await fetch(`${tool.urlPrefix}/config.json`).then(d => d.json()); + if(toolConfig["wasm-features"]?.includes("simd") && !await simd()) { + console.warn(`[Aioli] SIMD is not supported in this browser. Loading slower non-SIMD version of ${tool.program}.`); + tool.program += "-nosimd"; + } + if(toolConfig["wasm-features"]?.includes("threads") && !await threads()) { + console.warn(`[Aioli] Threads are not supported in this browser. Loading slower non-threaded version of ${tool.program}.`); + tool.program += "-nothreads"; + } // ----------------------------------------------------------------- // Import the WebAssembly module From 87e7eb5d2bb4e2c04846db7e2cc782fa7aa4ba2b Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 15:05:18 -0700 Subject: [PATCH 12/47] Capture stdout and stderr in memory for later processing --- src/worker.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/worker.js b/src/worker.js index 8c6fee0..e608a8b 100644 --- a/src/worker.js +++ b/src/worker.js @@ -48,11 +48,20 @@ const aioli = { // All biowasm modules export the variable "Module" so assign it self.importScripts(`${tool.urlPrefix}/${tool.program}.js`); tool.module = await Module({ - locateFile: (path, prefix) => `${tool.urlPrefix}/${path}` + // Used by Emscripten to find path to .wasm / .data files + locateFile: (path, prefix) => `${tool.urlPrefix}/${path}`, + + // Setup print functions to store stdout/stderr output + print: text => tool.stdout += `${text}\n`, + printErr: text => tool.stderr += `${text}\n` }); + + // Initialize some variables + tool.stdout = ""; + tool.stderr = ""; + aioli[tool.program] = tool; } - console.log(aioli.tools); console.log(aioli.tools[0].module.FS.readdir("/")); // console.log(aioli.config) // console.log(`aioli v${pkg.version}`) From 72066d65efb42a6d8fa84144f2d506dc4b631dad Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 15:25:10 -0700 Subject: [PATCH 13/47] Allow user to execute commands and figure out automatically which tool is the right one to use --- src/worker.js | 46 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/src/worker.js b/src/worker.js index e608a8b..261faa7 100644 --- a/src/worker.js +++ b/src/worker.js @@ -56,28 +56,64 @@ const aioli = { printErr: text => tool.stderr += `${text}\n` }); - // Initialize some variables + // Initialize variables tool.stdout = ""; tool.stderr = ""; - aioli[tool.program] = tool; } - console.log(aioli.tools[0].module.FS.readdir("/")); + // console.log(aioli.tools[0].module.FS.readdir("/")); // console.log(aioli.config) // console.log(`aioli v${pkg.version}`) return 345; }, - // + // ========================================================================= + // Mount files to the virtual file system + // ========================================================================= + // TODO: mount(files) { console.log("mount") console.log(files[0].name) console.log(files[0].size) return 123 }, - set(tools) { + // ========================================================================= + // Execute a command + // ========================================================================= + async exec(command) + { + // Input validation + if(!command) + throw "Expecting a command"; + // Extract tool name + const args = command.split(" "); + const toolName = args.shift(); + + // Does it match a program we've already loaded? + const tools = aioli.tools.filter(d => d.program == toolName); + if(tools.length == 0) + throw `Program ${toolName} not found.`; + // Prepare tool + const tool = tools[0]; + tool.stdout = ""; + tool.stderr = ""; + + // Run command. Stdout/Stderr will be saved to "tool.stdout"/"tool.stderr" (see "print" and "printErr" above) + tool.module.callMain(args); + + // TODO: + // Re-open stdout/stderr (fix error "error closing standard output: -1") + tool.module.FS.streams[1] = tool.module.FS.open("/dev/stdout", "w"); + tool.module.FS.streams[2] = tool.module.FS.open("/dev/stderr", "w"); + + return { + stdout: tool.stdout, + stderr: tool.stderr + } }, + // + // TODO: ls, cat, download }; Comlink.expose(aioli); From a565a58a7ec64704724f38ecbe7069872f482aa3 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 17:53:28 -0700 Subject: [PATCH 14/47] Set up shared virtual file system --- src/worker.js | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/worker.js b/src/worker.js index 261faa7..1624091 100644 --- a/src/worker.js +++ b/src/worker.js @@ -4,7 +4,8 @@ import { simd, threads } from "wasm-feature-detect"; const aioli = { // Configuration tools: [], - config: {}, + config: {}, // see main.js for defaults + files: [], // ========================================================================= // Initialize the WebAssembly module(s) @@ -59,12 +60,30 @@ const aioli = { // Initialize variables tool.stdout = ""; tool.stderr = ""; + + // ----------------------------------------------------------------- + // Setup shared virtual file system + // ----------------------------------------------------------------- + + // The first tool we initialize has the main filesystem, which other tools will mount + if(i != 0) + { + const FS = tool.module.FS; + FS.mkdir(aioli.config.dirShared); + FS.mount(tool.module.PROXYFS, { + root: "/", + fs: aioli.tools[0].module.FS // mount the first tool's filesystem + }, aioli.config.dirShared); + + // Set the working directory to be that mount folder for convenience + FS.chdir(aioli.config.dirShared); + } } // console.log(aioli.tools[0].module.FS.readdir("/")); // console.log(aioli.config) // console.log(`aioli v${pkg.version}`) - return 345; + return true; }, // ========================================================================= From fbb382fa6bf3997675e7c0046032ba468002dc2a Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 18:16:40 -0700 Subject: [PATCH 15/47] Cleanup --- src/main.js | 8 ++++++-- src/worker.js | 14 +++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main.js b/src/main.js index 5954801..b930754 100644 --- a/src/main.js +++ b/src/main.js @@ -9,8 +9,12 @@ const CONFIG_DEFAULTS = { // Get the Worker code corresponding to the current Aioli version urlAioli: `${URL_CDN_ROOT}/aioli/${pkg.version}/aioli.worker.js`, // Various folder paths use in the virtual file system - dirData: "/data", - dirDataReadOnly: "/data-readonly" + // Folder to use for mounting the shared filesystem + dirShared: "/shared", + // Folder to use for mounting File/Blob objects to the virtual file system + dirMounted: "/mnt", + // Folder to use for mounting URLs lazily + dirURLs: "/urls", }; // Class: 1 object = 1 worker; user can decide if they want tools running in separate threads or all of them in one diff --git a/src/worker.js b/src/worker.js index 1624091..70fe98a 100644 --- a/src/worker.js +++ b/src/worker.js @@ -3,9 +3,10 @@ import { simd, threads } from "wasm-feature-detect"; const aioli = { // Configuration - tools: [], - config: {}, // see main.js for defaults - files: [], + tools: [], // Genomics tools that are available to use in this WebWorker + config: {}, // See main.js for defaults + files: [], // File objects that represent local user files we mount to a virtual filesystem + blobs: [], // Blob objects mounted to a virtual filesystem. Format: { name: "blob.txt", data: } // ========================================================================= // Initialize the WebAssembly module(s) @@ -13,8 +14,10 @@ const aioli = { async init() { // Load each tool - for(let tool of aioli.tools) + for(let i in aioli.tools) { + const tool = aioli.tools[i]; + // ----------------------------------------------------------------- // Set default settings // ----------------------------------------------------------------- @@ -80,9 +83,6 @@ const aioli = { } } - // console.log(aioli.tools[0].module.FS.readdir("/")); - // console.log(aioli.config) - // console.log(`aioli v${pkg.version}`) return true; }, From 0a4ba8c9291ac7a0cc4321e101fe330fe4b601a4 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 18:18:58 -0700 Subject: [PATCH 16/47] Add ability to mount File/Blob objects, and lazy-mount URLs --- src/worker.js | 61 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 6 deletions(-) diff --git a/src/worker.js b/src/worker.js index 70fe98a..c425e47 100644 --- a/src/worker.js +++ b/src/worker.js @@ -88,13 +88,62 @@ const aioli = { // ========================================================================= // Mount files to the virtual file system + // Supports , , , and string URLs: + // mount() + // mount([ , { name: "blob.txt", data: }, "https://somefile.com" ]) // ========================================================================= - // TODO: - mount(files) { - console.log("mount") - console.log(files[0].name) - console.log(files[0].size) - return 123 + mount(files) + { + let mountPaths = []; + const FS = aioli.tools[0].module.FS; + const dirMounted = aioli.config.dirMounted; + const dirURLs = aioli.config.dirURLs; + + // Input validation. Note that FileList is not an array so we can't use Array.isArray() but it does have a + // length attribute. So do strings, which is why we explicitly check for those. + let toMountFiles = [], toMountBlobs = []; + if(!files?.length || typeof files === "string") + files = [ files ]; + + // Sort files by type: File vs. Blob vs. URL + for(let file of files) + { + // Handle File objects + if(file instanceof File) { + toMountFiles.push(file); + mountPaths.push(`${dirMounted}/${file.name}`); + } + // Handle Blob objects { name: "filename.txt", data: new Blob(['blob data']) } + else if(file?.data instanceof Blob && file.name) { + toMountBlobs.push(file); + mountPaths.push(`${dirMounted}/${file.name}`); + } + // Handle URLs: mount "https://website.com/some/path.js" to "/urls/website.com-some-path.js") + else if(typeof file == "string" && file.startsWith("http")) { + const fileName = file.split("//").pop().replace(/\//g, "-"); + FS.createLazyFile(dirURLs, fileName, file, true, true); + mountPaths.push(`${dirURLs}/${fileName}`); + // Otherwise, incorrect data provided + } else { + throw "Cannot mount file(s) specified. Must be a File, Blob, or a URL string."; + } + } + aioli.files = aioli.files.concat(toMountFiles); + aioli.blobs = aioli.blobs.concat(toMountBlobs); + + // Unmount and remount Files and Blobs since WORKERFS is read-only (i.e. can only mount a folder once) + if(FS.isDir(dirMounted)) + FS.unmount(dirMounted); + else + FS.mkdir(dirMounted, 0o777); + + // Mount File & Blob objects + FS.mount(aioli.tools[0].module.WORKERFS, { + files: aioli.files, + blobs: aioli.blobs + }, dirMounted); + + return mountPaths; }, // ========================================================================= From 3562be95d7f74f268c60c35bf920fd2302031234 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 18:22:38 -0700 Subject: [PATCH 17/47] Add documentation to init() function --- src/worker.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/worker.js b/src/worker.js index c425e47..11aedda 100644 --- a/src/worker.js +++ b/src/worker.js @@ -10,6 +10,13 @@ const aioli = { // ========================================================================= // Initialize the WebAssembly module(s) + // Supports array of tool info, where each tool is represented by: + // { + // module: "seq-align", + // program: "smith_waterman", // Optional, default="module" name. Only use this for tools with multiple subtools + // version: "latest", // Optional, default="latest" + // urlPrefix: "https://cdn.biowasm.com/v2/...", // Optional, default=biowasm CDN. Only use for local Aioli development + // }, // ========================================================================= async init() { From 2daf0e270bd2d30b7b3d0a040c0b69a12bcdef7d Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 18:54:55 -0700 Subject: [PATCH 18/47] Simplify File/Blob mounting by combining them into 1 --- src/main.js | 8 ++++--- src/worker.js | 58 ++++++++++++++++++++++++++++----------------------- 2 files changed, 37 insertions(+), 29 deletions(-) diff --git a/src/main.js b/src/main.js index b930754..834dc65 100644 --- a/src/main.js +++ b/src/main.js @@ -8,13 +8,15 @@ const CONFIG_DEFAULTS = { urlCDN: URL_CDN_ROOT, // Get the Worker code corresponding to the current Aioli version urlAioli: `${URL_CDN_ROOT}/aioli/${pkg.version}/aioli.worker.js`, - // Various folder paths use in the virtual file system + // Folder to use for mounting the shared filesystem dirShared: "/shared", // Folder to use for mounting File/Blob objects to the virtual file system dirMounted: "/mnt", - // Folder to use for mounting URLs lazily - dirURLs: "/urls", + // Folder to use for symlinks (basically, we make a symlink to each file mounted on WORKERFS + // so that operations like "samtools index" don't crash due to the read-only nature of WORKERS). + // Also mount URLs lazily in that folder. + dirData: "/data", }; // Class: 1 object = 1 worker; user can decide if they want tools running in separate threads or all of them in one diff --git a/src/worker.js b/src/worker.js index 11aedda..e3a2d50 100644 --- a/src/worker.js +++ b/src/worker.js @@ -5,8 +5,7 @@ const aioli = { // Configuration tools: [], // Genomics tools that are available to use in this WebWorker config: {}, // See main.js for defaults - files: [], // File objects that represent local user files we mount to a virtual filesystem - blobs: [], // Blob objects mounted to a virtual filesystem. Format: { name: "blob.txt", data: } + files: [], // File/Blob objects that represent local user files we mount to a virtual filesystem // ========================================================================= // Initialize the WebAssembly module(s) @@ -76,9 +75,15 @@ const aioli = { // ----------------------------------------------------------------- // The first tool we initialize has the main filesystem, which other tools will mount - if(i != 0) + const FS = tool.module.FS; + if(i == 0) { - const FS = tool.module.FS; + FS.mkdir(aioli.config.dirData, 0o777); + FS.mkdir(aioli.config.dirMounted, 0o777); + + // Set the working directory to be that mount folder for convenience + FS.chdir(aioli.config.dirData); + } else { FS.mkdir(aioli.config.dirShared); FS.mount(tool.module.PROXYFS, { root: "/", @@ -86,7 +91,7 @@ const aioli = { }, aioli.config.dirShared); // Set the working directory to be that mount folder for convenience - FS.chdir(aioli.config.dirShared); + FS.chdir(`${aioli.config.dirShared}${aioli.config.dirData}`); } } @@ -101,53 +106,54 @@ const aioli = { // ========================================================================= mount(files) { - let mountPaths = []; const FS = aioli.tools[0].module.FS; const dirMounted = aioli.config.dirMounted; - const dirURLs = aioli.config.dirURLs; + const dirData = aioli.config.dirData; // Input validation. Note that FileList is not an array so we can't use Array.isArray() but it does have a // length attribute. So do strings, which is why we explicitly check for those. - let toMountFiles = [], toMountBlobs = []; + let toMountFiles = [], toSymlink = [], mountPaths = []; if(!files?.length || typeof files === "string") files = [ files ]; // Sort files by type: File vs. Blob vs. URL for(let file of files) { - // Handle File objects - if(file instanceof File) { + // Handle File/Blob objects + // Blob formats: { name: "filename.txt", data: new Blob(['blob data']) } + if(file instanceof File || (file?.data instanceof Blob && file.name)) + { toMountFiles.push(file); - mountPaths.push(`${dirMounted}/${file.name}`); - } - // Handle Blob objects { name: "filename.txt", data: new Blob(['blob data']) } - else if(file?.data instanceof Blob && file.name) { - toMountBlobs.push(file); - mountPaths.push(`${dirMounted}/${file.name}`); - } + + // Track paths + const paths = { + oldpath: `${dirMounted}/${file.name}`, + newpath: `${dirData}/${file.name}` + }; + toSymlink.push(paths); + mountPaths.push(paths.oldpath); + // Handle URLs: mount "https://website.com/some/path.js" to "/urls/website.com-some-path.js") - else if(typeof file == "string" && file.startsWith("http")) { + } else if(typeof file == "string" && file.startsWith("http")) { const fileName = file.split("//").pop().replace(/\//g, "-"); - FS.createLazyFile(dirURLs, fileName, file, true, true); - mountPaths.push(`${dirURLs}/${fileName}`); + FS.createLazyFile(dirData, fileName, file, true, true); + mountPaths.push(`${dirData}/${fileName}`); + // Otherwise, incorrect data provided } else { throw "Cannot mount file(s) specified. Must be a File, Blob, or a URL string."; } } - aioli.files = aioli.files.concat(toMountFiles); - aioli.blobs = aioli.blobs.concat(toMountBlobs); // Unmount and remount Files and Blobs since WORKERFS is read-only (i.e. can only mount a folder once) if(FS.isDir(dirMounted)) FS.unmount(dirMounted); - else - FS.mkdir(dirMounted, 0o777); // Mount File & Blob objects + aioli.files = aioli.files.concat(toMountFiles); FS.mount(aioli.tools[0].module.WORKERFS, { - files: aioli.files, - blobs: aioli.blobs + files: aioli.files.filter(f => f instanceof File), + blobs: aioli.files.filter(f => f?.data instanceof Blob) }, dirMounted); return mountPaths; From 4e544d9216430763a0b359c9dac02e2b111ac074 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 18:55:33 -0700 Subject: [PATCH 19/47] Create symlinks when mounting files so that tools that rely on having access to a writeable folder still work (e.g. samtools index) --- src/worker.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/worker.js b/src/worker.js index e3a2d50..2226fc2 100644 --- a/src/worker.js +++ b/src/worker.js @@ -156,6 +156,12 @@ const aioli = { blobs: aioli.files.filter(f => f?.data instanceof Blob) }, dirMounted); + + // Create symlinks for convenience + toSymlink.map(d => { + FS.symlink(d.oldpath, d.newpath); + }) + return mountPaths; }, From d80eb9acdde78e4e67b3f9ea51ece07dead19153 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 18:59:25 -0700 Subject: [PATCH 20/47] Cleanup --- src/worker.js | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/worker.js b/src/worker.js index 2226fc2..cc812f6 100644 --- a/src/worker.js +++ b/src/worker.js @@ -6,6 +6,7 @@ const aioli = { tools: [], // Genomics tools that are available to use in this WebWorker config: {}, // See main.js for defaults files: [], // File/Blob objects that represent local user files we mount to a virtual filesystem + fs: {}, // Main WebAssembly module's filesystem (equivalent to aioli.tools[0].module.FS) // ========================================================================= // Initialize the WebAssembly module(s) @@ -78,16 +79,20 @@ const aioli = { const FS = tool.module.FS; if(i == 0) { + // Create needed folders FS.mkdir(aioli.config.dirData, 0o777); FS.mkdir(aioli.config.dirMounted, 0o777); // Set the working directory to be that mount folder for convenience FS.chdir(aioli.config.dirData); + + // Track this filesystem so we don't need to do aioli.tools[0].module.FS every time + aioli.fs = FS; } else { FS.mkdir(aioli.config.dirShared); FS.mount(tool.module.PROXYFS, { root: "/", - fs: aioli.tools[0].module.FS // mount the first tool's filesystem + fs: aioli.fs // mount the first tool's filesystem }, aioli.config.dirShared); // Set the working directory to be that mount folder for convenience @@ -106,7 +111,6 @@ const aioli = { // ========================================================================= mount(files) { - const FS = aioli.tools[0].module.FS; const dirMounted = aioli.config.dirMounted; const dirData = aioli.config.dirData; @@ -131,12 +135,12 @@ const aioli = { newpath: `${dirData}/${file.name}` }; toSymlink.push(paths); - mountPaths.push(paths.oldpath); + mountPaths.push(paths.newpath); // Handle URLs: mount "https://website.com/some/path.js" to "/urls/website.com-some-path.js") } else if(typeof file == "string" && file.startsWith("http")) { const fileName = file.split("//").pop().replace(/\//g, "-"); - FS.createLazyFile(dirData, fileName, file, true, true); + aioli.fs.createLazyFile(dirData, fileName, file, true, true); mountPaths.push(`${dirData}/${fileName}`); // Otherwise, incorrect data provided @@ -146,20 +150,19 @@ const aioli = { } // Unmount and remount Files and Blobs since WORKERFS is read-only (i.e. can only mount a folder once) - if(FS.isDir(dirMounted)) - FS.unmount(dirMounted); + if(aioli.fs.isDir(dirMounted)) + aioli.fs.unmount(dirMounted); // Mount File & Blob objects aioli.files = aioli.files.concat(toMountFiles); - FS.mount(aioli.tools[0].module.WORKERFS, { + aioli.fs.mount(aioli.tools[0].module.WORKERFS, { files: aioli.files.filter(f => f instanceof File), blobs: aioli.files.filter(f => f?.data instanceof Blob) }, dirMounted); - // Create symlinks for convenience toSymlink.map(d => { - FS.symlink(d.oldpath, d.newpath); + aioli.fs.symlink(d.oldpath, d.newpath); }) return mountPaths; From 8b0e1e263dadd86bbbf14eaf6bf089b9ea1c0a50 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 19:00:17 -0700 Subject: [PATCH 21/47] Cleanup --- src/worker.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/worker.js b/src/worker.js index cc812f6..2f28ff9 100644 --- a/src/worker.js +++ b/src/worker.js @@ -192,7 +192,6 @@ const aioli = { // Run command. Stdout/Stderr will be saved to "tool.stdout"/"tool.stderr" (see "print" and "printErr" above) tool.module.callMain(args); - // TODO: // Re-open stdout/stderr (fix error "error closing standard output: -1") tool.module.FS.streams[1] = tool.module.FS.open("/dev/stdout", "w"); tool.module.FS.streams[2] = tool.module.FS.open("/dev/stderr", "w"); @@ -201,9 +200,7 @@ const aioli = { stdout: tool.stdout, stderr: tool.stderr } - }, - // - // TODO: ls, cat, download + } }; Comlink.expose(aioli); From 5f0fc7a191fa1480586fc0ce92cb8fb08629bcb1 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Mon, 19 Jul 2021 20:37:59 -0700 Subject: [PATCH 22/47] Make sure to unmount WORKERFS before remounting, and unlink symlinks before creating new ones --- src/worker.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/worker.js b/src/worker.js index 2f28ff9..c341c67 100644 --- a/src/worker.js +++ b/src/worker.js @@ -150,8 +150,9 @@ const aioli = { } // Unmount and remount Files and Blobs since WORKERFS is read-only (i.e. can only mount a folder once) - if(aioli.fs.isDir(dirMounted)) + try { aioli.fs.unmount(dirMounted); + } catch(e) {} // Mount File & Blob objects aioli.files = aioli.files.concat(toMountFiles); @@ -162,6 +163,9 @@ const aioli = { // Create symlinks for convenience toSymlink.map(d => { + try { + aioli.fs.unlink(d.newpath); + } catch(e) {} aioli.fs.symlink(d.oldpath, d.newpath); }) From 5dfee77f62b565c3d3840820e2f7126477d71382 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Tue, 20 Jul 2021 11:00:24 -0700 Subject: [PATCH 23/47] Set program name so it doesn't default to "thisProgram" --- src/worker.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/worker.js b/src/worker.js index c341c67..9564f0a 100644 --- a/src/worker.js +++ b/src/worker.js @@ -59,6 +59,9 @@ const aioli = { // All biowasm modules export the variable "Module" so assign it self.importScripts(`${tool.urlPrefix}/${tool.program}.js`); tool.module = await Module({ + // By default, tool name is hardcoded as "./this.program" + thisProgram: tool.program, + // Used by Emscripten to find path to .wasm / .data files locateFile: (path, prefix) => `${tool.urlPrefix}/${path}`, From 287d124581fb1aebbcf854c43cfff2b3eee8748b Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Tue, 20 Jul 2021 16:17:03 -0700 Subject: [PATCH 24/47] Cleanup --- src/worker.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/worker.js b/src/worker.js index 9564f0a..2bbe504 100644 --- a/src/worker.js +++ b/src/worker.js @@ -80,13 +80,12 @@ const aioli = { // The first tool we initialize has the main filesystem, which other tools will mount const FS = tool.module.FS; - if(i == 0) - { + if(i == 0) { // Create needed folders FS.mkdir(aioli.config.dirData, 0o777); FS.mkdir(aioli.config.dirMounted, 0o777); - // Set the working directory to be that mount folder for convenience + // Set the working directory for convenience FS.chdir(aioli.config.dirData); // Track this filesystem so we don't need to do aioli.tools[0].module.FS every time @@ -190,12 +189,12 @@ const aioli = { // Does it match a program we've already loaded? const tools = aioli.tools.filter(d => d.program == toolName); if(tools.length == 0) - throw `Program ${toolName} not found.`; + throw `Program ${toolName} not found.`; // Prepare tool const tool = tools[0]; tool.stdout = ""; tool.stderr = ""; - + // Run command. Stdout/Stderr will be saved to "tool.stdout"/"tool.stderr" (see "print" and "printErr" above) tool.module.callMain(args); From 9cc9d9c3d0887b5290cf51668a097648fb15a0dd Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Tue, 20 Jul 2021 16:17:55 -0700 Subject: [PATCH 25/47] Load base module along with the rest of the tools needed --- src/main.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main.js b/src/main.js index 834dc65..deb720f 100644 --- a/src/main.js +++ b/src/main.js @@ -8,6 +8,8 @@ const CONFIG_DEFAULTS = { urlCDN: URL_CDN_ROOT, // Get the Worker code corresponding to the current Aioli version urlAioli: `${URL_CDN_ROOT}/aioli/${pkg.version}/aioli.worker.js`, + // Where we can find the base biowasm module (only modify this for local development) + urlBaseModule: null, // Folder to use for mounting the shared filesystem dirShared: "/shared", @@ -33,6 +35,13 @@ export default class Aioli // Overwrite default config if specified config = Object.assign({}, CONFIG_DEFAULTS, config); + // Add base module to list of tools to initialize + tools = [{ + module: "base", + version: pkg.version, + urlPrefix: config.urlBaseModule + }, ...tools]; + // Create the WebWorker const worker = new Worker(config.urlAioli); const aioli = Comlink.wrap(worker); From 406f961b86477acc603db3ddd83618c889d97524 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Tue, 20 Jul 2021 16:21:59 -0700 Subject: [PATCH 26/47] Add some logging when debug=true --- src/main.js | 3 +++ src/worker.js | 11 +++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main.js b/src/main.js index deb720f..1a75c42 100644 --- a/src/main.js +++ b/src/main.js @@ -19,6 +19,9 @@ const CONFIG_DEFAULTS = { // so that operations like "samtools index" don't crash due to the read-only nature of WORKERS). // Also mount URLs lazily in that folder. dirData: "/data", + + // Toggle debug console messages + debug: true }; // Class: 1 object = 1 worker; user can decide if they want tools running in separate threads or all of them in one diff --git a/src/worker.js b/src/worker.js index 2bbe504..380b4cf 100644 --- a/src/worker.js +++ b/src/worker.js @@ -41,15 +41,17 @@ const aioli = { if(!tool.program) tool.program = tool.module; + aioli.log(`Loading ${tool.program} version=${tool.version}...`); + // SIMD and Threads are WebAssembly features that aren't enabled on all browsers. In those cases, we // load the right version of the .wasm binaries based on what is supported by the user's browser. const toolConfig = await fetch(`${tool.urlPrefix}/config.json`).then(d => d.json()); if(toolConfig["wasm-features"]?.includes("simd") && !await simd()) { - console.warn(`[Aioli] SIMD is not supported in this browser. Loading slower non-SIMD version of ${tool.program}.`); + console.warn(`[biowasm] SIMD is not supported in this browser. Loading slower non-SIMD version of ${tool.program}.`); tool.program += "-nosimd"; } if(toolConfig["wasm-features"]?.includes("threads") && !await threads()) { - console.warn(`[Aioli] Threads are not supported in this browser. Loading slower non-threaded version of ${tool.program}.`); + console.warn(`[biowasm] Threads are not supported in this browser. Loading slower non-threaded version of ${tool.program}.`); tool.program += "-nothreads"; } @@ -206,6 +208,11 @@ const aioli = { stdout: tool.stdout, stderr: tool.stderr } + }, + + log(message) { + if(aioli.config.debug) + console.log(`%c[WebWorker]%c${message}`, "font-weight:bold"); } }; From 04368062f4595cda5c9d573ce9af7b2ebe747ebd Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Tue, 20 Jul 2021 16:22:34 -0700 Subject: [PATCH 27/47] Symlinks: small fix - need to create them from a non-base module (doesn't work if create them from aioli.tools[0]) --- src/worker.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/worker.js b/src/worker.js index 380b4cf..e1d49a2 100644 --- a/src/worker.js +++ b/src/worker.js @@ -168,9 +168,10 @@ const aioli = { // Create symlinks for convenience toSymlink.map(d => { try { - aioli.fs.unlink(d.newpath); + aioli.tools[1].module.FS.unlink(`/shared${d.newpath}`) } catch(e) {} - aioli.fs.symlink(d.oldpath, d.newpath); + aioli.log(`Create symlink: /shared${d.newpath} --> /shared${d.oldpath}`) + aioli.tools[1].module.FS.symlink(`/shared${d.oldpath}`, `/shared${d.newpath}`); }) return mountPaths; From b28a3a25b6053d975f0ec259f552e7e5a97c74e9 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Tue, 20 Jul 2021 16:33:17 -0700 Subject: [PATCH 28/47] Add more logging --- src/worker.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/worker.js b/src/worker.js index e1d49a2..4c0e6ff 100644 --- a/src/worker.js +++ b/src/worker.js @@ -41,7 +41,7 @@ const aioli = { if(!tool.program) tool.program = tool.module; - aioli.log(`Loading ${tool.program} version=${tool.version}...`); + aioli.log(`Loading ${tool.program} version=${tool.version}`); // SIMD and Threads are WebAssembly features that aren't enabled on all browsers. In those cases, we // load the right version of the .wasm binaries based on what is supported by the user's browser. @@ -104,6 +104,7 @@ const aioli = { } } + aioli.log("Ready"); return true; }, @@ -123,6 +124,7 @@ const aioli = { let toMountFiles = [], toSymlink = [], mountPaths = []; if(!files?.length || typeof files === "string") files = [ files ]; + aioli.log(`Mounting ${files.length} files`); // Sort files by type: File vs. Blob vs. URL for(let file of files) @@ -170,7 +172,7 @@ const aioli = { try { aioli.tools[1].module.FS.unlink(`/shared${d.newpath}`) } catch(e) {} - aioli.log(`Create symlink: /shared${d.newpath} --> /shared${d.oldpath}`) + aioli.log(`Creating symlink: /shared${d.newpath} --> /shared${d.oldpath}`) aioli.tools[1].module.FS.symlink(`/shared${d.oldpath}`, `/shared${d.newpath}`); }) @@ -183,6 +185,7 @@ const aioli = { async exec(command) { // Input validation + aioli.log(`Executing: %c${command}%c`, "color:darkblue; font-weight:bold"); if(!command) throw "Expecting a command"; // Extract tool name @@ -211,9 +214,17 @@ const aioli = { } }, + // ========================================================================= + // Utilities + // ========================================================================= log(message) { - if(aioli.config.debug) - console.log(`%c[WebWorker]%c${message}`, "font-weight:bold"); + if(!aioli.config.debug) + return; + + // Support custom %c arguments + let args = [...arguments]; + args.shift(); + console.log(`%c[WebWorker]%c ${message}`, "font-weight:bold", "", ...args); } }; From b026a001d6eb92a2f43144674b4e80e7d2fdcbda Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Tue, 20 Jul 2021 16:54:00 -0700 Subject: [PATCH 29/47] Rename log to _log so it's clear it's meant for internal WebWorker usage --- src/worker.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/worker.js b/src/worker.js index 4c0e6ff..33cb4de 100644 --- a/src/worker.js +++ b/src/worker.js @@ -41,7 +41,7 @@ const aioli = { if(!tool.program) tool.program = tool.module; - aioli.log(`Loading ${tool.program} version=${tool.version}`); + aioli._log(`Loading ${tool.program} version=${tool.version}`); // SIMD and Threads are WebAssembly features that aren't enabled on all browsers. In those cases, we // load the right version of the .wasm binaries based on what is supported by the user's browser. @@ -104,7 +104,7 @@ const aioli = { } } - aioli.log("Ready"); + aioli._log("Ready"); return true; }, @@ -124,7 +124,7 @@ const aioli = { let toMountFiles = [], toSymlink = [], mountPaths = []; if(!files?.length || typeof files === "string") files = [ files ]; - aioli.log(`Mounting ${files.length} files`); + aioli._log(`Mounting ${files.length} files`); // Sort files by type: File vs. Blob vs. URL for(let file of files) @@ -172,7 +172,7 @@ const aioli = { try { aioli.tools[1].module.FS.unlink(`/shared${d.newpath}`) } catch(e) {} - aioli.log(`Creating symlink: /shared${d.newpath} --> /shared${d.oldpath}`) + aioli._log(`Creating symlink: /shared${d.newpath} --> /shared${d.oldpath}`) aioli.tools[1].module.FS.symlink(`/shared${d.oldpath}`, `/shared${d.newpath}`); }) @@ -185,7 +185,7 @@ const aioli = { async exec(command) { // Input validation - aioli.log(`Executing: %c${command}%c`, "color:darkblue; font-weight:bold"); + aioli._log(`Executing: %c${command}%c`, "color:darkblue; font-weight:bold"); if(!command) throw "Expecting a command"; // Extract tool name @@ -217,7 +217,7 @@ const aioli = { // ========================================================================= // Utilities // ========================================================================= - log(message) { + _log(message) { if(!aioli.config.debug) return; From 3bf3c6508e69c112bf3bef3346db720aba8cb452 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Tue, 20 Jul 2021 16:56:01 -0700 Subject: [PATCH 30/47] Add utilities for common file operations --- src/worker.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/worker.js b/src/worker.js index 33cb4de..ab52e1c 100644 --- a/src/worker.js +++ b/src/worker.js @@ -214,9 +214,52 @@ const aioli = { } }, + // ========================================================================= + // Utility functions for common file operations + // ========================================================================= + cat(path) { + return aioli._fileop("cat", path); + }, + ls(path) { + return aioli._fileop("ls", path); + }, + download(path) { + return aioli._fileop("download", path); + }, + // ========================================================================= // Utilities // ========================================================================= + _fileop(operation, path) { + aioli._log(`Running ${operation} ${path}`); + + // Check whether the file exists + const FS = aioli.tools[1].module.FS; + const info = FS.analyzePath(path); + if(!info.exists) + return false; + + // Execute operation of interest + switch (operation) { + case "cat": + return FS.readFile(path, { encoding: "utf8" }); + break; + + case "ls": + if(FS.isFile(info.object.mode)) + return FS.stat(path); + return FS.readdir(path); + break; + + case "download": + const blob = new Blob([ this.cat(path) ]); + return URL.createObjectURL(blob); + break; + } + + return false; + }, + _log(message) { if(!aioli.config.debug) return; From a48508b92f7c16fab0162a59d8ce7ea34294c12f Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Tue, 20 Jul 2021 16:59:28 -0700 Subject: [PATCH 31/47] For production builds, minify the code and don't include sourcemaps --- rollup.config.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/rollup.config.js b/rollup.config.js index 8a937aa..56992ac 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -4,23 +4,27 @@ import terser from "rollup-plugin-terser"; // Minify JS to save space import json from "@rollup/plugin-json"; // Allow us to import JSON from main.js import pkg from "./package.json"; +const production = !process.env.ROLLUP_WATCH; + export default [ // Browser-friendly UMD build { input: "src/main.js", output: { + sourcemap: !production, name: "Aioli", file: pkg.browser, format: "umd" }, - plugins: [ resolve(), commonjs(), terser.terser(), json() ] + plugins: [ resolve(), commonjs(), json(), production && terser.terser() ] }, // WebWorker { input: "src/worker.js", output: { + sourcemap: !production, file: pkg.worker, }, - plugins: [ resolve(), commonjs(), terser.terser(), json() ] + plugins: [ resolve(), commonjs(), json(), production && terser.terser() ] } ]; From 1ec79b5042d205ae807ea309a555e7965bd568d2 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Wed, 21 Jul 2021 07:22:41 -0700 Subject: [PATCH 32/47] Require user to specify a tool version; specifying "latest" for a bioinformatics tool is too error prone --- src/worker.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/worker.js b/src/worker.js index ab52e1c..6651842 100644 --- a/src/worker.js +++ b/src/worker.js @@ -12,9 +12,9 @@ const aioli = { // Initialize the WebAssembly module(s) // Supports array of tool info, where each tool is represented by: // { - // module: "seq-align", - // program: "smith_waterman", // Optional, default="module" name. Only use this for tools with multiple subtools - // version: "latest", // Optional, default="latest" + // module: "samtools", // Required + // version: "1.10", // Required + // program: "samtools", // Optional, default="module" name. Only use this for tools with multiple subtools // urlPrefix: "https://cdn.biowasm.com/v2/...", // Optional, default=biowasm CDN. Only use for local Aioli development // }, // ========================================================================= @@ -32,16 +32,12 @@ const aioli = { if(!tool.urlPrefix) tool.urlPrefix = `${aioli.config.urlCDN}/${tool.module}/${tool.version}`; - // Unless specified, we want to use the latest version of a tool - if(!tool.version) - tool.version = "latest"; - // In most cases, the program is the same as the module, but there are exceptions. For example, for the // module "seq-align", program can be "needleman_wunsch", "smith_waterman", or "lcs". if(!tool.program) tool.program = tool.module; - aioli._log(`Loading ${tool.program} version=${tool.version}`); + aioli._log(`Loading ${tool.program} v${tool.version}`); // SIMD and Threads are WebAssembly features that aren't enabled on all browsers. In those cases, we // load the right version of the .wasm binaries based on what is supported by the user's browser. From 379c70c415fc9050cd26d7a41b1fc783facb3586 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Wed, 21 Jul 2021 07:58:28 -0700 Subject: [PATCH 33/47] Simplify/Cleanup mounting code --- src/worker.js | 50 ++++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/src/worker.js b/src/worker.js index 6651842..e0d002f 100644 --- a/src/worker.js +++ b/src/worker.js @@ -56,6 +56,7 @@ const aioli = { // ----------------------------------------------------------------- // All biowasm modules export the variable "Module" so assign it self.importScripts(`${tool.urlPrefix}/${tool.program}.js`); + // Initialize the Emscripten module and pass along settings to overwrite tool.module = await Module({ // By default, tool name is hardcoded as "./this.program" thisProgram: tool.program, @@ -76,23 +77,23 @@ const aioli = { // Setup shared virtual file system // ----------------------------------------------------------------- - // The first tool we initialize has the main filesystem, which other tools will mount + // The first tool we initialize (i.e. base module) has the main filesystem, which other tools will mount const FS = tool.module.FS; if(i == 0) { // Create needed folders FS.mkdir(aioli.config.dirData, 0o777); FS.mkdir(aioli.config.dirMounted, 0o777); - // Set the working directory for convenience FS.chdir(aioli.config.dirData); // Track this filesystem so we don't need to do aioli.tools[0].module.FS every time aioli.fs = FS; } else { + // PROXYFS allows use to point "/shared" to the base module's filesystem "/" FS.mkdir(aioli.config.dirShared); FS.mount(tool.module.PROXYFS, { root: "/", - fs: aioli.fs // mount the first tool's filesystem + fs: aioli.fs }, aioli.config.dirShared); // Set the working directory to be that mount folder for convenience @@ -112,12 +113,13 @@ const aioli = { // ========================================================================= mount(files) { - const dirMounted = aioli.config.dirMounted; const dirData = aioli.config.dirData; + const dirShared = aioli.config.dirShared; + const dirMounted = aioli.config.dirMounted; // Input validation. Note that FileList is not an array so we can't use Array.isArray() but it does have a // length attribute. So do strings, which is why we explicitly check for those. - let toMountFiles = [], toSymlink = [], mountPaths = []; + let toMount = [], mountedPaths = []; if(!files?.length || typeof files === "string") files = [ files ]; aioli._log(`Mounting ${files.length} files`); @@ -127,23 +129,17 @@ const aioli = { { // Handle File/Blob objects // Blob formats: { name: "filename.txt", data: new Blob(['blob data']) } - if(file instanceof File || (file?.data instanceof Blob && file.name)) - { - toMountFiles.push(file); - - // Track paths - const paths = { - oldpath: `${dirMounted}/${file.name}`, - newpath: `${dirData}/${file.name}` - }; - toSymlink.push(paths); - mountPaths.push(paths.newpath); + if(file instanceof File || (file?.data instanceof Blob && file.name)) { + toMount.push(file); + mountedPaths.push(file.name); // Handle URLs: mount "https://website.com/some/path.js" to "/urls/website.com-some-path.js") } else if(typeof file == "string" && file.startsWith("http")) { + // Mount a URL "lazily" to the file system, i.e. don't download any of it, but will automatically do + // HTTP Range requests when a tool requests a subset of bytes from that file. const fileName = file.split("//").pop().replace(/\//g, "-"); aioli.fs.createLazyFile(dirData, fileName, file, true, true); - mountPaths.push(`${dirData}/${fileName}`); + mountedPaths.push(fileName); // Otherwise, incorrect data provided } else { @@ -157,22 +153,28 @@ const aioli = { } catch(e) {} // Mount File & Blob objects - aioli.files = aioli.files.concat(toMountFiles); + aioli.files = aioli.files.concat(toMount); aioli.fs.mount(aioli.tools[0].module.WORKERFS, { files: aioli.files.filter(f => f instanceof File), blobs: aioli.files.filter(f => f?.data instanceof Blob) }, dirMounted); - // Create symlinks for convenience - toSymlink.map(d => { + // Create symlinks for convenience. The folder "dirMounted" is a WORKERFS, which is read-only. By adding + // symlinks to a separate writeable folder "dirData", we can support commands like "samtools index abc.bam", + // which create a "abc.bam.bai" file in the same path where the .bam file is created. + toMount.map(file => { + const oldpath = `${dirShared}${dirMounted}/${file.name}`; + const newpath = `${dirShared}${dirData}/${file.name}`; try { - aioli.tools[1].module.FS.unlink(`/shared${d.newpath}`) + aioli.tools[1].module.FS.unlink(newpath); } catch(e) {} - aioli._log(`Creating symlink: /shared${d.newpath} --> /shared${d.oldpath}`) - aioli.tools[1].module.FS.symlink(`/shared${d.oldpath}`, `/shared${d.newpath}`); + aioli._log(`Creating symlink: ${newpath} --> ${oldpath}`) + + // Create symlink within first module's filesystem (note: tools[0] is always the "base" biowasm module) + aioli.tools[1].module.FS.symlink(oldpath, newpath); }) - return mountPaths; + return mountedPaths.map(path => `${dirShared}${dirData}/${path}`); }, // ========================================================================= From 567c12a837f24e2203b3eb9117dce74e6c014eba Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Wed, 21 Jul 2021 08:02:08 -0700 Subject: [PATCH 34/47] More cleanup --- src/worker.js | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/worker.js b/src/worker.js index e0d002f..2d1c68d 100644 --- a/src/worker.js +++ b/src/worker.js @@ -20,6 +20,10 @@ const aioli = { // ========================================================================= async init() { + // The base biowasm module is always there ==> expect at least 2 modules + if(aioli.tools.length < 2) + throw "Expecting at least 1 tool."; + // Load each tool for(let i in aioli.tools) { @@ -186,11 +190,11 @@ const aioli = { aioli._log(`Executing: %c${command}%c`, "color:darkblue; font-weight:bold"); if(!command) throw "Expecting a command"; - // Extract tool name + // Extract tool name and arguments const args = command.split(" "); const toolName = args.shift(); - // Does it match a program we've already loaded? + // Does it match a program we've already initialized? const tools = aioli.tools.filter(d => d.program == toolName); if(tools.length == 0) throw `Program ${toolName} not found.`; @@ -209,7 +213,7 @@ const aioli = { return { stdout: tool.stdout, stderr: tool.stderr - } + }; }, // ========================================================================= @@ -218,15 +222,17 @@ const aioli = { cat(path) { return aioli._fileop("cat", path); }, + ls(path) { return aioli._fileop("ls", path); }, + download(path) { return aioli._fileop("download", path); }, // ========================================================================= - // Utilities + // Internal utilities // ========================================================================= _fileop(operation, path) { aioli._log(`Running ${operation} ${path}`); @@ -234,25 +240,24 @@ const aioli = { // Check whether the file exists const FS = aioli.tools[1].module.FS; const info = FS.analyzePath(path); - if(!info.exists) + if(!info.exists) { + aioli._log(`File ${path} not found.`); return false; + } // Execute operation of interest switch (operation) { case "cat": return FS.readFile(path, { encoding: "utf8" }); - break; case "ls": if(FS.isFile(info.object.mode)) return FS.stat(path); return FS.readdir(path); - break; case "download": const blob = new Blob([ this.cat(path) ]); return URL.createObjectURL(blob); - break; } return false; From 18c9243066d6eb90b7c4be8dc79b02df9f6e0e5c Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Wed, 21 Jul 2021 08:32:29 -0700 Subject: [PATCH 35/47] Rename "module" to "tool" so it doesn't clash with Emscripten "module" --- src/worker.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/worker.js b/src/worker.js index 2d1c68d..09018ac 100644 --- a/src/worker.js +++ b/src/worker.js @@ -12,9 +12,9 @@ const aioli = { // Initialize the WebAssembly module(s) // Supports array of tool info, where each tool is represented by: // { - // module: "samtools", // Required + // tool: "samtools", // Required // version: "1.10", // Required - // program: "samtools", // Optional, default="module" name. Only use this for tools with multiple subtools + // program: "samtools", // Optional, default="tool" name. Only use this for tools with multiple subtools // urlPrefix: "https://cdn.biowasm.com/v2/...", // Optional, default=biowasm CDN. Only use for local Aioli development // }, // ========================================================================= @@ -34,12 +34,12 @@ const aioli = { // ----------------------------------------------------------------- // By default, use the CDN path, but also accept custom paths for each tool if(!tool.urlPrefix) - tool.urlPrefix = `${aioli.config.urlCDN}/${tool.module}/${tool.version}`; + tool.urlPrefix = `${aioli.config.urlCDN}/${tool.tool}/${tool.version}`; - // In most cases, the program is the same as the module, but there are exceptions. For example, for the - // module "seq-align", program can be "needleman_wunsch", "smith_waterman", or "lcs". + // In most cases, the program is the same as the tool name, but there are exceptions. For example, for the + // tool "seq-align", program can be "needleman_wunsch", "smith_waterman", or "lcs". if(!tool.program) - tool.program = tool.module; + tool.program = tool.tool; aioli._log(`Loading ${tool.program} v${tool.version}`); From 3964a48618eec1fec10b838e88374e83a872370e Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Wed, 21 Jul 2021 08:33:18 -0700 Subject: [PATCH 36/47] Mount each tool's "--preloaded" folder onto other tools' filesystems with PROXYFS --- src/main.js | 2 +- src/worker.js | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/main.js b/src/main.js index 1a75c42..c6627af 100644 --- a/src/main.js +++ b/src/main.js @@ -40,7 +40,7 @@ export default class Aioli // Add base module to list of tools to initialize tools = [{ - module: "base", + tool: "base", version: pkg.version, urlPrefix: config.urlBaseModule }, ...tools]; diff --git a/src/worker.js b/src/worker.js index 09018ac..4dcd3ad 100644 --- a/src/worker.js +++ b/src/worker.js @@ -105,6 +105,41 @@ const aioli = { } } + // Some tools have preloaded files mounted to their filesystems to hold sample data (e.g. /samtools/examples/). + // By default, those are only accessible from the filesystem of the respective tool. Here, we want to allow + // other modules to also have access to those sample data files. + for(let i in aioli.tools) + { + // Skip base module + if(i == 0) + continue; + + for(let j in aioli.tools) + { + // Skip base module and self + if(j == 0 || i == j) + continue; + + const fsSrc = aioli.tools[i].module.FS; + const fsDst = aioli.tools[j].module.FS; + + // Make sure source tool actually has such a folder (must be the same as the "module", not "program"). + // Skip if the destination filesystem already has that folder (could theoretically happen if initialize) + // two copies of the same module. + const path = `/${aioli.tools[i].tool}`; + if(!fsSrc.analyzePath(path).exists || fsDst.analyzePath(path).exists) + continue; + + aioli._log(`Mounting ${path} onto ${aioli.tools[j].tool} filesystem`); + fsDst.mkdir(path); + fsDst.mount(aioli.tools[0].module.PROXYFS, { + root: path, + fs: fsSrc + }, path); + + } + } + aioli._log("Ready"); return true; }, From b2f340d30735e9f1825182af6a96eddbff04b72c Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Wed, 21 Jul 2021 09:42:44 -0700 Subject: [PATCH 37/47] Cleanup --- src/main.js | 2 +- src/worker.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main.js b/src/main.js index c6627af..0051fac 100644 --- a/src/main.js +++ b/src/main.js @@ -21,7 +21,7 @@ const CONFIG_DEFAULTS = { dirData: "/data", // Toggle debug console messages - debug: true + debug: false }; // Class: 1 object = 1 worker; user can decide if they want tools running in separate threads or all of them in one diff --git a/src/worker.js b/src/worker.js index 4dcd3ad..44685b3 100644 --- a/src/worker.js +++ b/src/worker.js @@ -136,7 +136,6 @@ const aioli = { root: path, fs: fsSrc }, path); - } } From cd920a3f484d2091befe5c3b7775de0681b5578c Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Wed, 21 Jul 2021 09:46:01 -0700 Subject: [PATCH 38/47] Add cypress and wasm modules to test with --- cypress.json | 7 + package.json | 3 +- tests/data/base/base.js | 21 + tests/data/base/base.wasm | Bin 0 -> 1716 bytes tests/data/base/config.json | 1 + tests/data/samtools/config.json | 1 + tests/data/samtools/samtools.data | Bin 0 -> 120057 bytes tests/data/samtools/samtools.js | 7340 +++++++++++++++++++++++++++++ tests/data/samtools/samtools.wasm | Bin 0 -> 1813466 bytes 9 files changed, 7372 insertions(+), 1 deletion(-) create mode 100644 cypress.json create mode 100644 tests/data/base/base.js create mode 100755 tests/data/base/base.wasm create mode 100644 tests/data/base/config.json create mode 100644 tests/data/samtools/config.json create mode 100644 tests/data/samtools/samtools.data create mode 100644 tests/data/samtools/samtools.js create mode 100755 tests/data/samtools/samtools.wasm diff --git a/cypress.json b/cypress.json new file mode 100644 index 0000000..8237d6f --- /dev/null +++ b/cypress.json @@ -0,0 +1,7 @@ +{ + "integrationFolder": "tests/integration", + "fixturesFolder": false, + "pluginsFile": false, + "supportFile": false, + "defaultCommandTimeout": 40000 +} \ No newline at end of file diff --git a/package.json b/package.json index bcd5788..f5c4d60 100644 --- a/package.json +++ b/package.json @@ -19,13 +19,14 @@ "@rollup/plugin-commonjs": "^11.0.1", "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^7.0.0", + "cypress": "^8.0.0", "rollup": "^1.29.0", "rollup-plugin-terser": "^7.0.2" }, "scripts": { "build": "rollup -c", "dev": "rollup -c -w", - "test": "node test/test.js", + "test": "cypress open", "pretest": "npm run build" }, "files": [ diff --git a/tests/data/base/base.js b/tests/data/base/base.js new file mode 100644 index 0000000..831e227 --- /dev/null +++ b/tests/data/base/base.js @@ -0,0 +1,21 @@ + +var Module = (function() { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; + return ( +function(Module) { + Module = Module || {}; + +var Module=typeof Module!=="undefined"?Module:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=function readAsync(filename,onload,onerror){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);nodeFS["readFile"](filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}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;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="base.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["c"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["f"];addOnInit(Module["asm"]["d"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=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;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{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}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}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;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){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)}}}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.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){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){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size},write:function(stream,buffer,offset,length,position){throw new FS.ErrnoError(29)},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(28)}return position}}};var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var PROXYFS={mount:function(mount){return PROXYFS.createNode(null,"/",mount.opts.fs.lstat(mount.opts.root).mode,0)},createNode:function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=PROXYFS.node_ops;node.stream_ops=PROXYFS.stream_ops;return node},realPath:function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)},node_ops:{getattr:function(node){var path=PROXYFS.realPath(node);var stat;try{stat=node.mount.opts.fs.lstat(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}},setattr:function(node,attr){var path=PROXYFS.realPath(node);try{if(attr.mode!==undefined){node.mount.opts.fs.chmod(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);node.mount.opts.fs.utime(path,date,date)}if(attr.size!==undefined){node.mount.opts.fs.truncate(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},lookup:function(parent,name){try{var path=PATH.join2(PROXYFS.realPath(parent),name);var mode=parent.mount.opts.fs.lstat(path).mode;var node=PROXYFS.createNode(parent,name,mode);return node}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},mknod:function(parent,name,mode,dev){var node=PROXYFS.createNode(parent,name,mode,dev);var path=PROXYFS.realPath(node);try{if(FS.isDir(node.mode)){node.mount.opts.fs.mkdir(path,node.mode)}else{node.mount.opts.fs.writeFile(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node},rename:function(oldNode,newDir,newName){var oldPath=PROXYFS.realPath(oldNode);var newPath=PATH.join2(PROXYFS.realPath(newDir),newName);try{oldNode.mount.opts.fs.rename(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},unlink:function(parent,name){var path=PATH.join2(PROXYFS.realPath(parent),name);try{parent.mount.opts.fs.unlink(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},rmdir:function(parent,name){var path=PATH.join2(PROXYFS.realPath(parent),name);try{parent.mount.opts.fs.rmdir(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readdir:function(node){var path=PROXYFS.realPath(node);try{return node.mount.opts.fs.readdir(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},symlink:function(parent,newName,oldPath){var newPath=PATH.join2(PROXYFS.realPath(parent),newName);try{parent.mount.opts.fs.symlink(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readlink:function(node){var path=PROXYFS.realPath(node);try{return node.mount.opts.fs.readlink(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}},stream_ops:{open:function(stream){var path=PROXYFS.realPath(stream.node);try{stream.nfd=stream.node.mount.opts.fs.open(path,stream.flags)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},close:function(stream){try{stream.node.mount.opts.fs.close(stream.nfd)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},read:function(stream,buffer,offset,length,position){try{return stream.node.mount.opts.fs.read(stream.nfd,buffer,offset,length,position)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},write:function(stream,buffer,offset,length,position){try{return stream.node.mount.opts.fs.write(stream.nfd,buffer,offset,length,position)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=stream.node.node_ops.getattr(stream.node);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(path,opts){path=PATH_FS.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){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"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(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!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}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.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};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";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;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 asmLibraryArg={"b":_emscripten_memcpy_big,"a":_fd_write};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["d"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["e"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;Module["callMain"]=callMain;Module["FS"]=FS;Module["WORKERFS"]=WORKERFS;Module["PROXYFS"]=PROXYFS;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true)}catch(e){if(e instanceof ExitStatus||e=="unwind"){return}var toLog=e;if(e&&typeof e==="object"&&e.stack){toLog=[e,e.stack]}err("exception thrown: "+toLog);quit_(1,e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=false;if(Module["noInitialRun"])shouldRunNow=false;run(); + + + return Module.ready +} +); +})(); +if (typeof exports === 'object' && typeof module === 'object') + module.exports = Module; +else if (typeof define === 'function' && define['amd']) + define([], function() { return Module; }); +else if (typeof exports === 'object') + exports["Module"] = Module; diff --git a/tests/data/base/base.wasm b/tests/data/base/base.wasm new file mode 100755 index 0000000000000000000000000000000000000000..b25ab333e6b3da81e3cf3cdb636ee89db859c4d3 GIT binary patch literal 1716 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 1) { + thisProgram = process['argv'][1].replace(/\\/g, '/'); + } + + arguments_ = process['argv'].slice(2); + + // MODULARIZE will export the module in the proper place outside, we don't need to export here + + process['on']('uncaughtException', function(ex) { + // suppress ExitStatus exceptions from showing an error + if (!(ex instanceof ExitStatus)) { + throw ex; + } + }); + + process['on']('unhandledRejection', abort); + + quit_ = function(status, toThrow) { + if (keepRuntimeAlive()) { + process['exitCode'] = status; + throw toThrow; + } + process['exit'](status); + }; + + Module['inspect'] = function () { return '[Emscripten Module object]'; }; + +} else +if (ENVIRONMENT_IS_SHELL) { + + if ((typeof process === 'object' && typeof require === 'function') || typeof window === 'object' || typeof importScripts === 'function') throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)'); + + if (typeof read != 'undefined') { + read_ = function shell_read(f) { + return read(f); + }; + } + + readBinary = function readBinary(f) { + var data; + if (typeof readbuffer === 'function') { + return new Uint8Array(readbuffer(f)); + } + data = read(f, 'binary'); + assert(typeof data === 'object'); + return data; + }; + + readAsync = function readAsync(f, onload, onerror) { + setTimeout(function() { onload(readBinary(f)); }, 0); + }; + + if (typeof scriptArgs != 'undefined') { + arguments_ = scriptArgs; + } else if (typeof arguments != 'undefined') { + arguments_ = arguments; + } + + if (typeof quit === 'function') { + quit_ = function(status) { + quit(status); + }; + } + + if (typeof print !== 'undefined') { + // Prefer to use print/printErr where they exist, as they usually work better. + if (typeof console === 'undefined') console = /** @type{!Console} */({}); + console.log = /** @type{!function(this:Console, ...*): undefined} */ (print); + console.warn = console.error = /** @type{!function(this:Console, ...*): undefined} */ (typeof printErr !== 'undefined' ? printErr : print); + } + +} else + +// Note that this includes Node.js workers when relevant (pthreads is enabled). +// 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 (_scriptDir) { + scriptDirectory = _scriptDir; + } + // 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.indexOf('blob:') !== 0) { + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf('/')+1); + } else { + scriptDirectory = ''; + } + + if (!(typeof window === 'object' || typeof importScripts === 'function')) throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)'); + + // Differentiate the Web Worker from the Node Worker case, as reading must + // be done differently. + { + +// include: web_or_worker_shell_read.js + + + read_ = function(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.send(null); + return xhr.responseText; + }; + + if (ENVIRONMENT_IS_WORKER) { + readBinary = function(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.responseType = 'arraybuffer'; + xhr.send(null); + return new Uint8Array(/** @type{!ArrayBuffer} */(xhr.response)); + }; + } + + readAsync = function(url, onload, onerror) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'arraybuffer'; + xhr.onload = function() { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 + onload(xhr.response); + return; + } + onerror(); + }; + xhr.onerror = onerror; + xhr.send(null); + }; + +// end include: web_or_worker_shell_read.js + } + + setWindowTitle = function(title) { document.title = title }; +} else +{ + throw new Error('environment detection error'); +} + +// Set up the out() and err() hooks, which are how we can print to stdout or +// stderr, respectively. +var out = Module['print'] || console.log.bind(console); +var err = Module['printErr'] || console.warn.bind(console); + +// Merge back in the overrides +for (key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key]; + } +} +// Free the object hierarchy contained in the overrides, this lets the GC +// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. +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. + +if (Module['arguments']) arguments_ = Module['arguments']; +if (!Object.getOwnPropertyDescriptor(Module, 'arguments')) { + Object.defineProperty(Module, 'arguments', { + configurable: true, + get: function() { + abort('Module.arguments has been replaced with plain arguments_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)') + } + }); +} + +if (Module['thisProgram']) thisProgram = Module['thisProgram']; +if (!Object.getOwnPropertyDescriptor(Module, 'thisProgram')) { + Object.defineProperty(Module, 'thisProgram', { + configurable: true, + get: function() { + abort('Module.thisProgram has been replaced with plain thisProgram (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)') + } + }); +} + +if (Module['quit']) quit_ = Module['quit']; +if (!Object.getOwnPropertyDescriptor(Module, 'quit')) { + Object.defineProperty(Module, 'quit', { + configurable: true, + get: function() { + abort('Module.quit has been replaced with plain quit_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)') + } + }); +} + +// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message +// Assertions on removed incoming Module JS APIs. +assert(typeof Module['memoryInitializerPrefixURL'] === 'undefined', 'Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead'); +assert(typeof Module['pthreadMainPrefixURL'] === 'undefined', 'Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead'); +assert(typeof Module['cdInitializerPrefixURL'] === 'undefined', 'Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead'); +assert(typeof Module['filePackagePrefixURL'] === 'undefined', 'Module.filePackagePrefixURL option was removed, use Module.locateFile instead'); +assert(typeof Module['read'] === 'undefined', 'Module.read option was removed (modify read_ in JS)'); +assert(typeof Module['readAsync'] === 'undefined', 'Module.readAsync option was removed (modify readAsync in JS)'); +assert(typeof Module['readBinary'] === 'undefined', 'Module.readBinary option was removed (modify readBinary in JS)'); +assert(typeof Module['setWindowTitle'] === 'undefined', 'Module.setWindowTitle option was removed (modify setWindowTitle in JS)'); +assert(typeof Module['TOTAL_MEMORY'] === 'undefined', 'Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY'); + +if (!Object.getOwnPropertyDescriptor(Module, 'read')) { + Object.defineProperty(Module, 'read', { + configurable: true, + get: function() { + abort('Module.read has been replaced with plain read_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)') + } + }); +} + +if (!Object.getOwnPropertyDescriptor(Module, 'readAsync')) { + Object.defineProperty(Module, 'readAsync', { + configurable: true, + get: function() { + abort('Module.readAsync has been replaced with plain readAsync (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)') + } + }); +} + +if (!Object.getOwnPropertyDescriptor(Module, 'readBinary')) { + Object.defineProperty(Module, 'readBinary', { + configurable: true, + get: function() { + abort('Module.readBinary has been replaced with plain readBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)') + } + }); +} + +if (!Object.getOwnPropertyDescriptor(Module, 'setWindowTitle')) { + Object.defineProperty(Module, 'setWindowTitle', { + configurable: true, + get: function() { + abort('Module.setWindowTitle has been replaced with plain setWindowTitle (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)') + } + }); +} +var IDBFS = 'IDBFS is no longer included by default; build with -lidbfs.js'; + + +var NODEFS = 'NODEFS is no longer included by default; build with -lnodefs.js'; + +assert(!ENVIRONMENT_IS_SHELL, "shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable."); + + + + +var STACK_ALIGN = 16; + +function alignMemory(size, factor) { + if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default + return Math.ceil(size / factor) * factor; +} + +function getNativeTypeSize(type) { + switch (type) { + case 'i1': case 'i8': return 1; + case 'i16': return 2; + case 'i32': return 4; + case 'i64': return 8; + case 'float': return 4; + case 'double': return 8; + default: { + if (type[type.length-1] === '*') { + return 4; // A pointer + } else if (type[0] === 'i') { + var bits = Number(type.substr(1)); + assert(bits % 8 === 0, 'getNativeTypeSize invalid bits ' + bits + ', type ' + type); + return bits / 8; + } else { + return 0; + } + } + } +} + +function warnOnce(text) { + if (!warnOnce.shown) warnOnce.shown = {}; + if (!warnOnce.shown[text]) { + warnOnce.shown[text] = 1; + err(text); + } +} + +// include: runtime_functions.js + + +// Wraps a JS function as a wasm function with a given signature. +function convertJsFunctionToWasm(func, sig) { + + // If the type reflection proposal is available, use the new + // "WebAssembly.Function" constructor. + // Otherwise, construct a minimal wasm module importing the JS function and + // re-exporting it. + if (typeof WebAssembly.Function === "function") { + var typeNames = { + 'i': 'i32', + 'j': 'i64', + 'f': 'f32', + 'd': 'f64' + }; + var type = { + parameters: [], + results: sig[0] == 'v' ? [] : [typeNames[sig[0]]] + }; + for (var i = 1; i < sig.length; ++i) { + type.parameters.push(typeNames[sig[i]]); + } + return new WebAssembly.Function(type, func); + } + + // The module is static, with the exception of the type section, which is + // generated based on the signature passed in. + var typeSection = [ + 0x01, // id: section, + 0x00, // length: 0 (placeholder) + 0x01, // count: 1 + 0x60, // form: func + ]; + var sigRet = sig.slice(0, 1); + var sigParam = sig.slice(1); + var typeCodes = { + 'i': 0x7f, // i32 + 'j': 0x7e, // i64 + 'f': 0x7d, // f32 + 'd': 0x7c, // f64 + }; + + // Parameters, length + signatures + typeSection.push(sigParam.length); + for (var i = 0; i < sigParam.length; ++i) { + typeSection.push(typeCodes[sigParam[i]]); + } + + // Return values, length + signatures + // With no multi-return in MVP, either 0 (void) or 1 (anything else) + if (sigRet == 'v') { + typeSection.push(0x00); + } else { + typeSection = typeSection.concat([0x01, typeCodes[sigRet]]); + } + + // Write the overall length of the type section back into the section header + // (excepting the 2 bytes for the section id and length) + typeSection[1] = typeSection.length - 2; + + // Rest of the module is static + var bytes = new Uint8Array([ + 0x00, 0x61, 0x73, 0x6d, // magic ("\0asm") + 0x01, 0x00, 0x00, 0x00, // version: 1 + ].concat(typeSection, [ + 0x02, 0x07, // import section + // (import "e" "f" (func 0 (type 0))) + 0x01, 0x01, 0x65, 0x01, 0x66, 0x00, 0x00, + 0x07, 0x05, // export section + // (export "f" (func 0 (type 0))) + 0x01, 0x01, 0x66, 0x00, 0x00, + ])); + + // We can compile this wasm module synchronously because it is very small. + // This accepts an import (at "e.f"), that it reroutes to an export (at "f") + var module = new WebAssembly.Module(bytes); + var instance = new WebAssembly.Instance(module, { + 'e': { + 'f': func + } + }); + var wrappedFunc = instance.exports['f']; + return wrappedFunc; +} + +var freeTableIndexes = []; + +// Weak map of functions in the table to their indexes, created on first use. +var functionsInTableMap; + +function getEmptyTableSlot() { + // Reuse a free index if there is one, otherwise grow. + if (freeTableIndexes.length) { + return freeTableIndexes.pop(); + } + // Grow the table + try { + wasmTable.grow(1); + } catch (err) { + if (!(err instanceof RangeError)) { + throw err; + } + throw 'Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.'; + } + return wasmTable.length - 1; +} + +// Add a wasm function to the table. +function addFunctionWasm(func, sig) { + // Check if the function is already in the table, to ensure each function + // gets a unique index. First, create the map if this is the first use. + if (!functionsInTableMap) { + functionsInTableMap = new WeakMap(); + for (var i = 0; i < wasmTable.length; i++) { + var item = wasmTable.get(i); + // Ignore null values. + if (item) { + functionsInTableMap.set(item, i); + } + } + } + if (functionsInTableMap.has(func)) { + return functionsInTableMap.get(func); + } + + // It's not in the table, add it now. + + var ret = getEmptyTableSlot(); + + // Set the new value. + try { + // Attempting to call this with JS function will cause of table.set() to fail + wasmTable.set(ret, func); + } catch (err) { + if (!(err instanceof TypeError)) { + throw err; + } + assert(typeof sig !== 'undefined', 'Missing signature argument to addFunction: ' + func); + var wrapped = convertJsFunctionToWasm(func, sig); + wasmTable.set(ret, wrapped); + } + + functionsInTableMap.set(func, ret); + + return ret; +} + +function removeFunction(index) { + functionsInTableMap.delete(wasmTable.get(index)); + freeTableIndexes.push(index); +} + +// 'sig' parameter is required for the llvm backend but only when func is not +// already a WebAssembly function. +function addFunction(func, sig) { + assert(typeof func !== 'undefined'); + + return addFunctionWasm(func, sig); +} + +// end include: runtime_functions.js +// include: runtime_debug.js + + +// end include: runtime_debug.js +var tempRet0 = 0; + +var setTempRet0 = function(value) { + tempRet0 = value; +}; + +var getTempRet0 = function() { + return tempRet0; +}; + + + +// === Preamble library stuff === + +// Documentation for the public APIs defined in this file must be updated in: +// site/source/docs/api_reference/preamble.js.rst +// A prebuilt local version of the documentation is available at: +// site/build/text/docs/api_reference/preamble.js.txt +// You can also build docs locally as HTML or other formats in site/ +// 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; +if (Module['wasmBinary']) wasmBinary = Module['wasmBinary']; +if (!Object.getOwnPropertyDescriptor(Module, 'wasmBinary')) { + Object.defineProperty(Module, 'wasmBinary', { + configurable: true, + get: function() { + abort('Module.wasmBinary has been replaced with plain wasmBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)') + } + }); +} +var noExitRuntime = Module['noExitRuntime'] || true; +if (!Object.getOwnPropertyDescriptor(Module, 'noExitRuntime')) { + Object.defineProperty(Module, 'noExitRuntime', { + configurable: true, + get: function() { + abort('Module.noExitRuntime has been replaced with plain noExitRuntime (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)') + } + }); +} + +if (typeof WebAssembly !== 'object') { + abort('no native wasm support detected'); +} + +// include: runtime_safe_heap.js + + +// In MINIMAL_RUNTIME, setValue() and getValue() are only available when building with safe heap enabled, for heap safety checking. +// In traditional runtime, setValue() and getValue() are always available (although their use is highly discouraged due to perf penalties) + +/** @param {number} ptr + @param {number} value + @param {string} type + @param {number|boolean=} noSafe */ +function setValue(ptr, value, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch (type) { + case 'i1': HEAP8[((ptr)>>0)] = value; break; + case 'i8': HEAP8[((ptr)>>0)] = value; break; + case 'i16': HEAP16[((ptr)>>1)] = value; break; + case 'i32': HEAP32[((ptr)>>2)] = value; break; + case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)] = tempI64[0],HEAP32[(((ptr)+(4))>>2)] = tempI64[1]); break; + case 'float': HEAPF32[((ptr)>>2)] = value; break; + case 'double': HEAPF64[((ptr)>>3)] = value; break; + default: abort('invalid type for setValue: ' + type); + } +} + +/** @param {number} ptr + @param {string} type + @param {number|boolean=} noSafe */ +function getValue(ptr, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch (type) { + case 'i1': return HEAP8[((ptr)>>0)]; + case 'i8': return HEAP8[((ptr)>>0)]; + case 'i16': return HEAP16[((ptr)>>1)]; + case 'i32': return HEAP32[((ptr)>>2)]; + case 'i64': return HEAP32[((ptr)>>2)]; + case 'float': return HEAPF32[((ptr)>>2)]; + case 'double': return HEAPF64[((ptr)>>3)]; + default: abort('invalid type for getValue: ' + type); + } + return null; +} + +// end include: runtime_safe_heap.js +// Wasm globals + +var wasmMemory; + +//======================================== +// Runtime essentials +//======================================== + +// whether we are quitting the application. no code should run after this. +// set in exit() and abort() +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 +// but only when noExitRuntime is false. +var EXITSTATUS; + +/** @type {function(*, string=)} */ +function assert(condition, text) { + if (!condition) { + abort('Assertion failed: ' + text); + } +} + +// Returns the C function with a specified identifier (for C++, you need to do manual name mangling) +function getCFunc(ident) { + var func = Module['_' + ident]; // closure exported function + assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported'); + return func; +} + +// C calling interface. +/** @param {string|null=} returnType + @param {Array=} argTypes + @param {Arguments|Array=} args + @param {Object=} opts */ +function ccall(ident, returnType, argTypes, args, opts) { + // For fast lookup of conversion functions + var toC = { + 'string': function(str) { + var ret = 0; + if (str !== null && str !== undefined && str !== 0) { // null string + // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0' + var len = (str.length << 2) + 1; + ret = stackAlloc(len); + stringToUTF8(str, ret, len); + } + return ret; + }, + 'array': function(arr) { + var ret = stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret; + } + }; + + function convertReturnValue(ret) { + if (returnType === 'string') return UTF8ToString(ret); + if (returnType === 'boolean') return Boolean(ret); + return ret; + } + + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + assert(returnType !== 'array', 'Return type should not be "array".'); + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + var ret = func.apply(null, cArgs); + + ret = convertReturnValue(ret); + if (stack !== 0) stackRestore(stack); + return ret; +} + +/** @param {string=} returnType + @param {Array=} argTypes + @param {Object=} opts */ +function cwrap(ident, returnType, argTypes, opts) { + return function() { + return ccall(ident, returnType, argTypes, arguments, opts); + } +} + +// We used to include malloc/free by default in the past. Show a helpful error in +// builds with assertions. + +var ALLOC_NORMAL = 0; // Tries to use _malloc() +var ALLOC_STACK = 1; // Lives for the duration of the current function call + +// allocate(): This is for internal use. You can use it yourself as well, but the interface +// is a little tricky (see docs right below). The reason is that it is optimized +// for multiple syntaxes to save space in generated code. So you should +// normally not use allocate(), and instead allocate memory using _malloc(), +// initialize it with setValue(), and so forth. +// @slab: An array of data. +// @allocator: How to allocate memory, see ALLOC_* +/** @type {function((Uint8Array|Array), number)} */ +function allocate(slab, allocator) { + var ret; + assert(typeof allocator === 'number', 'allocate no longer takes a type argument') + assert(typeof slab !== 'number', 'allocate no longer takes a number as arg0') + + if (allocator == ALLOC_STACK) { + ret = stackAlloc(slab.length); + } else { + ret = _malloc(slab.length); + } + + if (slab.subarray || slab.slice) { + HEAPU8.set(/** @type {!Uint8Array} */(slab), ret); + } else { + HEAPU8.set(new Uint8Array(slab), ret); + } + return ret; +} + +// include: runtime_strings.js + + +// runtime_strings.js: Strings related runtime functions that are part of both MINIMAL_RUNTIME and regular runtime. + +// Given a pointer 'ptr' 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. + +var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined; + +/** + * @param {number} idx + * @param {number=} maxBytesToRead + * @return {string} + */ +function UTF8ArrayToString(heap, idx, maxBytesToRead) { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + // 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 means Infinity) + while (heap[endPtr] && !(endPtr >= endIdx)) ++endPtr; + + if (endPtr - idx > 16 && heap.subarray && UTF8Decoder) { + return UTF8Decoder.decode(heap.subarray(idx, endPtr)); + } else { + 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 = heap[idx++]; + if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } + var u1 = heap[idx++] & 63; + if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } + var u2 = heap[idx++] & 63; + if ((u0 & 0xF0) == 0xE0) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + if ((u0 & 0xF8) != 0xF0) warnOnce('Invalid UTF-8 leading byte 0x' + u0.toString(16) + ' encountered when deserializing a UTF-8 string in wasm memory to a JS string!'); + u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heap[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; +} + +// 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. +// 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 +// style or the other. +/** + * @param {number} ptr + * @param {number=} maxBytesToRead + * @return {string} + */ +function UTF8ToString(ptr, maxBytesToRead) { + return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ''; +} + +// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx', +// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP. +// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// heap: the array to copy to. Each index in this array is assumed to be one 8-byte element. +// outIdx: The starting offset in the array to begin the copying. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. +// This count should include the null terminator, +// i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else. +// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { + if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes. + return 0; + + 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); + } + if (u <= 0x7F) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 0x7FF) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 0xC0 | (u >> 6); + heap[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0xFFFF) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 0xE0 | (u >> 12); + heap[outIdx++] = 0x80 | ((u >> 6) & 63); + heap[outIdx++] = 0x80 | (u & 63); + } else { + if (outIdx + 3 >= endIdx) break; + if (u >= 0x200000) warnOnce('Invalid Unicode code point 0x' + u.toString(16) + ' encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x1FFFFF).'); + heap[outIdx++] = 0xF0 | (u >> 18); + heap[outIdx++] = 0x80 | ((u >> 12) & 63); + heap[outIdx++] = 0x80 | ((u >> 6) & 63); + heap[outIdx++] = 0x80 | (u & 63); + } + } + // Null-terminate the pointer to the buffer. + heap[outIdx] = 0; + return outIdx - startIdx; +} + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP. +// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF8(str, outPtr, maxBytesToWrite) { + assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); +} + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte. +function lengthBytesUTF8(str) { + var len = 0; + 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 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); + if (u <= 0x7F) ++len; + else if (u <= 0x7FF) len += 2; + else if (u <= 0xFFFF) len += 3; + else len += 4; + } + return len; +} + +// end include: runtime_strings.js +// include: runtime_strings_extra.js + + +// runtime_strings_extra.js: Strings related runtime functions that are available only in regular runtime. + +// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +function AsciiToString(ptr) { + var str = ''; + while (1) { + var ch = HEAPU8[((ptr++)>>0)]; + if (!ch) return str; + str += String.fromCharCode(ch); + } +} + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP. + +function stringToAscii(str, outPtr) { + return writeAsciiToMemory(str, outPtr, false); +} + +// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined; + +function UTF16ToString(ptr, maxBytesToRead) { + assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!'); + var endPtr = ptr; + // 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. + var idx = endPtr >> 1; + var maxIdx = idx + maxBytesToRead / 2; + // If maxBytesToRead is not passed explicitly, it will be undefined, and this + // will always evaluate to true. This saves on code size. + while (!(idx >= maxIdx) && HEAPU16[idx]) ++idx; + endPtr = idx << 1; + + if (endPtr - ptr > 32 && UTF16Decoder) { + return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); + } else { + var str = ''; + + // If maxBytesToRead is not passed explicitly, it will be undefined, and the for-loop's condition + // will always evaluate to true. The loop is then terminated on the first null char. + for (var i = 0; !(i >= maxBytesToRead / 2); ++i) { + var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; + if (codeUnit == 0) break; + // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. + str += String.fromCharCode(codeUnit); + } + + return str; + } +} + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP. +// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outPtr: Byte address in Emscripten HEAP where to write the string to. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else. +// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF16(str, outPtr, maxBytesToWrite) { + assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 2) return 0; + maxBytesToWrite -= 2; // Null terminator. + var startPtr = outPtr; + var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; + for (var i = 0; i < numCharsToWrite; ++i) { + // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + HEAP16[((outPtr)>>1)] = codeUnit; + outPtr += 2; + } + // Null-terminate the pointer to the HEAP. + HEAP16[((outPtr)>>1)] = 0; + return outPtr - startPtr; +} + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF16(str) { + return str.length*2; +} + +function UTF32ToString(ptr, maxBytesToRead) { + assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!'); + var i = 0; + + var str = ''; + // If maxBytesToRead is not passed explicitly, it will be undefined, and this + // will always evaluate to true. This saves on code size. + while (!(i >= maxBytesToRead / 4)) { + var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; + if (utf32 == 0) break; + ++i; + // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + if (utf32 >= 0x10000) { + var ch = utf32 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } else { + str += String.fromCharCode(utf32); + } + } + return str; +} + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP. +// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outPtr: Byte address in Emscripten HEAP where to write the string to. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else. +// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF32(str, outPtr, maxBytesToWrite) { + assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 4) return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + 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! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { + var trailSurrogate = str.charCodeAt(++i); + codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); + } + HEAP32[((outPtr)>>2)] = codeUnit; + outPtr += 4; + if (outPtr + 4 > endPtr) break; + } + // Null-terminate the pointer to the HEAP. + HEAP32[((outPtr)>>2)] = 0; + return outPtr - startPtr; +} + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF32(str) { + var len = 0; + 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! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. + len += 4; + } + + return len; +} + +// Allocate heap space for a JS string, and write it there. +// It is the responsibility of the caller to free() that memory. +function allocateUTF8(str) { + var size = lengthBytesUTF8(str) + 1; + var ret = _malloc(size); + if (ret) stringToUTF8Array(str, HEAP8, ret, size); + return ret; +} + +// Allocate stack space for a JS string, and write it there. +function allocateUTF8OnStack(str) { + var size = lengthBytesUTF8(str) + 1; + var ret = stackAlloc(size); + stringToUTF8Array(str, HEAP8, ret, size); + return ret; +} + +// Deprecated: This function should not be called because it is unsafe and does not provide +// a maximum length limit of how many bytes it is allowed to write. Prefer calling the +// function stringToUTF8Array() instead, which takes in a maximum length that can be used +// to be secure from out of bounds writes. +/** @deprecated + @param {boolean=} dontAddNull */ +function writeStringToMemory(string, buffer, dontAddNull) { + warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!'); + + var /** @type {number} */ lastChar, /** @type {number} */ end; + if (dontAddNull) { + // stringToUTF8Array always appends null. If we don't want to do that, remember the + // character that existed at the location where the null will be placed, and restore + // that after the write (below). + end = buffer + lengthBytesUTF8(string); + lastChar = HEAP8[end]; + } + stringToUTF8(string, buffer, Infinity); + if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character. +} + +function writeArrayToMemory(array, buffer) { + assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)') + HEAP8.set(array, buffer); +} + +/** @param {boolean=} dontAddNull */ +function writeAsciiToMemory(str, buffer, dontAddNull) { + for (var i = 0; i < str.length; ++i) { + assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff); + HEAP8[((buffer++)>>0)] = str.charCodeAt(i); + } + // Null-terminate the pointer to the HEAP. + if (!dontAddNull) HEAP8[((buffer)>>0)] = 0; +} + +// end include: runtime_strings_extra.js +// Memory management + +function alignUp(x, multiple) { + if (x % multiple > 0) { + x += multiple - (x % multiple); + } + return x; +} + +var HEAP, +/** @type {ArrayBuffer} */ + buffer, +/** @type {Int8Array} */ + HEAP8, +/** @type {Uint8Array} */ + HEAPU8, +/** @type {Int16Array} */ + HEAP16, +/** @type {Uint16Array} */ + HEAPU16, +/** @type {Int32Array} */ + HEAP32, +/** @type {Uint32Array} */ + HEAPU32, +/** @type {Float32Array} */ + HEAPF32, +/** @type {Float64Array} */ + HEAPF64; + +function updateGlobalBufferAndViews(buf) { + buffer = buf; + Module['HEAP8'] = HEAP8 = new Int8Array(buf); + Module['HEAP16'] = HEAP16 = new Int16Array(buf); + Module['HEAP32'] = HEAP32 = new Int32Array(buf); + Module['HEAPU8'] = HEAPU8 = new Uint8Array(buf); + Module['HEAPU16'] = HEAPU16 = new Uint16Array(buf); + Module['HEAPU32'] = HEAPU32 = new Uint32Array(buf); + Module['HEAPF32'] = HEAPF32 = new Float32Array(buf); + Module['HEAPF64'] = HEAPF64 = new Float64Array(buf); +} + +var TOTAL_STACK = 5242880; +if (Module['TOTAL_STACK']) assert(TOTAL_STACK === Module['TOTAL_STACK'], 'the stack size can no longer be determined at runtime') + +var INITIAL_MEMORY = Module['INITIAL_MEMORY'] || 16777216; +if (!Object.getOwnPropertyDescriptor(Module, 'INITIAL_MEMORY')) { + Object.defineProperty(Module, 'INITIAL_MEMORY', { + configurable: true, + get: function() { + abort('Module.INITIAL_MEMORY has been replaced with plain INITIAL_MEMORY (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)') + } + }); +} + +assert(INITIAL_MEMORY >= TOTAL_STACK, 'INITIAL_MEMORY should be larger than TOTAL_STACK, was ' + INITIAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')'); + +// check for full engine support (use string 'subarray' to avoid closure compiler confusion) +assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray !== undefined && Int32Array.prototype.set !== undefined, + 'JS engine does not provide full typed array support'); + +// If memory is defined in wasm, the user can't provide it. +assert(!Module['wasmMemory'], 'Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally'); +assert(INITIAL_MEMORY == 16777216, 'Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically'); + +// include: runtime_init_table.js +// In regular non-RELOCATABLE mode the table is exported +// from the wasm module and this will be assigned once +// the exports are available. +var wasmTable; + +// end include: runtime_init_table.js +// include: runtime_stack_check.js + + +// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. +function writeStackCookie() { + var max = _emscripten_stack_get_end(); + assert((max & 3) == 0); + // The stack grows downwards + HEAPU32[(max >> 2)+1] = 0x2135467; + HEAPU32[(max >> 2)+2] = 0x89BACDFE; + // Also test the global address 0 for integrity. + HEAP32[0] = 0x63736d65; /* 'emsc' */ +} + +function checkStackCookie() { + if (ABORT) return; + var max = _emscripten_stack_get_end(); + var cookie1 = HEAPU32[(max >> 2)+1]; + var cookie2 = HEAPU32[(max >> 2)+2]; + if (cookie1 != 0x2135467 || cookie2 != 0x89BACDFE) { + abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x' + cookie2.toString(16) + ' ' + cookie1.toString(16)); + } + // Also test the global address 0 for integrity. + if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) abort('Runtime error: The application has corrupted its heap memory area (address zero)!'); +} + +// end include: runtime_stack_check.js +// include: runtime_assertions.js + + +// Endianness check +(function() { + var h16 = new Int16Array(1); + var h8 = new Int8Array(h16.buffer); + h16[0] = 0x6373; + if (h8[0] !== 0x73 || h8[1] !== 0x63) throw 'Runtime error: expected the system to be little-endian! (Run with -s SUPPORT_BIG_ENDIAN=1 to bypass)'; +})(); + +// end include: runtime_assertions.js +var __ATPRERUN__ = []; // functions called before the runtime is initialized +var __ATINIT__ = []; // functions called during startup +var __ATMAIN__ = []; // functions called when main() is to be run +var __ATEXIT__ = []; // functions called during shutdown +var __ATPOSTRUN__ = []; // functions called after the main() is called + +var runtimeInitialized = false; +var runtimeExited = false; +var runtimeKeepaliveCounter = 0; + +function keepRuntimeAlive() { + return noExitRuntime || runtimeKeepaliveCounter > 0; +} + +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() { + checkStackCookie(); + assert(!runtimeInitialized); + runtimeInitialized = true; + + +if (!Module["noFSInit"] && !FS.init.initialized) + FS.init(); +FS.ignorePermissions = false; + +TTY.init(); +SOCKFS.root = FS.mount(SOCKFS, {}, null); + callRuntimeCallbacks(__ATINIT__); +} + +function preMain() { + checkStackCookie(); + + callRuntimeCallbacks(__ATMAIN__); +} + +function exitRuntime() { + checkStackCookie(); + runtimeExited = true; +} + +function postRun() { + checkStackCookie(); + + if (Module['postRun']) { + if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; + while (Module['postRun'].length) { + addOnPostRun(Module['postRun'].shift()); + } + } + + callRuntimeCallbacks(__ATPOSTRUN__); +} + +function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); +} + +function addOnInit(cb) { + __ATINIT__.unshift(cb); +} + +function addOnPreMain(cb) { + __ATMAIN__.unshift(cb); +} + +function addOnExit(cb) { +} + +function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); +} + +// 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 + +assert(Math.imul, 'This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); +assert(Math.fround, 'This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); +assert(Math.clz32, 'This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); +assert(Math.trunc, 'This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); + +// 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 +var runDependencyTracking = {}; + +function getUniqueRunDependency(id) { + var orig = id; + while (1) { + if (!runDependencyTracking[id]) return id; + id = orig + Math.random(); + } +} + +function addRunDependency(id) { + runDependencies++; + + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + + if (id) { + assert(!runDependencyTracking[id]); + runDependencyTracking[id] = 1; + if (runDependencyWatcher === null && typeof setInterval !== 'undefined') { + // Check for missing dependencies every few seconds + runDependencyWatcher = setInterval(function() { + if (ABORT) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + return; + } + var shown = false; + for (var dep in runDependencyTracking) { + if (!shown) { + shown = true; + err('still waiting on run dependencies:'); + } + err('dependency: ' + dep); + } + if (shown) { + err('(end of list)'); + } + }, 10000); + } + } else { + err('warning: run dependency added without ID'); + } +} + +function removeRunDependency(id) { + runDependencies--; + + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + + if (id) { + assert(runDependencyTracking[id]); + delete runDependencyTracking[id]; + } else { + err('warning: run dependency removed without ID'); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); // can add another dependenciesFulfilled + } + } +} + +Module["preloadedImages"] = {}; // maps url to image data +Module["preloadedAudios"] = {}; // maps url to audio data + +/** @param {string|number=} what */ +function abort(what) { + if (Module['onAbort']) { + Module['onAbort'](what); + } + + what += ''; + err(what); + + ABORT = true; + EXITSTATUS = 1; + + var output = 'abort(' + what + ') at ' + stackTrace(); + what = output; + + // Use a wasm runtime error, because a JS error might be seen as a foreign + // exception, which means we'd run destructors on it. We need the error to + // simply make the program stop. + 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; +} + +// {{MEM_INITIALIZER}} + +// 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. +function isDataURI(filename) { + // Prefix of data URIs emitted by SINGLE_FILE and related options. + return filename.startsWith(dataURIPrefix); +} + +// Indicates whether filename is delivered via file protocol (as opposed to http/https) +function isFileURI(filename) { + return filename.startsWith('file://'); +} + +// end include: URIUtils.js +function createExportWrapper(name, fixedasm) { + return function() { + var displayName = name; + var asm = fixedasm; + if (!fixedasm) { + asm = Module['asm']; + } + assert(runtimeInitialized, 'native function `' + displayName + '` called before runtime initialization'); + assert(!runtimeExited, 'native function `' + displayName + '` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + if (!asm[name]) { + assert(asm[name], 'exported native function `' + displayName + '` not found'); + } + return asm[name].apply(null, arguments); + }; +} + +var wasmBinaryFile; + wasmBinaryFile = 'samtools.wasm'; + if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile); + } + +function getBinary(file) { + try { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + if (readBinary) { + return readBinary(file); + } else { + throw "both async and sync fetching of the wasm failed"; + } + } + catch (err) { + abort(err); + } +} + +function getBinaryPromise() { + // If we don't have the binary yet, try to to load it asynchronously. + // Fetch has some additional restrictions over XHR, like it can't be used on a file:// url. + // See https://github.com/github/fetch/pull/92#issuecomment-140665932 + // Cordova or Electron apps are typically loaded from a file:// url. + // So use fetch if it is available and the url is not a file, otherwise fall back to XHR. + if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { + if (typeof fetch === 'function' + && !isFileURI(wasmBinaryFile) + ) { + return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) { + if (!response['ok']) { + throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"; + } + return response['arrayBuffer'](); + }).catch(function () { + return getBinary(wasmBinaryFile); + }); + } + else { + if (readAsync) { + // fetch is not available or url is file => try XHR (readAsync uses XHR internally) + return new Promise(function(resolve, reject) { + readAsync(wasmBinaryFile, function(response) { resolve(new Uint8Array(/** @type{!ArrayBuffer} */(response))) }, reject) + }); + } + } + } + + // Otherwise, getBinary should be able to get it synchronously + return Promise.resolve().then(function() { return getBinary(wasmBinaryFile); }); +} + +// Create the wasm instance. +// Receives the wasm imports, returns the exports. +function createWasm() { + // prepare imports + var info = { + 'env': asmLibraryArg, + 'wasi_snapshot_preview1': asmLibraryArg, + }; + // 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) { + var exports = instance.exports; + + Module['asm'] = exports; + + wasmMemory = Module['asm']['memory']; + assert(wasmMemory, "memory not found in wasm exports"); + // This assertion doesn't hold when emscripten is run in --post-link + // mode. + // TODO(sbc): Read INITIAL_MEMORY out of the wasm file in post-link mode. + //assert(wasmMemory.buffer.byteLength === 16777216); + updateGlobalBufferAndViews(wasmMemory.buffer); + + wasmTable = Module['asm']['__indirect_function_table']; + assert(wasmTable, "table not found in wasm exports"); + + addOnInit(Module['asm']['__wasm_call_ctors']); + + removeRunDependency('wasm-instantiate'); + } + // we can't run yet (except in a pthread, where we have a custom sync instantiator) + addRunDependency('wasm-instantiate'); + + // Prefer streaming instantiation if available. + // Async compilation can be confusing when an error on the page overwrites Module + // (for example, if the order of elements is wrong, and the one defining Module is + // later), so we save Module and check it later. + var trueModule = Module; + function receiveInstantiationResult(result) { + // 'result' is a ResultObject object which has both the module and instance. + // receiveInstance() will swap in the exports (to Module.asm) so they can be called + assert(Module === trueModule, 'the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?'); + trueModule = null; + // 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 USE_PTHREADS-enabled path. + receiveInstance(result['instance']); + } + + function instantiateArrayBuffer(receiver) { + return getBinaryPromise().then(function(binary) { + var result = WebAssembly.instantiate(binary, info); + return result; + }).then(receiver, function(reason) { + err('failed to asynchronously prepare wasm: ' + reason); + + // Warn on some common problems. + if (isFileURI(wasmBinaryFile)) { + err('warning: Loading from a file URI (' + wasmBinaryFile + ') is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing'); + } + abort(reason); + }); + } + + function instantiateAsync() { + if (!wasmBinary && + typeof WebAssembly.instantiateStreaming === 'function' && + !isDataURI(wasmBinaryFile) && + // Don't use streaming for file:// delivered objects in a webview, fetch them synchronously. + !isFileURI(wasmBinaryFile) && + typeof fetch === 'function') { + return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function (response) { + var result = WebAssembly.instantiateStreaming(response, info); + return result.then(receiveInstantiationResult, 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(receiveInstantiationResult); + }); + }); + } else { + return instantiateArrayBuffer(receiveInstantiationResult); + } + } + + // 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. + if (Module['instantiateWasm']) { + try { + var exports = Module['instantiateWasm'](info, receiveInstance); + return exports; + } catch(e) { + err('Module.instantiateWasm callback failed with error: ' + e); + return false; + } + } + + // If instantiation fails, reject the module ready promise. + instantiateAsync().catch(readyPromiseReject); + return {}; // no exports yet; we'll fill them in later +} + +// Globals used by JS i64 conversions (see makeSetValue) +var tempDouble; +var tempI64; + +// === Body === + +var ASM_CONSTS = { + +}; + + + + + + + function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + var callback = callbacks.shift(); + if (typeof callback == 'function') { + callback(Module); // Pass the module as the first argument. + continue; + } + var func = callback.func; + if (typeof func === 'number') { + if (callback.arg === undefined) { + wasmTable.get(func)(); + } else { + wasmTable.get(func)(callback.arg); + } + } else { + func(callback.arg === undefined ? null : callback.arg); + } + } + } + + function demangle(func) { + warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'); + return func; + } + + function demangleAll(text) { + var regex = + /\b_Z[\w\d_]+/g; + return text.replace(regex, + function(x) { + var y = demangle(x); + return x === y ? x : (y + ' [' + x + ']'); + }); + } + + function jsStackTrace() { + var error = new Error(); + if (!error.stack) { + // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown, + // so try that as a special-case. + try { + throw new Error(); + } catch(e) { + error = e; + } + if (!error.stack) { + return '(no stack trace available)'; + } + } + return error.stack.toString(); + } + + function stackTrace() { + var js = jsStackTrace(); + if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace'](); + return demangleAll(js); + } + + function ___assert_fail(condition, filename, line, func) { + abort('Assertion failed: ' + UTF8ToString(condition) + ', at: ' + [filename ? UTF8ToString(filename) : 'unknown filename', line, func ? UTF8ToString(func) : 'unknown function']); + } + + var _emscripten_get_now;if (ENVIRONMENT_IS_NODE) { + _emscripten_get_now = function() { + var t = process['hrtime'](); + return t[0] * 1e3 + t[1] / 1e6; + }; + } else _emscripten_get_now = function() { return performance.now(); } + ; + + var _emscripten_get_now_is_monotonic=true;; + + function setErrNo(value) { + HEAP32[((___errno_location())>>2)] = value; + return value; + } + function _clock_gettime(clk_id, tp) { + // int clock_gettime(clockid_t clk_id, struct timespec *tp); + var now; + if (clk_id === 0) { + now = Date.now(); + } else if ((clk_id === 1 || clk_id === 4) && _emscripten_get_now_is_monotonic) { + now = _emscripten_get_now(); + } else { + setErrNo(28); + return -1; + } + HEAP32[((tp)>>2)] = (now/1000)|0; // seconds + HEAP32[(((tp)+(4))>>2)] = ((now % 1000)*1000*1000)|0; // nanoseconds + return 0; + } + function ___clock_gettime(a0,a1 + ) { + return _clock_gettime(a0,a1); + } + + var PATH={splitPath:function(filename) { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + },normalizeArray:function(parts, allowAboveRoot) { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up; up--) { + parts.unshift('..'); + } + } + return parts; + },normalize:function(path) { + var isAbsolute = path.charAt(0) === '/', + trailingSlash = path.substr(-1) === '/'; + // Normalize the path + path = PATH.normalizeArray(path.split('/').filter(function(p) { + return !!p; + }), !isAbsolute).join('/'); + if (!path && !isAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; + } + return (isAbsolute ? '/' : '') + path; + },dirname:function(path) { + var result = PATH.splitPath(path), + root = result[0], + dir = result[1]; + if (!root && !dir) { + // No dirname whatsoever + return '.'; + } + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + return root + dir; + },basename:function(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); + },extname:function(path) { + return PATH.splitPath(path)[3]; + },join:function() { + var paths = Array.prototype.slice.call(arguments, 0); + return PATH.normalize(paths.join('/')); + },join2:function(l, r) { + return PATH.normalize(l + '/' + r); + }}; + + function getRandomDevice() { + if (typeof crypto === 'object' && typeof crypto['getRandomValues'] === 'function') { + // for modern web browsers + var randomBuffer = new Uint8Array(1); + return function() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; + } else + if (ENVIRONMENT_IS_NODE) { + // for nodejs with or without crypto support included + try { + var crypto_module = require('crypto'); + // nodejs has crypto support + return function() { return crypto_module['randomBytes'](1)[0]; }; + } catch (e) { + // nodejs doesn't have crypto support + } + } + // we couldn't find a proper implementation, as Math.random() is not suitable for /dev/random, see emscripten-core/emscripten/pull/7096 + return function() { abort("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };"); }; + } + + var PATH_FS={resolve:function() { + var resolvedPath = '', + resolvedAbsolute = false; + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? arguments[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.charAt(0) === '/'; + } + // 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(function(p) { + return !!p; + }), !resolvedAbsolute).join('/'); + return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; + },relative:function(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 outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join('/'); + }}; + + var TTY={ttys:[],init:function () { + // https://github.com/emscripten-core/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // currently, FS.init does not distinguish if process.stdin is a file or TTY + // // device, it always assumes it's a TTY device. because of this, we're forcing + // // process.stdin to UTF8 encoding to at least make stdin reading compatible + // // with text files until FS.init can be refactored. + // process['stdin']['setEncoding']('utf8'); + // } + },shutdown:function() { + // https://github.com/emscripten-core/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? + // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation + // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? + // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle + // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call + // process['stdin']['pause'](); + // } + },register:function(dev, ops) { + TTY.ttys[dev] = { input: [], output: [], ops: ops }; + FS.registerDevice(dev, TTY.stream_ops); + },stream_ops:{open:function(stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(43); + } + stream.tty = tty; + stream.seekable = false; + },close:function(stream) { + // flush any pending line data + stream.tty.ops.flush(stream.tty); + },flush:function(stream) { + stream.tty.ops.flush(stream.tty); + },read:function(stream, buffer, offset, length, pos /* ignored */) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(60); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset+i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + },write:function(stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(60); + } + try { + for (var i = 0; i < length; i++) { + stream.tty.ops.put_char(stream.tty, buffer[offset+i]); + } + } catch (e) { + throw new FS.ErrnoError(29); + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + }},default_tty_ops:{get_char:function(tty) { + if (!tty.input.length) { + var result = null; + if (ENVIRONMENT_IS_NODE) { + // we will read data by chunks of BUFSIZE + var BUFSIZE = 256; + var buf = Buffer.alloc(BUFSIZE); + var bytesRead = 0; + + try { + bytesRead = nodeFS.readSync(process.stdin.fd, buf, 0, BUFSIZE, null); + } catch(e) { + // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes, + // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0. + if (e.toString().includes('EOF')) bytesRead = 0; + else throw e; + } + + if (bytesRead > 0) { + result = buf.slice(0, bytesRead).toString('utf-8'); + } else { + result = null; + } + } else + if (typeof window != 'undefined' && + typeof window.prompt == 'function') { + // Browser. + result = window.prompt('Input: '); // returns null on cancel + if (result !== null) { + result += '\n'; + } + } else if (typeof readline == 'function') { + // Command line. + result = readline(); + if (result !== null) { + result += '\n'; + } + } + if (!result) { + return null; + } + tty.input = intArrayFromString(result, true); + } + return tty.input.shift(); + },put_char:function(tty, val) { + if (val === null || val === 10) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. + } + },flush:function(tty) { + if (tty.output && tty.output.length > 0) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }},default_tty1_ops:{put_char:function(tty, val) { + if (val === null || val === 10) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + },flush:function(tty) { + if (tty.output && tty.output.length > 0) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }}}; + + function zeroMemory(address, size) { + HEAPU8.fill(0, address, address + size); + } + function mmapAlloc(size) { + abort('internal error: mmapAlloc called but `memalign` native symbol not exported'); + } + var MEMFS={ops_table:null,mount:function(mount) { + return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); + },createNode:function(parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + // no supported + throw new FS.ErrnoError(63); + } + if (!MEMFS.ops_table) { + MEMFS.ops_table = { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink + }, + stream: { + llseek: MEMFS.stream_ops.llseek + } + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: { + 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 + } + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink + }, + stream: {} + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: FS.chrdev_stream_ops + } + }; + } + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } 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; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.timestamp = Date.now(); + // add the new node to the parent + if (parent) { + parent.contents[name] = node; + parent.timestamp = node.timestamp; + } + return node; + },getFileDataAsTypedArray:function(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); + },expandFileStorage:function(node, newCapacity) { + var prevCapacity = node.contents ? node.contents.length : 0; + 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; + 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; + 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. + },resizeFileStorage:function(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; + } + },node_ops:{getattr:function(node) { + var attr = {}; + // device numbers reuse inode numbers. + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.timestamp); + attr.mtime = new Date(node.timestamp); + attr.ctime = new Date(node.timestamp); + // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), + // but this is not required by the standard. + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + },setattr:function(node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size); + } + },lookup:function(parent, name) { + throw FS.genericErrors[44]; + },mknod:function(parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + },rename:function(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); + } + } + } + // 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.parent = new_dir; + },unlink:function(parent, name) { + delete parent.contents[name]; + parent.timestamp = Date.now(); + },rmdir:function(parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(55); + } + delete parent.contents[name]; + parent.timestamp = Date.now(); + },readdir:function(node) { + var entries = ['.', '..']; + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + },symlink:function(parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); + node.link = oldpath; + return node; + },readlink:function(node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(28); + } + return node.link; + }},stream_ops:{read:function(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min(stream.node.usedBytes - position, length); + assert(size >= 0); + 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]; + } + return size; + },write:function(stream, buffer, offset, length, position, canOwn) { + // The data buffer should be a typed array view + assert(!(buffer instanceof ArrayBuffer)); + // 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. + 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) { + assert(position === 0, 'canOwn must imply no weird position inside the file'); + 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; + } + } + + // 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) { + // 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); + return length; + },llseek:function(stream, offset, whence) { + var position = offset; + if (whence === 1) { + position += stream.position; + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes; + } + } + if (position < 0) { + throw new FS.ErrnoError(28); + } + return position; + },allocate:function(stream, offset, length) { + MEMFS.expandFileStorage(stream.node, offset + length); + stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); + },mmap:function(stream, address, length, position, prot, flags) { + if (address !== 0) { + // We don't currently support location hints for the address of the mapping + throw new FS.ErrnoError(28); + } + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + var ptr; + var allocated; + var contents = stream.node.contents; + // Only make a new copy when MAP_PRIVATE is specified. + if (!(flags & 2) && contents.buffer === 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; + ptr = contents.byteOffset; + } else { + // Try to avoid unnecessary slices. + if (position > 0 || position + length < contents.length) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + allocated = true; + ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + HEAP8.set(contents, ptr); + } + return { ptr: ptr, allocated: allocated }; + },msync:function(stream, buffer, offset, length, mmapFlags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (mmapFlags & 2) { + // MAP_PRIVATE calls need not to be synced back to underlying fs + return 0; + } + + var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + // should we check if bytesWritten and length are the same? + return 0; + }}}; + + function asyncLoad(url, onload, onerror, noRunDep) { + var dep = !noRunDep ? getUniqueRunDependency('al ' + url) : ''; + readAsync(url, function(arrayBuffer) { + assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + onload(new Uint8Array(arrayBuffer)); + if (dep) removeRunDependency(dep); + }, function(event) { + if (onerror) { + onerror(); + } else { + throw 'Loading data file "' + url + '" failed.'; + } + }); + if (dep) addRunDependency(dep); + } + + var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function (mount) { + assert(ENVIRONMENT_IS_WORKER); + if (!WORKERFS.reader) WORKERFS.reader = new FileReaderSync(); + var root = WORKERFS.createNode(null, '/', WORKERFS.DIR_MODE, 0); + var createdParents = {}; + function ensureParent(path) { + // return the parent node, creating subdirs as necessary + var parts = path.split('/'); + var parent = root; + for (var i = 0; i < parts.length-1; i++) { + var curr = parts.slice(0, i+1).join('/'); + // Issue 4254: Using curr as a node name will prevent the node + // from being found in FS.nameTable when FS.open is called on + // a path which holds a child of this node, + // given that all FS functions assume node names + // are just their corresponding parts within their given path, + // rather than incremental aggregates which include their parent's + // directories. + if (!createdParents[curr]) { + createdParents[curr] = WORKERFS.createNode(parent, parts[i], WORKERFS.DIR_MODE, 0); + } + parent = createdParents[curr]; + } + return parent; + } + function base(path) { + var parts = path.split('/'); + return parts[parts.length-1]; + } + // We also accept FileList here, by using Array.prototype + Array.prototype.forEach.call(mount.opts["files"] || [], function(file) { + WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate); + }); + (mount.opts["blobs"] || []).forEach(function(obj) { + WORKERFS.createNode(ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"]); + }); + (mount.opts["packages"] || []).forEach(function(pack) { + pack['metadata'].files.forEach(function(file) { + var name = file.filename.substr(1); // remove initial slash + WORKERFS.createNode(ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack['blob'].slice(file.start, file.end)); + }); + }); + return root; + },createNode:function (parent, name, mode, dev, contents, mtime) { + var node = FS.createNode(parent, name, mode); + node.mode = mode; + node.node_ops = WORKERFS.node_ops; + node.stream_ops = WORKERFS.stream_ops; + node.timestamp = (mtime || new Date).getTime(); + assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE); + if (mode === WORKERFS.FILE_MODE) { + node.size = contents.size; + node.contents = contents; + } else { + node.size = 4096; + node.contents = {}; + } + if (parent) { + parent.contents[name] = node; + } + return node; + },node_ops:{getattr:function(node) { + return { + dev: 1, + ino: node.id, + mode: node.mode, + nlink: 1, + uid: 0, + gid: 0, + rdev: undefined, + size: node.size, + atime: new Date(node.timestamp), + mtime: new Date(node.timestamp), + ctime: new Date(node.timestamp), + blksize: 4096, + blocks: Math.ceil(node.size / 4096), + }; + },setattr:function(node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + },lookup:function(parent, name) { + throw new FS.ErrnoError(44); + },mknod:function (parent, name, mode, dev) { + throw new FS.ErrnoError(63); + },rename:function (oldNode, newDir, newName) { + throw new FS.ErrnoError(63); + },unlink:function(parent, name) { + throw new FS.ErrnoError(63); + },rmdir:function(parent, name) { + throw new FS.ErrnoError(63); + },readdir:function(node) { + var entries = ['.', '..']; + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + },symlink:function(parent, newName, oldPath) { + throw new FS.ErrnoError(63); + },readlink:function(node) { + throw new FS.ErrnoError(63); + }},stream_ops:{read:function (stream, buffer, offset, length, position) { + if (position >= stream.node.size) return 0; + var chunk = stream.node.contents.slice(position, position + length); + var ab = WORKERFS.reader.readAsArrayBuffer(chunk); + buffer.set(new Uint8Array(ab), offset); + return chunk.size; + },write:function (stream, buffer, offset, length, position) { + throw new FS.ErrnoError(29); + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { + position += stream.position; + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + position += stream.node.size; + } + } + if (position < 0) { + throw new FS.ErrnoError(28); + } + return position; + }}}; + + var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135}; + var PROXYFS={mount:function (mount) { + return PROXYFS.createNode(null, '/', mount.opts.fs.lstat(mount.opts.root).mode, 0); + },createNode:function (parent, name, mode, dev) { + if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var node = FS.createNode(parent, name, mode); + node.node_ops = PROXYFS.node_ops; + node.stream_ops = PROXYFS.stream_ops; + return node; + },realPath:function (node) { + var parts = []; + while (node.parent !== node) { + parts.push(node.name); + node = node.parent; + } + parts.push(node.mount.opts.root); + parts.reverse(); + return PATH.join.apply(null, parts); + },node_ops:{getattr:function(node) { + var path = PROXYFS.realPath(node); + var stat; + try { + stat = node.mount.opts.fs.lstat(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return { + dev: stat.dev, + ino: stat.ino, + mode: stat.mode, + nlink: stat.nlink, + uid: stat.uid, + gid: stat.gid, + rdev: stat.rdev, + size: stat.size, + atime: stat.atime, + mtime: stat.mtime, + ctime: stat.ctime, + blksize: stat.blksize, + blocks: stat.blocks + }; + },setattr:function(node, attr) { + var path = PROXYFS.realPath(node); + try { + if (attr.mode !== undefined) { + node.mount.opts.fs.chmod(path, attr.mode); + // update the common node structure mode as well + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + var date = new Date(attr.timestamp); + node.mount.opts.fs.utime(path, date, date); + } + if (attr.size !== undefined) { + node.mount.opts.fs.truncate(path, attr.size); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },lookup:function (parent, name) { + try { + var path = PATH.join2(PROXYFS.realPath(parent), name); + var mode = parent.mount.opts.fs.lstat(path).mode; + var node = PROXYFS.createNode(parent, name, mode); + return node; + } catch(e) { + // console.log("ERROR", e) + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },mknod:function (parent, name, mode, dev) { + var node = PROXYFS.createNode(parent, name, mode, dev); + // create the backing node for this in the fs root as well + var path = PROXYFS.realPath(node); + try { + if (FS.isDir(node.mode)) { + node.mount.opts.fs.mkdir(path, node.mode); + } else { + node.mount.opts.fs.writeFile(path, '', { mode: node.mode }); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return node; + },rename:function (oldNode, newDir, newName) { + var oldPath = PROXYFS.realPath(oldNode); + var newPath = PATH.join2(PROXYFS.realPath(newDir), newName); + try { + oldNode.mount.opts.fs.rename(oldPath, newPath); + } catch(e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },unlink:function(parent, name) { + var path = PATH.join2(PROXYFS.realPath(parent), name); + try { + parent.mount.opts.fs.unlink(path); + } catch(e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },rmdir:function(parent, name) { + var path = PATH.join2(PROXYFS.realPath(parent), name); + try { + parent.mount.opts.fs.rmdir(path); + } catch(e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },readdir:function(node) { + var path = PROXYFS.realPath(node); + try { + return node.mount.opts.fs.readdir(path); + } catch(e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },symlink:function(parent, newName, oldPath) { + var newPath = PATH.join2(PROXYFS.realPath(parent), newName); + try { + parent.mount.opts.fs.symlink(oldPath, newPath); + } catch(e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },readlink:function(node) { + var path = PROXYFS.realPath(node); + try { + return node.mount.opts.fs.readlink(path); + } catch(e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + }},stream_ops:{open:function (stream) { + var path = PROXYFS.realPath(stream.node); + try { + stream.nfd = stream.node.mount.opts.fs.open(path,stream.flags); + } catch(e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },close:function (stream) { + try { + stream.node.mount.opts.fs.close(stream.nfd); + } catch(e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },read:function (stream, buffer, offset, length, position) { + try { + return stream.node.mount.opts.fs.read(stream.nfd, buffer, offset, length, position); + } catch(e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },write:function (stream, buffer, offset, length, position) { + try { + return stream.node.mount.opts.fs.write(stream.nfd, buffer, offset, length, position); + } catch(e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { + position += stream.position; + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + try { + var stat = stream.node.node_ops.getattr(stream.node); + position += stat.size; + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + } + } + + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + + return position; + }}}; + + var ERRNO_MESSAGES={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"}; + var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(path, opts) { + path = PATH_FS.resolve(FS.cwd(), path); + opts = opts || {}; + if (!path) return { path: '', node: null }; + + var defaults = { + follow_mount: true, + recurse_count: 0 + }; + for (var key in defaults) { + if (opts[key] === undefined) { + opts[key] = defaults[key]; + } + } + + if (opts.recurse_count > 8) { // max recursive lookup of 8 + throw new FS.ErrnoError(32); + } + + // split the path + var parts = PATH.normalizeArray(path.split('/').filter(function(p) { + return !!p; + }), false); + + // start at the root + var current = FS.root; + var current_path = '/'; + + for (var i = 0; i < parts.length; i++) { + // console.log(i) + var islast = (i === parts.length-1); + if (islast && opts.parent) { + // stop resolving + break; + } + + current = FS.lookupNode(current, parts[i]); +// console.log(i, current) + current_path = PATH.join2(current_path, parts[i]); + + // 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; + } + } + + // 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); + +// console.log("current_path", current_path) + var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count }); +// console.log("lookup", lookup) + current = lookup.node; + + if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). + throw new FS.ErrnoError(32); + } + } + } + } + + return { path: current_path, node: current }; + },getPath:function(node) { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path; + } + path = path ? node.name + '/' + path : node.name; + node = node.parent; + } + },hashName:function(parentid, name) { + var hash = 0; + + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; + } + return ((parentid + hash) >>> 0) % FS.nameTable.length; + },hashAddNode:function(node) { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + },hashRemoveNode:function(node) { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + },lookupNode:function(parent, name) { + var errCode = FS.mayLookup(parent); + if (errCode) { + throw new FS.ErrnoError(errCode, parent); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + // if we failed to find it in the cache, call into the VFS + return FS.lookup(parent, name); + },createNode:function(parent, name, mode, rdev) { + assert(typeof parent === 'object') + var node = new FS.FSNode(parent, name, mode, rdev); + + FS.hashAddNode(node); + + return node; + },destroyNode:function(node) { + FS.hashRemoveNode(node); + },isRoot:function(node) { + return node === node.parent; + },isMountpoint:function(node) { + return !!node.mounted; + },isFile:function(mode) { + return (mode & 61440) === 32768; + },isDir:function(mode) { + return (mode & 61440) === 16384; + },isLink:function(mode) { + return (mode & 61440) === 40960; + },isChrdev:function(mode) { + return (mode & 61440) === 8192; + },isBlkdev:function(mode) { + return (mode & 61440) === 24576; + },isFIFO:function(mode) { + return (mode & 61440) === 4096; + },isSocket:function(mode) { + return (mode & 49152) === 49152; + },flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str) { + var flags = FS.flagModes[str]; + if (typeof flags === 'undefined') { + throw new Error('Unknown file open mode: ' + str); + } + return flags; + },flagsToPermissionString:function(flag) { + var perms = ['r', 'w', 'rw'][flag & 3]; + if ((flag & 512)) { + perms += 'w'; + } + return perms; + },nodePermissions:function(node, perms) { + if (FS.ignorePermissions) { + return 0; + } + // 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)) { + return 2; + } else if (perms.includes('x') && !(node.mode & 73)) { + return 2; + } + return 0; + },mayLookup:function(dir) { + var errCode = FS.nodePermissions(dir, 'x'); + if (errCode) return errCode; + if (!dir.node_ops.lookup) return 2; + return 0; + },mayCreate:function(dir, name) { + try { + var node = FS.lookupNode(dir, name); + return 20; + } catch (e) { + } + return FS.nodePermissions(dir, 'wx'); + },mayDelete:function(dir, name, isdir) { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var errCode = FS.nodePermissions(dir, 'wx'); + if (errCode) { + return errCode; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return 54; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return 10; + } + } else { + if (FS.isDir(node.mode)) { + return 31; + } + } + return 0; + },mayOpen:function(node, flags) { + if (!node) { + return 44; + } + 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) + return 31; + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + },MAX_OPEN_FDS:4096,nextfd:function(fd_start, fd_end) { + fd_start = fd_start || 0; + fd_end = fd_end || FS.MAX_OPEN_FDS; + for (var fd = fd_start; fd <= fd_end; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(33); + },getStream:function(fd) { + return FS.streams[fd]; + },createStream:function(stream, fd_start, fd_end) { + if (!FS.FSStream) { + FS.FSStream = /** @constructor */ function(){}; + FS.FSStream.prototype = { + object: { + get: function() { return this.node; }, + set: function(val) { this.node = val; } + }, + isRead: { + get: function() { return (this.flags & 2097155) !== 1; } + }, + isWrite: { + get: function() { return (this.flags & 2097155) !== 0; } + }, + isAppend: { + get: function() { return (this.flags & 1024); } + } + }; + } + // clone it, so we can return an instance of FSStream + var newStream = new FS.FSStream(); + for (var p in stream) { + newStream[p] = stream[p]; + } + stream = newStream; + var fd = FS.nextfd(fd_start, fd_end); + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + },closeStream:function(fd) { + FS.streams[fd] = null; + },chrdev_stream_ops:{open:function(stream) { + var device = FS.getDevice(stream.node.rdev); + // override node's stream ops with the device's + stream.stream_ops = device.stream_ops; + // forward the open call + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + },llseek:function() { + throw new FS.ErrnoError(70); + }},major:function(dev) { + return ((dev) >> 8); + },minor:function(dev) { + return ((dev) & 0xff); + },makedev:function(ma, mi) { + return ((ma) << 8 | (mi)); + },registerDevice:function(dev, ops) { + FS.devices[dev] = { stream_ops: ops }; + },getDevice:function(dev) { + return FS.devices[dev]; + },getMounts:function(mount) { + var mounts = []; + var check = [mount]; + + while (check.length) { + var m = check.pop(); + + mounts.push(m); + + check.push.apply(check, m.mounts); + } + + return mounts; + },syncfs:function(populate, callback) { + if (typeof(populate) === 'function') { + callback = populate; + populate = false; + } + + FS.syncFSRequests++; + + if (FS.syncFSRequests > 1) { + err('warning: ' + FS.syncFSRequests + ' FS.syncfs operations in flight at once, probably just doing extra work'); + } + + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + + function doCallback(errCode) { + assert(FS.syncFSRequests > 0); + FS.syncFSRequests--; + return callback(errCode); + } + + function done(errCode) { + if (errCode) { + if (!done.errored) { + done.errored = true; + return doCallback(errCode); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + }; + + // sync all mounts + mounts.forEach(function (mount) { + if (!mount.type.syncfs) { + return done(null); + } + mount.type.syncfs(mount, populate, done); + }); + },mount:function(type, opts, mountpoint) { + if (typeof type === 'string') { + // The filesystem was not included, and instead we have an error + // message stored in the variable. + throw type; + } + var root = mountpoint === '/'; + var pseudo = !mountpoint; + var node; + + if (root && FS.root) { + throw new FS.ErrnoError(10); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + mountpoint = lookup.path; // use the absolute path + node = lookup.node; + + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + } + + var mount = { + type: type, + opts: opts, + mountpoint: mountpoint, + mounts: [] + }; + + // create a root node for the fs + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + + if (root) { + FS.root = mountRoot; + } else if (node) { + // set as a mountpoint + node.mounted = mount; + + // add the new mount to the current mount's children + if (node.mount) { + node.mount.mounts.push(mount); + } + } + + return mountRoot; + },unmount:function (mountpoint) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(28); + } + + // destroy the nodes for this mount, and all its child mounts + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + + Object.keys(FS.nameTable).forEach(function (hash) { + var current = FS.nameTable[hash]; + + while (current) { + var next = current.name_next; + + if (mounts.includes(current.mount)) { + FS.destroyNode(current); + } + + current = next; + } + }); + + // no longer a mountpoint + node.mounted = null; + + // remove this mount from the child mounts + var idx = node.mount.mounts.indexOf(mount); + assert(idx !== -1); + node.mount.mounts.splice(idx, 1); + },lookup:function(parent, name) { + // console.log("lookup", parent, name) + return parent.node_ops.lookup(parent, name); + },mknod:function(path, mode, dev) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name || name === '.' || name === '..') { + throw new FS.ErrnoError(28); + } + var errCode = FS.mayCreate(parent, name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.mknod(parent, name, mode, dev); + },create:function(path, mode) { + mode = mode !== undefined ? mode : 438 /* 0666 */; + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + },mkdir:function(path, mode) { + mode = mode !== undefined ? mode : 511 /* 0777 */; + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + },mkdirTree:function(path, mode) { + var dirs = path.split('/'); + var d = ''; + for (var i = 0; i < dirs.length; ++i) { + if (!dirs[i]) continue; + d += '/' + dirs[i]; + try { + FS.mkdir(d, mode); + } catch(e) { + if (e.errno != 20) throw e; + } + } + },mkdev:function(path, mode, dev) { + if (typeof(dev) === 'undefined') { + dev = mode; + mode = 438 /* 0666 */; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + },symlink:function(oldpath, newpath) { + if (!PATH_FS.resolve(oldpath)) { + throw new FS.ErrnoError(44); + } + 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); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.symlink(parent, newname, oldpath); + },rename:function(old_path, new_path) { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + // parents must exist + var lookup, old_dir, new_dir; + + // let the errors from non existant directories percolate up + lookup = FS.lookupPath(old_path, { parent: true }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { parent: true }); + new_dir = lookup.node; + + if (!old_dir || !new_dir) throw new FS.ErrnoError(44); + // need to be part of the same mount + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(75); + } + // source must exist + var old_node = FS.lookupNode(old_dir, old_name); + // old path should not be an ancestor of the new path + var relative = PATH_FS.relative(old_path, new_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(28); + } + // new path should not be an ancestor of the old path + relative = PATH_FS.relative(new_path, old_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(55); + } + // see if the new path already exists + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + // not fatal + } + // early out if nothing needs to change + if (old_node === new_node) { + return; + } + // we'll need to delete the old entry + var isdir = FS.isDir(old_node.mode); + var errCode = FS.mayDelete(old_dir, old_name, isdir); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + // need delete permissions if we'll be overwriting. + // need create permissions if new doesn't already exist. + errCode = new_node ? + FS.mayDelete(new_dir, new_name, isdir) : + FS.mayCreate(new_dir, new_name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { + throw new FS.ErrnoError(10); + } + // if we are going to change the parent, check write permissions + if (new_dir !== old_dir) { + errCode = FS.nodePermissions(old_dir, 'w'); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + try { + if (FS.trackingDelegate['willMovePath']) { + FS.trackingDelegate['willMovePath'](old_path, new_path); + } + } catch(e) { + err("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); + } + // remove the node from the lookup hash + FS.hashRemoveNode(old_node); + // do the underlying fs rename + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + } catch (e) { + throw e; + } finally { + // add the node back to the hash (in case node_ops.rename + // changed its name) + FS.hashAddNode(old_node); + } + try { + if (FS.trackingDelegate['onMovePath']) FS.trackingDelegate['onMovePath'](old_path, new_path); + } catch(e) { + err("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); + } + },rmdir:function(path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, true); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + try { + if (FS.trackingDelegate['willDeletePath']) { + FS.trackingDelegate['willDeletePath'](path); + } + } catch(e) { + err("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + try { + if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); + } catch(e) { + err("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); + } + },readdir:function(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); + },unlink:function(path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, false); + if (errCode) { + // According to POSIX, we should map EISDIR to EPERM, but + // we instead do what Linux does (and we must, as we use + // the musl linux libc). + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + try { + if (FS.trackingDelegate['willDeletePath']) { + FS.trackingDelegate['willDeletePath'](path); + } + } catch(e) { + err("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + try { + if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); + } catch(e) { + err("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); + } + },readlink:function(path) { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(44); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(28); + } + return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); + },stat:function(path, dontFollow) { + // console.log("stat", path, dontFollow) + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + // console.log("lookup", lookup) + var node = lookup.node; + if (!node) { + throw new FS.ErrnoError(44); + } + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(63); + } + // console.log("node.node_ops.getattr") + return node.node_ops.getattr(node); + },lstat:function(path) { + return FS.stat(path, true); + },chmod:function(path, mode, dontFollow) { + var node; + 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() + }); + },lchmod:function(path, mode) { + FS.chmod(path, mode, true); + },fchmod:function(fd, mode) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + FS.chmod(stream.node, mode); + },chown:function(path, uid, gid, dontFollow) { + var node; + 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 + }); + },lchown:function(path, uid, gid) { + FS.chown(path, uid, gid, true); + },fchown:function(fd, uid, gid) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + FS.chown(stream.node, uid, gid); + },truncate:function(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); + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(31); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(28); + } + var errCode = FS.nodePermissions(node, 'w'); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + node.node_ops.setattr(node, { + size: len, + timestamp: Date.now() + }); + },ftruncate:function(fd, len) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(28); + } + FS.truncate(stream.node, len); + },utime:function(path, atime, mtime) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + node.node_ops.setattr(node, { + timestamp: Math.max(atime, mtime) + }); + },open:function(path, flags, mode, fd_start, fd_end) { + if (path === "") { + throw new FS.ErrnoError(44); + } + flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags; + mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode; + if ((flags & 64)) { + mode = (mode & 4095) | 32768; + } else { + mode = 0; + } + var node; + 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 + } + } + // perhaps we need to create the node + var created = false; + if ((flags & 64)) { + if (node) { + // if O_CREAT and O_EXCL are set, error out if the node already exists + if ((flags & 128)) { + throw new FS.ErrnoError(20); + } + } else { + // node doesn't exist, try to create it + node = FS.mknod(path, mode, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(44); + } + // can't truncate a device + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + // if asked only for a directory, then this must be one + if ((flags & 65536) && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + // check permissions, if this is not a file we just created now (it is ok to + // create and write to a file with read-only permissions; it is read-only + // for later use) + if (!created) { + var errCode = FS.mayOpen(node, flags); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + // do truncation if necessary + if ((flags & 512)) { + FS.truncate(node, 0); + } + // we've already handled these, don't pass down to the underlying vfs + flags &= ~(128 | 512 | 131072); + + // register the stream with the filesystem + var stream = FS.createStream({ + node: node, + path: FS.getPath(node), // we want the absolute path to the node + flags: flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + // used by the file family libc calls (fopen, fwrite, ferror, etc.) + ungotten: [], + error: false + }, fd_start, fd_end); + // call the new stream's open function + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (Module['logReadFiles'] && !(flags & 1)) { + if (!FS.readFiles) FS.readFiles = {}; + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + err("FS.trackingDelegate error on read file: " + path); + } + } + try { + if (FS.trackingDelegate['onOpenFile']) { + var trackingFlags = 0; + if ((flags & 2097155) !== 1) { + trackingFlags |= FS.tracking.openFlags.READ; + } + if ((flags & 2097155) !== 0) { + trackingFlags |= FS.tracking.openFlags.WRITE; + } + FS.trackingDelegate['onOpenFile'](path, trackingFlags); + } + } catch(e) { + err("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: " + e.message); + } + return stream; + },close:function(stream) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (stream.getdents) stream.getdents = null; // free readdir state + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + stream.fd = null; + },isClosed:function(stream) { + return stream.fd === null; + },llseek:function(stream, offset, whence) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(70); + } + if (whence != 0 && whence != 1 && whence != 2) { + throw new FS.ErrnoError(28); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + },read:function(stream, buffer, offset, length, position) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(28); + } + var seeking = typeof position !== 'undefined'; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); + if (!seeking) stream.position += bytesRead; + return bytesRead; + },write:function(stream, buffer, offset, length, position, canOwn) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(28); + } + if (stream.seekable && stream.flags & 1024) { + // seek to the end before writing in append mode + FS.llseek(stream, 0, 2); + } + var seeking = typeof position !== 'undefined'; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); + if (!seeking) stream.position += bytesWritten; + try { + if (stream.path && FS.trackingDelegate['onWriteToFile']) FS.trackingDelegate['onWriteToFile'](stream.path); + } catch(e) { + err("FS.trackingDelegate['onWriteToFile']('"+stream.path+"') threw an exception: " + e.message); + } + return bytesWritten; + },allocate:function(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:function(stream, address, length, position, prot, flags) { + // User requests writing to file (prot & PROT_WRITE != 0). + // Checking if we have permissions to write to the file unless + // MAP_PRIVATE flag is set. According to POSIX spec it is possible + // 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 + && (stream.flags & 2097155) !== 2) { + throw new FS.ErrnoError(2); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(2); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(43); + } + return stream.stream_ops.mmap(stream, address, length, position, prot, flags); + },msync:function(stream, buffer, offset, length, mmapFlags) { + if (!stream || !stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + },munmap:function(stream) { + return 0; + },ioctl:function(stream, cmd, arg) { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(59); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + },readFile:function(path, opts) { + opts = opts || {}; + opts.flags = opts.flags || 0; + opts.encoding = opts.encoding || 'binary'; + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + throw new Error('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, 0); + } else if (opts.encoding === 'binary') { + ret = buf; + } + FS.close(stream); + return ret; + },writeFile:function(path, data, opts) { + opts = opts || {}; + opts.flags = 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'); + } + FS.close(stream); + },cwd:function() { + return FS.currentPath; + },chdir:function(path) { + var lookup = FS.lookupPath(path, { follow: true }); + if (lookup.node === null) { + throw new FS.ErrnoError(44); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(54); + } + var errCode = FS.nodePermissions(lookup.node, 'x'); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.currentPath = lookup.path; + },createDefaultDirectories:function() { + FS.mkdir('/tmp'); + FS.mkdir('/home'); + FS.mkdir('/home/web_user'); + },createDefaultDevices:function() { + // create /dev + FS.mkdir('/dev'); + // setup /dev/null + FS.registerDevice(FS.makedev(1, 3), { + read: function() { return 0; }, + write: function(stream, buffer, offset, length, pos) { return length; } + }); + FS.mkdev('/dev/null', FS.makedev(1, 3)); + // setup /dev/tty and /dev/tty1 + // stderr needs to print output using err() rather than out() + // so we register a second tty just for it. + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev('/dev/tty', FS.makedev(5, 0)); + FS.mkdev('/dev/tty1', FS.makedev(6, 0)); + // setup /dev/[u]random + var random_device = getRandomDevice(); + FS.createDevice('/dev', 'random', random_device); + FS.createDevice('/dev', 'urandom', random_device); + // we're not going to emulate the actual shm device, + // just create the tmp dirs that reside in it commonly + FS.mkdir('/dev/shm'); + FS.mkdir('/dev/shm/tmp'); + },createSpecialDirectories:function() { + // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the + // name of the stream for fd 6 (see test_unistd_ttyname) + FS.mkdir('/proc'); + var proc_self = FS.mkdir('/proc/self'); + FS.mkdir('/proc/self/fd'); + FS.mount({ + mount: function() { + var node = FS.createNode(proc_self, 'fd', 16384 | 511 /* 0777 */, 73); + node.node_ops = { + lookup: function(parent, name) { + var fd = +name; + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(8); + var ret = { + parent: null, + mount: { mountpoint: 'fake' }, + node_ops: { readlink: function() { return stream.path } } + }; + ret.parent = ret; // make it look like a simple root node + return ret; + } + }; + return node; + } + }, {}, '/proc/self/fd'); + },createStandardStreams:function() { + // TODO deprecate the old functionality of a single + // input / output callback and that utilizes FS.createDevice + // and instead require a unique set of stream ops + + // by default, we symlink the standard streams to the + // default tty devices. however, if the standard streams + // have been overwritten we create a unique device for + // them instead. + if (Module['stdin']) { + FS.createDevice('/dev', 'stdin', Module['stdin']); + } else { + FS.symlink('/dev/tty', '/dev/stdin'); + } + if (Module['stdout']) { + FS.createDevice('/dev', 'stdout', null, Module['stdout']); + } else { + FS.symlink('/dev/tty', '/dev/stdout'); + } + if (Module['stderr']) { + FS.createDevice('/dev', 'stderr', null, Module['stderr']); + } else { + FS.symlink('/dev/tty1', '/dev/stderr'); + } + + // open default streams for the stdin, stdout and stderr devices + var stdin = FS.open('/dev/stdin', 0); + var stdout = FS.open('/dev/stdout', 1); + var stderr = FS.open('/dev/stderr', 1); + assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')'); + assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')'); + assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')'); + },ensureErrnoError:function() { + if (FS.ErrnoError) return; + FS.ErrnoError = /** @this{Object} */ function ErrnoError(errno, node) { + this.node = node; + this.setErrno = /** @this{Object} */ function(errno) { + this.errno = errno; + for (var key in ERRNO_CODES) { + if (ERRNO_CODES[key] === errno) { + this.code = key; + break; + } + } + }; + this.setErrno(errno); + this.message = ERRNO_MESSAGES[errno]; + + // Try to get a maximally helpful stack trace. On Node.js, getting Error.stack + // now ensures it shows what we want. + if (this.stack) { + // Define the stack property for Node.js 4, which otherwise errors on the next line. + Object.defineProperty(this, "stack", { value: (new Error).stack, writable: true }); + this.stack = demangleAll(this.stack); + } + }; + FS.ErrnoError.prototype = new Error(); + FS.ErrnoError.prototype.constructor = FS.ErrnoError; + // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) + [44].forEach(function(code) { + FS.genericErrors[code] = new FS.ErrnoError(code); + FS.genericErrors[code].stack = ''; + }); + },staticInit:function() { + FS.ensureErrnoError(); + + FS.nameTable = new Array(4096); + + FS.mount(MEMFS, {}, '/'); + + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + + FS.filesystems = { + 'MEMFS': MEMFS, + 'WORKERFS': WORKERFS, + 'PROXYFS': PROXYFS, + }; + },init:function(input, output, error) { + assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)'); + FS.init.initialized = true; + + FS.ensureErrnoError(); + + // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here + Module['stdin'] = input || Module['stdin']; + Module['stdout'] = output || Module['stdout']; + Module['stderr'] = error || Module['stderr']; + + FS.createStandardStreams(); + },quit:function() { + FS.init.initialized = false; + // force-flush all streams, so we get musl std streams printed out + var fflush = Module['_fflush']; + if (fflush) fflush(0); + // close all of our streams + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i]; + if (!stream) { + continue; + } + FS.close(stream); + } + },getMode:function(canRead, canWrite) { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; + },findObject:function(path, dontResolveLastLink) { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (ret.exists) { + return ret.object; + } else { + return null; + } + },analyzePath:function(path, dontResolveLastLink) { + // operate from within the context of the symlink's target + try { + var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + path = lookup.path; + } catch (e) { + } + var ret = { + isRoot: false, exists: false, error: 0, name: null, path: null, object: null, + parentExists: false, parentPath: null, parentObject: null + }; + try { + var lookup = FS.lookupPath(path, { parent: true }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === '/'; + } catch (e) { + ret.error = e.errno; + }; + return ret; + },createPath:function(parent, path, canRead, canWrite) { + parent = typeof parent === 'string' ? parent : FS.getPath(parent); + var parts = path.split('/').reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + // ignore EEXIST + } + parent = current; + } + return current; + },createFile:function(parent, name, properties, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.create(path, mode); + },createDataFile:function(parent, name, data, canRead, canWrite, canOwn) { + var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(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; + } + // make sure we can write to the file + FS.chmod(node, mode | 146); + var stream = FS.open(node, 577); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + return node; + },createDevice:function(parent, name, input, output) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(!!input, !!output); + if (!FS.createDevice.major) FS.createDevice.major = 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + // Create a fake device that a set of stream ops to emulate + // the old behavior. + FS.registerDevice(dev, { + open: function(stream) { + stream.seekable = false; + }, + close: function(stream) { + // flush any pending line data + if (output && output.buffer && output.buffer.length) { + output(10); + } + }, + read: function(stream, buffer, offset, length, pos /* ignored */) { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset+i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: function(stream, buffer, offset, length, pos) { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset+i]); + } catch (e) { + throw new FS.ErrnoError(29); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + } + }); + return FS.mkdev(path, mode, dev); + },forceLoadFile:function(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."); + } else if (read_) { + // Command-line. + try { + // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as + // read() will try to parse UTF8. + obj.contents = intArrayFromString(read_(obj.url), true); + obj.usedBytes = obj.contents.length; + } catch (e) { + throw new FS.ErrnoError(29); + } + } else { + throw new Error('Cannot load without read() or XMLHttpRequest.'); + } + },createLazyFile:function(parent, name, url, canRead, canWrite) { + // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. + /** @constructor */ + function LazyUint8Array() { + this.lengthKnown = false; + this.chunks = []; // Loaded chunks. Index is the chunk number + } + LazyUint8Array.prototype.get = /** @this{Object} */ function LazyUint8Array_get(idx) { + if (idx > this.length-1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = (idx / this.chunkSize)|0; + return this.getter(chunkNum)[chunkOffset]; + }; + LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { + this.getter = getter; + }; + LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { + // Find length + 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")); + var header; + 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 + + if (!hasByteServing) chunkSize = datalength; + + // Function to get a range from the remote URL. + var doXHR = (function(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!"); + + // 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); + + // Some hints to the browser that we want binary data. + if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer'; + if (xhr.overrideMimeType) { + xhr.overrideMimeType('text/plain; charset=x-user-defined'); + } + + 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.response !== undefined) { + return new Uint8Array(/** @type{Array} */(xhr.response || [])); + } else { + return intArrayFromString(xhr.responseText || '', true); + } + }); + var lazyArray = this; + lazyArray.setDataGetter(function(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") { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!"); + return lazyArray.chunks[chunkNum]; + }); + + if (usesGzip || !datalength) { + // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length + 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"); + } + + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + }; + 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'; + var lazyArray = new LazyUint8Array(); + Object.defineProperties(lazyArray, { + length: { + get: /** @this{Object} */ function() { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + } + }, + chunkSize: { + get: /** @this{Object} */ function() { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + } + } + }); + + var properties = { isDevice: false, contents: lazyArray }; + } else { + var properties = { isDevice: false, url: url }; + } + + var node = FS.createFile(parent, name, properties, canRead, canWrite); + // This is a total hack, but I want to get this lazy file code out of the + // core of MEMFS. If we want to keep this lazy file concept I feel it should + // be its own thin LAZYFS proxying calls to MEMFS. + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + // Add a function that defers querying the file size until it is asked the first time. + Object.defineProperties(node, { + usedBytes: { + get: /** @this {FSNode} */ function() { return this.contents.length; } + } + }); + // 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(function(key) { + var fn = node.stream_ops[key]; + stream_ops[key] = function forceLoadLazyFile() { + FS.forceLoadFile(node); + return fn.apply(null, arguments); + }; + }); + // use a custom read function + stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) { + FS.forceLoadFile(node); + var contents = stream.node.contents; + if (position >= contents.length) + return 0; + var size = Math.min(contents.length - position, length); + assert(size >= 0); + if (contents.slice) { // normal array + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR + buffer[offset + i] = contents.get(position + i); + } + } + return size; + }; + node.stream_ops = stream_ops; + return node; + },createPreloadedFile:function(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) { + Browser.init(); // XXX perhaps this method should move onto Browser? + // 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) { + if (preFinish) preFinish(); + if (!dontCreateFile) { + FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + if (onload) onload(); + removeRunDependency(dep); + } + var handled = false; + Module['preloadPlugins'].forEach(function(plugin) { + if (handled) return; + if (plugin['canHandle'](fullname)) { + plugin['handle'](byteArray, fullname, finish, function() { + if (onerror) onerror(); + removeRunDependency(dep); + }); + handled = true; + } + }); + if (!handled) finish(byteArray); + } + addRunDependency(dep); + if (typeof url == 'string') { + asyncLoad(url, function(byteArray) { + processData(byteArray); + }, onerror); + } else { + processData(url); + } + },indexedDB:function() { + return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + },DB_NAME:function() { + return 'EM_FS_' + window.location.pathname; + },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(paths, onload, onerror) { + onload = onload || function(){}; + onerror = onerror || function(){}; + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { + out('creating db'); + var db = openRequest.result; + db.createObjectStore(FS.DB_STORE_NAME); + }; + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result; + var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite'); + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + function finish() { + if (fail == 0) onload(); else onerror(); + } + paths.forEach(function(path) { + var putRequest = files.put(FS.analyzePath(path).object.contents, path); + putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() }; + putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + },loadFilesFromDB:function(paths, onload, onerror) { + onload = onload || function(){}; + onerror = onerror || function(){}; + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = onerror; // no database to load from + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result; + try { + var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly'); + } catch(e) { + onerror(e); + return; + } + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + function finish() { + if (fail == 0) onload(); else onerror(); + } + paths.forEach(function(path) { + var getRequest = files.get(path); + getRequest.onsuccess = function getRequest_onsuccess() { + if (FS.analyzePath(path).exists) { + FS.unlink(path); + } + FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); + ok++; + if (ok + fail == total) finish(); + }; + getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + },absolutePath:function() { + abort('FS.absolutePath has been removed; use PATH_FS.resolve instead'); + },createFolder:function() { + abort('FS.createFolder has been removed; use FS.mkdir instead'); + },createLink:function() { + abort('FS.createLink has been removed; use FS.symlink instead'); + },joinPath:function() { + abort('FS.joinPath has been removed; use PATH.join instead'); + },mmapAlloc:function() { + abort('FS.mmapAlloc has been replaced by the top level function mmapAlloc'); + },standardizePath:function() { + abort('FS.standardizePath has been removed; use PATH.normalize instead'); + }}; + var SYSCALLS={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(dirfd, path, allowEmpty) { + if (path[0] === '/') { + return path; + } + // relative path + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = FS.getStream(dirfd); + if (!dirstream) throw new FS.ErrnoError(8); + dir = dirstream.path; + } + if (path.length == 0) { + if (!allowEmpty) { + throw new FS.ErrnoError(44);; + } + return dir; + } + return PATH.join2(dir, path); + },doStat:function(func, path, buf) { + try { + var stat = func(path); + } catch (e) { + if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { + // an error occurred while trying to look up the path; we should just report ENOTDIR + return -54; + } + throw e; + } + HEAP32[((buf)>>2)] = stat.dev; + HEAP32[(((buf)+(4))>>2)] = 0; + HEAP32[(((buf)+(8))>>2)] = stat.ino; + HEAP32[(((buf)+(12))>>2)] = stat.mode; + HEAP32[(((buf)+(16))>>2)] = stat.nlink; + HEAP32[(((buf)+(20))>>2)] = stat.uid; + HEAP32[(((buf)+(24))>>2)] = stat.gid; + HEAP32[(((buf)+(28))>>2)] = stat.rdev; + HEAP32[(((buf)+(32))>>2)] = 0; + (tempI64 = [stat.size>>>0,(tempDouble=stat.size,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(40))>>2)] = tempI64[0],HEAP32[(((buf)+(44))>>2)] = tempI64[1]); + HEAP32[(((buf)+(48))>>2)] = 4096; + HEAP32[(((buf)+(52))>>2)] = stat.blocks; + HEAP32[(((buf)+(56))>>2)] = (stat.atime.getTime() / 1000)|0; + HEAP32[(((buf)+(60))>>2)] = 0; + HEAP32[(((buf)+(64))>>2)] = (stat.mtime.getTime() / 1000)|0; + HEAP32[(((buf)+(68))>>2)] = 0; + HEAP32[(((buf)+(72))>>2)] = (stat.ctime.getTime() / 1000)|0; + HEAP32[(((buf)+(76))>>2)] = 0; + (tempI64 = [stat.ino>>>0,(tempDouble=stat.ino,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(80))>>2)] = tempI64[0],HEAP32[(((buf)+(84))>>2)] = tempI64[1]); + return 0; + },doMsync:function(addr, stream, len, flags, offset) { + var buffer = HEAPU8.slice(addr, addr + len); + FS.msync(stream, buffer, offset, len, flags); + },doMkdir:function(path, mode) { + // 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); + return 0; + },doMknod:function(path, mode, dev) { + // we don't want this in the JS API as it uses mknod to create all nodes. + switch (mode & 61440) { + case 32768: + case 8192: + case 24576: + case 4096: + case 49152: + break; + default: return -28; + } + FS.mknod(path, mode, dev); + return 0; + },doReadlink:function(path, buf, bufsize) { + if (bufsize <= 0) return -28; + var ret = FS.readlink(path); + + var len = Math.min(bufsize, lengthBytesUTF8(ret)); + var endChar = HEAP8[buf+len]; + stringToUTF8(ret, buf, bufsize+1); + // readlink is one of the rare functions that write out a C string, but does never append a null to the output buffer(!) + // stringToUTF8() always appends a null byte, so restore the character under the null byte after the write. + HEAP8[buf+len] = endChar; + + return len; + },doAccess:function(path, amode) { + if (amode & ~7) { + // need a valid mode + return -28; + } + var node; + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + if (!node) { + return -44; + } + var perms = ''; + if (amode & 4) perms += 'r'; + if (amode & 2) perms += 'w'; + if (amode & 1) perms += 'x'; + if (perms /* otherwise, they've just passed F_OK */ && FS.nodePermissions(node, perms)) { + return -2; + } + return 0; + },doDup:function(path, flags, suggestFD) { + var suggest = FS.getStream(suggestFD); + if (suggest) FS.close(suggest); + return FS.open(path, flags, 0, suggestFD, suggestFD).fd; + },doReadv:function(stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[(((iov)+(i*8))>>2)]; + var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; + var curr = FS.read(stream, HEAP8,ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break; // nothing more to read + } + return ret; + },doWritev:function(stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[(((iov)+(i*8))>>2)]; + var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; + var curr = FS.write(stream, HEAP8,ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + } + return ret; + },varargs:undefined,get:function() { + assert(SYSCALLS.varargs != undefined); + SYSCALLS.varargs += 4; + var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; + return ret; + },getStr:function(ptr) { + var ret = UTF8ToString(ptr); + return ret; + },getStreamFromFD:function(fd) { + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(8); + return stream; + },get64:function(low, high) { + if (low >= 0) assert(high === 0); + else assert(high === -1); + return low; + }}; + function ___sys__newselect(nfds, readfds, writefds, exceptfds, timeout) {try { + + // readfds are supported, + // writefds checks socket open status + // exceptfds not supported + // timeout is always 0 - fully async + assert(nfds <= 64, 'nfds must be less than or equal to 64'); // fd sets have 64 bits // TODO: this could be 1024 based on current musl headers + assert(!exceptfds, 'exceptfds not supported'); + + var total = 0; + + var srcReadLow = (readfds ? HEAP32[((readfds)>>2)] : 0), + srcReadHigh = (readfds ? HEAP32[(((readfds)+(4))>>2)] : 0); + var srcWriteLow = (writefds ? HEAP32[((writefds)>>2)] : 0), + srcWriteHigh = (writefds ? HEAP32[(((writefds)+(4))>>2)] : 0); + var srcExceptLow = (exceptfds ? HEAP32[((exceptfds)>>2)] : 0), + srcExceptHigh = (exceptfds ? HEAP32[(((exceptfds)+(4))>>2)] : 0); + + var dstReadLow = 0, + dstReadHigh = 0; + var dstWriteLow = 0, + dstWriteHigh = 0; + var dstExceptLow = 0, + dstExceptHigh = 0; + + var allLow = (readfds ? HEAP32[((readfds)>>2)] : 0) | + (writefds ? HEAP32[((writefds)>>2)] : 0) | + (exceptfds ? HEAP32[((exceptfds)>>2)] : 0); + var allHigh = (readfds ? HEAP32[(((readfds)+(4))>>2)] : 0) | + (writefds ? HEAP32[(((writefds)+(4))>>2)] : 0) | + (exceptfds ? HEAP32[(((exceptfds)+(4))>>2)] : 0); + + var check = function(fd, low, high, val) { + return (fd < 32 ? (low & val) : (high & val)); + }; + + for (var fd = 0; fd < nfds; fd++) { + var mask = 1 << (fd % 32); + if (!(check(fd, allLow, allHigh, mask))) { + continue; // index isn't in the set + } + + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(8); + + var flags = SYSCALLS.DEFAULT_POLLMASK; + + if (stream.stream_ops.poll) { + flags = stream.stream_ops.poll(stream); + } + + if ((flags & 1) && check(fd, srcReadLow, srcReadHigh, mask)) { + fd < 32 ? (dstReadLow = dstReadLow | mask) : (dstReadHigh = dstReadHigh | mask); + total++; + } + if ((flags & 4) && check(fd, srcWriteLow, srcWriteHigh, mask)) { + fd < 32 ? (dstWriteLow = dstWriteLow | mask) : (dstWriteHigh = dstWriteHigh | mask); + total++; + } + if ((flags & 2) && check(fd, srcExceptLow, srcExceptHigh, mask)) { + fd < 32 ? (dstExceptLow = dstExceptLow | mask) : (dstExceptHigh = dstExceptHigh | mask); + total++; + } + } + + if (readfds) { + HEAP32[((readfds)>>2)] = dstReadLow; + HEAP32[(((readfds)+(4))>>2)] = dstReadHigh; + } + if (writefds) { + HEAP32[((writefds)>>2)] = dstWriteLow; + HEAP32[(((writefds)+(4))>>2)] = dstWriteHigh; + } + if (exceptfds) { + HEAP32[((exceptfds)>>2)] = dstExceptLow; + HEAP32[(((exceptfds)+(4))>>2)] = dstExceptHigh; + } + + return total; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___sys_access(path, amode) {try { + + path = SYSCALLS.getStr(path); + return SYSCALLS.doAccess(path, amode); + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___sys_chmod(path, mode) {try { + + path = SYSCALLS.getStr(path); + FS.chmod(path, mode); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + var SOCKFS={mount:function(mount) { + // If Module['websocket'] has already been defined (e.g. for configuring + // the subprotocol/url) use that, if not initialise it to a new object. + Module['websocket'] = (Module['websocket'] && + ('object' === typeof Module['websocket'])) ? Module['websocket'] : {}; + + // Add the Event registration mechanism to the exported websocket configuration + // object so we can register network callbacks from native JavaScript too. + // For more documentation see system/include/emscripten/emscripten.h + Module['websocket']._callbacks = {}; + Module['websocket']['on'] = /** @this{Object} */ function(event, callback) { + if ('function' === typeof callback) { + this._callbacks[event] = callback; + } + return this; + }; + + Module['websocket'].emit = /** @this{Object} */ function(event, param) { + if ('function' === typeof this._callbacks[event]) { + this._callbacks[event].call(this, param); + } + }; + + // If debug is enabled register simple default logging callbacks for each Event. + + return FS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); + },createSocket:function(family, type, protocol) { + type &= ~526336; // Some applications may pass it; it makes no sense for a single process. + var streaming = type == 1; + if (protocol) { + assert(streaming == (protocol == 6)); // if SOCK_STREAM, must be tcp + } + + // create our internal socket structure + var sock = { + family: family, + type: type, + protocol: protocol, + server: null, + error: null, // Used in getsockopt for SOL_SOCKET/SO_ERROR test + peers: {}, + pending: [], + recv_queue: [], + sock_ops: SOCKFS.websocket_sock_ops + }; + + // create the filesystem node to store the socket structure + var name = SOCKFS.nextname(); + var node = FS.createNode(SOCKFS.root, name, 49152, 0); + node.sock = sock; + + // and the wrapping stream that enables library functions such + // as read and write to indirectly interact with the socket + var stream = FS.createStream({ + path: name, + node: node, + flags: 2, + seekable: false, + stream_ops: SOCKFS.stream_ops + }); + + // map the new stream to the socket structure (sockets have a 1:1 + // relationship with a stream) + sock.stream = stream; + + return sock; + },getSocket:function(fd) { + var stream = FS.getStream(fd); + if (!stream || !FS.isSocket(stream.node.mode)) { + return null; + } + return stream.node.sock; + },stream_ops:{poll:function(stream) { + var sock = stream.node.sock; + return sock.sock_ops.poll(sock); + },ioctl:function(stream, request, varargs) { + var sock = stream.node.sock; + return sock.sock_ops.ioctl(sock, request, varargs); + },read:function(stream, buffer, offset, length, position /* ignored */) { + var sock = stream.node.sock; + var msg = sock.sock_ops.recvmsg(sock, length); + if (!msg) { + // socket is closed + return 0; + } + buffer.set(msg.buffer, offset); + return msg.buffer.length; + },write:function(stream, buffer, offset, length, position /* ignored */) { + var sock = stream.node.sock; + return sock.sock_ops.sendmsg(sock, buffer, offset, length); + },close:function(stream) { + var sock = stream.node.sock; + sock.sock_ops.close(sock); + }},nextname:function() { + if (!SOCKFS.nextname.current) { + SOCKFS.nextname.current = 0; + } + return 'socket[' + (SOCKFS.nextname.current++) + ']'; + },websocket_sock_ops:{createPeer:function(sock, addr, port) { + var ws; + + if (typeof addr === 'object') { + ws = addr; + addr = null; + port = null; + } + + if (ws) { + // for sockets that've already connected (e.g. we're the server) + // we can inspect the _socket property for the address + if (ws._socket) { + addr = ws._socket.remoteAddress; + port = ws._socket.remotePort; + } + // if we're just now initializing a connection to the remote, + // inspect the url property + else { + var result = /ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url); + if (!result) { + throw new Error('WebSocket URL must be in the format ws(s)://address:port'); + } + addr = result[1]; + port = parseInt(result[2], 10); + } + } else { + // create the actual websocket object and connect + try { + // runtimeConfig gets set to true if WebSocket runtime configuration is available. + var runtimeConfig = (Module['websocket'] && ('object' === typeof Module['websocket'])); + + // The default value is 'ws://' the replace is needed because the compiler replaces '//' comments with '#' + // comments without checking context, so we'd end up with ws:#, the replace swaps the '#' for '//' again. + var url = 'ws:#'.replace('#', '//'); + + if (runtimeConfig) { + if ('string' === typeof Module['websocket']['url']) { + url = Module['websocket']['url']; // Fetch runtime WebSocket URL config. + } + } + + if (url === 'ws://' || url === 'wss://') { // Is the supplied URL config just a prefix, if so complete it. + var parts = addr.split('/'); + url = url + parts[0] + ":" + port + "/" + parts.slice(1).join('/'); + } + + // Make the WebSocket subprotocol (Sec-WebSocket-Protocol) default to binary if no configuration is set. + var subProtocols = 'binary'; // The default value is 'binary' + + if (runtimeConfig) { + if ('string' === typeof Module['websocket']['subprotocol']) { + subProtocols = Module['websocket']['subprotocol']; // Fetch runtime WebSocket subprotocol config. + } + } + + // The default WebSocket options + var opts = undefined; + + if (subProtocols !== 'null') { + // The regex trims the string (removes spaces at the beginning and end, then splits the string by + // , into an Array. Whitespace removal is important for Websockify and ws. + subProtocols = subProtocols.replace(/^ +| +$/g,"").split(/ *, */); + + // The node ws library API for specifying optional subprotocol is slightly different than the browser's. + opts = ENVIRONMENT_IS_NODE ? {'protocol': subProtocols.toString()} : subProtocols; + } + + // some webservers (azure) does not support subprotocol header + if (runtimeConfig && null === Module['websocket']['subprotocol']) { + subProtocols = 'null'; + opts = undefined; + } + + // If node we use the ws library. + var WebSocketConstructor; + if (ENVIRONMENT_IS_NODE) { + WebSocketConstructor = /** @type{(typeof WebSocket)} */(require('ws')); + } else + { + WebSocketConstructor = WebSocket; + } + ws = new WebSocketConstructor(url, opts); + ws.binaryType = 'arraybuffer'; + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH); + } + } + + var peer = { + addr: addr, + port: port, + socket: ws, + dgram_send_queue: [] + }; + + SOCKFS.websocket_sock_ops.addPeer(sock, peer); + SOCKFS.websocket_sock_ops.handlePeerEvents(sock, peer); + + // if this is a bound dgram socket, send the port number first to allow + // us to override the ephemeral port reported to us by remotePort on the + // remote end. + if (sock.type === 2 && typeof sock.sport !== 'undefined') { + peer.dgram_send_queue.push(new Uint8Array([ + 255, 255, 255, 255, + 'p'.charCodeAt(0), 'o'.charCodeAt(0), 'r'.charCodeAt(0), 't'.charCodeAt(0), + ((sock.sport & 0xff00) >> 8) , (sock.sport & 0xff) + ])); + } + + return peer; + },getPeer:function(sock, addr, port) { + return sock.peers[addr + ':' + port]; + },addPeer:function(sock, peer) { + sock.peers[peer.addr + ':' + peer.port] = peer; + },removePeer:function(sock, peer) { + delete sock.peers[peer.addr + ':' + peer.port]; + },handlePeerEvents:function(sock, peer) { + var first = true; + + var handleOpen = function () { + + Module['websocket'].emit('open', sock.stream.fd); + + try { + var queued = peer.dgram_send_queue.shift(); + while (queued) { + peer.socket.send(queued); + queued = peer.dgram_send_queue.shift(); + } + } catch (e) { + // not much we can do here in the way of proper error handling as we've already + // lied and said this data was sent. shut it down. + peer.socket.close(); + } + }; + + function handleMessage(data) { + if (typeof data === 'string') { + var encoder = new TextEncoder(); // should be utf-8 + data = encoder.encode(data); // make a typed array from the string + } else { + assert(data.byteLength !== undefined); // must receive an ArrayBuffer + if (data.byteLength == 0) { + // An empty ArrayBuffer will emit a pseudo disconnect event + // as recv/recvmsg will return zero which indicates that a socket + // has performed a shutdown although the connection has not been disconnected yet. + return; + } else { + data = new Uint8Array(data); // make a typed array view on the array buffer + } + } + + // if this is the port message, override the peer's port with it + var wasfirst = first; + first = false; + if (wasfirst && + data.length === 10 && + data[0] === 255 && data[1] === 255 && data[2] === 255 && data[3] === 255 && + data[4] === 'p'.charCodeAt(0) && data[5] === 'o'.charCodeAt(0) && data[6] === 'r'.charCodeAt(0) && data[7] === 't'.charCodeAt(0)) { + // update the peer's port and it's key in the peer map + var newport = ((data[8] << 8) | data[9]); + SOCKFS.websocket_sock_ops.removePeer(sock, peer); + peer.port = newport; + SOCKFS.websocket_sock_ops.addPeer(sock, peer); + return; + } + + sock.recv_queue.push({ addr: peer.addr, port: peer.port, data: data }); + Module['websocket'].emit('message', sock.stream.fd); + }; + + if (ENVIRONMENT_IS_NODE) { + peer.socket.on('open', handleOpen); + peer.socket.on('message', function(data, flags) { + if (!flags.binary) { + return; + } + handleMessage((new Uint8Array(data)).buffer); // copy from node Buffer -> ArrayBuffer + }); + peer.socket.on('close', function() { + Module['websocket'].emit('close', sock.stream.fd); + }); + peer.socket.on('error', function(error) { + // Although the ws library may pass errors that may be more descriptive than + // ECONNREFUSED they are not necessarily the expected error code e.g. + // ENOTFOUND on getaddrinfo seems to be node.js specific, so using ECONNREFUSED + // is still probably the most useful thing to do. + sock.error = ERRNO_CODES.ECONNREFUSED; // Used in getsockopt for SOL_SOCKET/SO_ERROR test. + Module['websocket'].emit('error', [sock.stream.fd, sock.error, 'ECONNREFUSED: Connection refused']); + // don't throw + }); + } else { + peer.socket.onopen = handleOpen; + peer.socket.onclose = function() { + Module['websocket'].emit('close', sock.stream.fd); + }; + peer.socket.onmessage = function peer_socket_onmessage(event) { + handleMessage(event.data); + }; + peer.socket.onerror = function(error) { + // The WebSocket spec only allows a 'simple event' to be thrown on error, + // so we only really know as much as ECONNREFUSED. + sock.error = ERRNO_CODES.ECONNREFUSED; // Used in getsockopt for SOL_SOCKET/SO_ERROR test. + Module['websocket'].emit('error', [sock.stream.fd, sock.error, 'ECONNREFUSED: Connection refused']); + }; + } + },poll:function(sock) { + if (sock.type === 1 && sock.server) { + // listen sockets should only say they're available for reading + // if there are pending clients. + return sock.pending.length ? (64 | 1) : 0; + } + + var mask = 0; + var dest = sock.type === 1 ? // we only care about the socket state for connection-based sockets + SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport) : + null; + + if (sock.recv_queue.length || + !dest || // connection-less sockets are always ready to read + (dest && dest.socket.readyState === dest.socket.CLOSING) || + (dest && dest.socket.readyState === dest.socket.CLOSED)) { // let recv return 0 once closed + mask |= (64 | 1); + } + + if (!dest || // connection-less sockets are always ready to write + (dest && dest.socket.readyState === dest.socket.OPEN)) { + mask |= 4; + } + + if ((dest && dest.socket.readyState === dest.socket.CLOSING) || + (dest && dest.socket.readyState === dest.socket.CLOSED)) { + mask |= 16; + } + + return mask; + },ioctl:function(sock, request, arg) { + switch (request) { + case 21531: + var bytes = 0; + if (sock.recv_queue.length) { + bytes = sock.recv_queue[0].data.length; + } + HEAP32[((arg)>>2)] = bytes; + return 0; + default: + return ERRNO_CODES.EINVAL; + } + },close:function(sock) { + // if we've spawned a listen server, close it + if (sock.server) { + try { + sock.server.close(); + } catch (e) { + } + sock.server = null; + } + // close any peer connections + var peers = Object.keys(sock.peers); + for (var i = 0; i < peers.length; i++) { + var peer = sock.peers[peers[i]]; + try { + peer.socket.close(); + } catch (e) { + } + SOCKFS.websocket_sock_ops.removePeer(sock, peer); + } + return 0; + },bind:function(sock, addr, port) { + if (typeof sock.saddr !== 'undefined' || typeof sock.sport !== 'undefined') { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already bound + } + sock.saddr = addr; + sock.sport = port; + // in order to emulate dgram sockets, we need to launch a listen server when + // binding on a connection-less socket + // note: this is only required on the server side + if (sock.type === 2) { + // close the existing server if it exists + if (sock.server) { + sock.server.close(); + sock.server = null; + } + // swallow error operation not supported error that occurs when binding in the + // browser where this isn't supported + try { + sock.sock_ops.listen(sock, 0); + } catch (e) { + if (!(e instanceof FS.ErrnoError)) throw e; + if (e.errno !== ERRNO_CODES.EOPNOTSUPP) throw e; + } + } + },connect:function(sock, addr, port) { + if (sock.server) { + throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); + } + + // TODO autobind + // if (!sock.addr && sock.type == 2) { + // } + + // early out if we're already connected / in the middle of connecting + if (typeof sock.daddr !== 'undefined' && typeof sock.dport !== 'undefined') { + var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport); + if (dest) { + if (dest.socket.readyState === dest.socket.CONNECTING) { + throw new FS.ErrnoError(ERRNO_CODES.EALREADY); + } else { + throw new FS.ErrnoError(ERRNO_CODES.EISCONN); + } + } + } + + // add the socket to our peer list and set our + // destination address / port to match + var peer = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port); + sock.daddr = peer.addr; + sock.dport = peer.port; + + // always "fail" in non-blocking mode + throw new FS.ErrnoError(ERRNO_CODES.EINPROGRESS); + },listen:function(sock, backlog) { + if (!ENVIRONMENT_IS_NODE) { + throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); + } + if (sock.server) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already listening + } + var WebSocketServer = require('ws').Server; + var host = sock.saddr; + sock.server = new WebSocketServer({ + host: host, + port: sock.sport + // TODO support backlog + }); + Module['websocket'].emit('listen', sock.stream.fd); // Send Event with listen fd. + + sock.server.on('connection', function(ws) { + if (sock.type === 1) { + var newsock = SOCKFS.createSocket(sock.family, sock.type, sock.protocol); + + // create a peer on the new socket + var peer = SOCKFS.websocket_sock_ops.createPeer(newsock, ws); + newsock.daddr = peer.addr; + newsock.dport = peer.port; + + // push to queue for accept to pick up + sock.pending.push(newsock); + Module['websocket'].emit('connection', newsock.stream.fd); + } else { + // create a peer on the listen socket so calling sendto + // with the listen socket and an address will resolve + // to the correct client + SOCKFS.websocket_sock_ops.createPeer(sock, ws); + Module['websocket'].emit('connection', sock.stream.fd); + } + }); + sock.server.on('closed', function() { + Module['websocket'].emit('close', sock.stream.fd); + sock.server = null; + }); + sock.server.on('error', function(error) { + // Although the ws library may pass errors that may be more descriptive than + // ECONNREFUSED they are not necessarily the expected error code e.g. + // ENOTFOUND on getaddrinfo seems to be node.js specific, so using EHOSTUNREACH + // is still probably the most useful thing to do. This error shouldn't + // occur in a well written app as errors should get trapped in the compiled + // app's own getaddrinfo call. + sock.error = ERRNO_CODES.EHOSTUNREACH; // Used in getsockopt for SOL_SOCKET/SO_ERROR test. + Module['websocket'].emit('error', [sock.stream.fd, sock.error, 'EHOSTUNREACH: Host is unreachable']); + // don't throw + }); + },accept:function(listensock) { + if (!listensock.server) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var newsock = listensock.pending.shift(); + newsock.stream.flags = listensock.stream.flags; + return newsock; + },getname:function(sock, peer) { + var addr, port; + if (peer) { + if (sock.daddr === undefined || sock.dport === undefined) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); + } + addr = sock.daddr; + port = sock.dport; + } else { + // TODO saddr and sport will be set for bind()'d UDP sockets, but what + // should we be returning for TCP sockets that've been connect()'d? + addr = sock.saddr || 0; + port = sock.sport || 0; + } + return { addr: addr, port: port }; + },sendmsg:function(sock, buffer, offset, length, addr, port) { + if (sock.type === 2) { + // connection-less sockets will honor the message address, + // and otherwise fall back to the bound destination address + if (addr === undefined || port === undefined) { + addr = sock.daddr; + port = sock.dport; + } + // if there was no address to fall back to, error out + if (addr === undefined || port === undefined) { + throw new FS.ErrnoError(ERRNO_CODES.EDESTADDRREQ); + } + } else { + // connection-based sockets will only use the bound + addr = sock.daddr; + port = sock.dport; + } + + // find the peer for the destination address + var dest = SOCKFS.websocket_sock_ops.getPeer(sock, addr, port); + + // early out if not connected with a connection-based socket + if (sock.type === 1) { + if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); + } else if (dest.socket.readyState === dest.socket.CONNECTING) { + throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); + } + } + + // create a copy of the incoming data to send, as the WebSocket API + // doesn't work entirely with an ArrayBufferView, it'll just send + // the entire underlying buffer + if (ArrayBuffer.isView(buffer)) { + offset += buffer.byteOffset; + buffer = buffer.buffer; + } + + var data; + data = buffer.slice(offset, offset + length); + + // if we're emulating a connection-less dgram socket and don't have + // a cached connection, queue the buffer to send upon connect and + // lie, saying the data was sent now. + if (sock.type === 2) { + if (!dest || dest.socket.readyState !== dest.socket.OPEN) { + // if we're not connected, open a new connection + if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { + dest = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port); + } + dest.dgram_send_queue.push(data); + return length; + } + } + + try { + // send the actual data + dest.socket.send(data); + return length; + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + },recvmsg:function(sock, length) { + // http://pubs.opengroup.org/onlinepubs/7908799/xns/recvmsg.html + if (sock.type === 1 && sock.server) { + // tcp servers should not be recv()'ing on the listen socket + throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); + } + + var queued = sock.recv_queue.shift(); + if (!queued) { + if (sock.type === 1) { + var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport); + + if (!dest) { + // if we have a destination address but are not connected, error out + throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); + } + else if (dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { + // return null if the socket has closed + return null; + } + else { + // else, our socket is in a valid state but truly has nothing available + throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); + } + } else { + throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); + } + } + + // queued.data will be an ArrayBuffer if it's unadulterated, but if it's + // requeued TCP data it'll be an ArrayBufferView + var queuedLength = queued.data.byteLength || queued.data.length; + var queuedOffset = queued.data.byteOffset || 0; + var queuedBuffer = queued.data.buffer || queued.data; + var bytesRead = Math.min(length, queuedLength); + var res = { + buffer: new Uint8Array(queuedBuffer, queuedOffset, bytesRead), + addr: queued.addr, + port: queued.port + }; + + // push back any unread data for TCP connections + if (sock.type === 1 && bytesRead < queuedLength) { + var bytesRemaining = queuedLength - bytesRead; + queued.data = new Uint8Array(queuedBuffer, queuedOffset + bytesRead, bytesRemaining); + sock.recv_queue.unshift(queued); + } + + return res; + }}}; + function getSocketFromFD(fd) { + var socket = SOCKFS.getSocket(fd); + if (!socket) throw new FS.ErrnoError(8); + return socket; + } + + var Sockets={BUFFER_SIZE:10240,MAX_BUFFER_SIZE:10485760,nextFd:1,fds:{},nextport:1,maxport:65535,peer:null,connections:{},portmap:{},localAddr:4261412874,addrPool:[33554442,50331658,67108874,83886090,100663306,117440522,134217738,150994954,167772170,184549386,201326602,218103818,234881034]}; + + function inetNtop4(addr) { + return (addr & 0xff) + '.' + ((addr >> 8) & 0xff) + '.' + ((addr >> 16) & 0xff) + '.' + ((addr >> 24) & 0xff) + } + + function inetNtop6(ints) { + // ref: http://www.ietf.org/rfc/rfc2373.txt - section 2.5.4 + // Format for IPv4 compatible and mapped 128-bit IPv6 Addresses + // 128-bits are split into eight 16-bit words + // stored in network byte order (big-endian) + // | 80 bits | 16 | 32 bits | + // +-----------------------------------------------------------------+ + // | 10 bytes | 2 | 4 bytes | + // +--------------------------------------+--------------------------+ + // + 5 words | 1 | 2 words | + // +--------------------------------------+--------------------------+ + // |0000..............................0000|0000| IPv4 ADDRESS | (compatible) + // +--------------------------------------+----+---------------------+ + // |0000..............................0000|FFFF| IPv4 ADDRESS | (mapped) + // +--------------------------------------+----+---------------------+ + var str = ""; + var word = 0; + var longest = 0; + var lastzero = 0; + var zstart = 0; + var len = 0; + var i = 0; + var parts = [ + ints[0] & 0xffff, + (ints[0] >> 16), + ints[1] & 0xffff, + (ints[1] >> 16), + ints[2] & 0xffff, + (ints[2] >> 16), + ints[3] & 0xffff, + (ints[3] >> 16) + ]; + + // Handle IPv4-compatible, IPv4-mapped, loopback and any/unspecified addresses + + var hasipv4 = true; + var v4part = ""; + // check if the 10 high-order bytes are all zeros (first 5 words) + for (i = 0; i < 5; i++) { + if (parts[i] !== 0) { hasipv4 = false; break; } + } + + if (hasipv4) { + // low-order 32-bits store an IPv4 address (bytes 13 to 16) (last 2 words) + v4part = inetNtop4(parts[6] | (parts[7] << 16)); + // IPv4-mapped IPv6 address if 16-bit value (bytes 11 and 12) == 0xFFFF (6th word) + if (parts[5] === -1) { + str = "::ffff:"; + str += v4part; + return str; + } + // IPv4-compatible IPv6 address if 16-bit value (bytes 11 and 12) == 0x0000 (6th word) + if (parts[5] === 0) { + str = "::"; + //special case IPv6 addresses + if (v4part === "0.0.0.0") v4part = ""; // any/unspecified address + if (v4part === "0.0.0.1") v4part = "1";// loopback address + str += v4part; + return str; + } + } + + // Handle all other IPv6 addresses + + // first run to find the longest contiguous zero words + for (word = 0; word < 8; word++) { + if (parts[word] === 0) { + if (word - lastzero > 1) { + len = 0; + } + lastzero = word; + len++; + } + if (len > longest) { + longest = len; + zstart = word - longest + 1; + } + } + + for (word = 0; word < 8; word++) { + if (longest > 1) { + // compress contiguous zeros - to produce "::" + if (parts[word] === 0 && word >= zstart && word < (zstart + longest) ) { + if (word === zstart) { + str += ":"; + if (zstart === 0) str += ":"; //leading zeros case + } + continue; + } + } + // converts 16-bit words from big-endian to little-endian before converting to hex string + str += Number(_ntohs(parts[word] & 0xffff)).toString(16); + str += word < 7 ? ":" : ""; + } + return str; + } + function readSockaddr(sa, salen) { + // family / port offsets are common to both sockaddr_in and sockaddr_in6 + var family = HEAP16[((sa)>>1)]; + var port = _ntohs(HEAPU16[(((sa)+(2))>>1)]); + var addr; + + switch (family) { + case 2: + if (salen !== 16) { + return { errno: 28 }; + } + addr = HEAP32[(((sa)+(4))>>2)]; + addr = inetNtop4(addr); + break; + case 10: + if (salen !== 28) { + return { errno: 28 }; + } + addr = [ + HEAP32[(((sa)+(8))>>2)], + HEAP32[(((sa)+(12))>>2)], + HEAP32[(((sa)+(16))>>2)], + HEAP32[(((sa)+(20))>>2)] + ]; + addr = inetNtop6(addr); + break; + default: + return { errno: 5 }; + } + + return { family: family, addr: addr, port: port }; + } + function getSocketAddress(addrp, addrlen, allowNull) { + if (allowNull && addrp === 0) return null; + var info = readSockaddr(addrp, addrlen); + if (info.errno) throw new FS.ErrnoError(info.errno); + info.addr = DNS.lookup_addr(info.addr) || info.addr; + return info; + } + function ___sys_connect(fd, addr, addrlen) {try { + + var sock = getSocketFromFD(fd); + var info = getSocketAddress(addr, addrlen); + sock.sock_ops.connect(sock, info.addr, info.port); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___sys_dup(fd) {try { + + var old = SYSCALLS.getStreamFromFD(fd); + return FS.open(old.path, old.flags, 0).fd; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___sys_fcntl64(fd, cmd, varargs) {SYSCALLS.varargs = varargs; + try { + + var stream = SYSCALLS.getStreamFromFD(fd); + switch (cmd) { + case 0: { + var arg = SYSCALLS.get(); + if (arg < 0) { + return -28; + } + var newStream; + newStream = FS.open(stream.path, stream.flags, 0, arg); + return newStream.fd; + } + case 1: + case 2: + return 0; // FD_CLOEXEC makes no sense for a single process. + case 3: + return stream.flags; + case 4: { + var arg = SYSCALLS.get(); + stream.flags |= arg; + return 0; + } + case 12: + /* case 12: Currently in musl F_GETLK64 has same value as F_GETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ { + + var arg = SYSCALLS.get(); + var offset = 0; + // We're always unlocked. + HEAP16[(((arg)+(offset))>>1)] = 2; + return 0; + } + case 13: + case 14: + /* case 13: Currently in musl F_SETLK64 has same value as F_SETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ + /* case 14: Currently in musl F_SETLKW64 has same value as F_SETLKW, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ + + + return 0; // Pretend that the locking is successful. + case 16: + case 8: + return -28; // These are for sockets. We don't have them fully implemented yet. + case 9: + // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fnctl() returns that, and we set errno ourselves. + setErrNo(28); + return -1; + default: { + return -28; + } + } + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___sys_fdatasync(fd) {try { + + var stream = SYSCALLS.getStreamFromFD(fd); + return 0; // we can't do anything synchronously; the in-memory FS is already synced to + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___sys_fstat64(fd, buf) {try { + + var stream = SYSCALLS.getStreamFromFD(fd); + return SYSCALLS.doStat(FS.stat, stream.path, buf); + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___sys_ftruncate64(fd, zero, low, high) {try { + + var length = SYSCALLS.get64(low, high); + FS.ftruncate(fd, length); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___sys_getcwd(buf, size) {try { + + if (size === 0) return -28; + var cwd = FS.cwd(); + var cwdLengthInBytes = lengthBytesUTF8(cwd); + if (size < cwdLengthInBytes + 1) return -68; + stringToUTF8(cwd, buf, size); + return buf; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___sys_getpid() { + return 42; + } + + function ___sys_ioctl(fd, op, varargs) {SYSCALLS.varargs = varargs; + try { + + var stream = SYSCALLS.getStreamFromFD(fd); + switch (op) { + case 21509: + case 21505: { + if (!stream.tty) return -59; + return 0; + } + case 21510: + case 21511: + case 21512: + case 21506: + case 21507: + case 21508: { + if (!stream.tty) return -59; + return 0; // no-op, not actually adjusting terminal settings + } + case 21519: { + if (!stream.tty) return -59; + var argp = SYSCALLS.get(); + HEAP32[((argp)>>2)] = 0; + return 0; + } + case 21520: { + if (!stream.tty) return -59; + return -28; // not supported + } + case 21531: { + var argp = SYSCALLS.get(); + return FS.ioctl(stream, op, argp); + } + case 21523: { + // TODO: in theory we should write to the winsize struct that gets + // passed in, but for now musl doesn't read anything on it + if (!stream.tty) return -59; + return 0; + } + case 21524: { + // TODO: technically, this ioctl call should change the window size. + // but, since emscripten doesn't have any concept of a terminal window + // yet, we'll just silently throw it away as we do TIOCGWINSZ + if (!stream.tty) return -59; + return 0; + } + default: abort('bad ioctl syscall ' + op); + } + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___sys_mkdir(path, mode) {try { + + path = SYSCALLS.getStr(path); + return SYSCALLS.doMkdir(path, mode); + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___sys_open(path, flags, varargs) {SYSCALLS.varargs = varargs; + try { + + var pathname = SYSCALLS.getStr(path); + var mode = varargs ? SYSCALLS.get() : 0; + var stream = FS.open(pathname, flags, mode); + return stream.fd; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___sys_readlink(path, buf, bufsize) {try { + + path = SYSCALLS.getStr(path); + return SYSCALLS.doReadlink(path, buf, bufsize); + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function inetPton4(str) { + var b = str.split('.'); + for (var i = 0; i < 4; i++) { + var tmp = Number(b[i]); + if (isNaN(tmp)) return null; + b[i] = tmp; + } + return (b[0] | (b[1] << 8) | (b[2] << 16) | (b[3] << 24)) >>> 0; + } + + /** @suppress {checkTypes} */ + function jstoi_q(str) { + return parseInt(str); + } + function inetPton6(str) { + var words; + var w, offset, z, i; + /* http://home.deds.nl/~aeron/regex/ */ + var valid6regx = /^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i + var parts = []; + if (!valid6regx.test(str)) { + return null; + } + if (str === "::") { + return [0, 0, 0, 0, 0, 0, 0, 0]; + } + // Z placeholder to keep track of zeros when splitting the string on ":" + if (str.startsWith("::")) { + str = str.replace("::", "Z:"); // leading zeros case + } else { + str = str.replace("::", ":Z:"); + } + + if (str.indexOf(".") > 0) { + // parse IPv4 embedded stress + str = str.replace(new RegExp('[.]', 'g'), ":"); + words = str.split(":"); + words[words.length-4] = jstoi_q(words[words.length-4]) + jstoi_q(words[words.length-3])*256; + words[words.length-3] = jstoi_q(words[words.length-2]) + jstoi_q(words[words.length-1])*256; + words = words.slice(0, words.length-2); + } else { + words = str.split(":"); + } + + offset = 0; z = 0; + for (w=0; w < words.length; w++) { + if (typeof words[w] === 'string') { + if (words[w] === 'Z') { + // compressed zeros - write appropriate number of zero words + for (z = 0; z < (8 - words.length+1); z++) { + parts[w+z] = 0; + } + offset = z-1; + } else { + // parse hex to field to 16-bit value and write it in network byte-order + parts[w+offset] = _htons(parseInt(words[w],16)); + } + } else { + // parsed IPv4 words + parts[w+offset] = words[w]; + } + } + return [ + (parts[1] << 16) | parts[0], + (parts[3] << 16) | parts[2], + (parts[5] << 16) | parts[4], + (parts[7] << 16) | parts[6] + ]; + } + function writeSockaddr(sa, family, addr, port, addrlen) { + switch (family) { + case 2: + addr = inetPton4(addr); + zeroMemory(sa, 16); + if (addrlen) { + HEAP32[((addrlen)>>2)] = 16; + } + HEAP16[((sa)>>1)] = family; + HEAP32[(((sa)+(4))>>2)] = addr; + HEAP16[(((sa)+(2))>>1)] = _htons(port); + break; + case 10: + addr = inetPton6(addr); + zeroMemory(sa, 28); + if (addrlen) { + HEAP32[((addrlen)>>2)] = 28; + } + HEAP32[((sa)>>2)] = family; + HEAP32[(((sa)+(8))>>2)] = addr[0]; + HEAP32[(((sa)+(12))>>2)] = addr[1]; + HEAP32[(((sa)+(16))>>2)] = addr[2]; + HEAP32[(((sa)+(20))>>2)] = addr[3]; + HEAP16[(((sa)+(2))>>1)] = _htons(port); + break; + default: + return 5; + } + return 0; + } + + var DNS={address_map:{id:1,addrs:{},names:{}},lookup_name:function (name) { + // If the name is already a valid ipv4 / ipv6 address, don't generate a fake one. + var res = inetPton4(name); + if (res !== null) { + return name; + } + res = inetPton6(name); + if (res !== null) { + return name; + } + + // See if this name is already mapped. + var addr; + + if (DNS.address_map.addrs[name]) { + addr = DNS.address_map.addrs[name]; + } else { + var id = DNS.address_map.id++; + assert(id < 65535, 'exceeded max address mappings of 65535'); + + addr = '172.29.' + (id & 0xff) + '.' + (id & 0xff00); + + DNS.address_map.names[addr] = name; + DNS.address_map.addrs[name] = addr; + } + + return addr; + },lookup_addr:function (addr) { + if (DNS.address_map.names[addr]) { + return DNS.address_map.names[addr]; + } + + return null; + }}; + function ___sys_recvfrom(fd, buf, len, flags, addr, addrlen) {try { + + var sock = getSocketFromFD(fd); + var msg = sock.sock_ops.recvmsg(sock, len); + if (!msg) return 0; // socket is closed + if (addr) { + var errno = writeSockaddr(addr, sock.family, DNS.lookup_name(msg.addr), msg.port, addrlen); + assert(!errno); + } + HEAPU8.set(msg.buffer, buf); + return msg.buffer.byteLength; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___sys_rename(old_path, new_path) {try { + + old_path = SYSCALLS.getStr(old_path); + new_path = SYSCALLS.getStr(new_path); + FS.rename(old_path, new_path); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___sys_sendto(fd, message, length, flags, addr, addr_len) {try { + + var sock = getSocketFromFD(fd); + var dest = getSocketAddress(addr, addr_len, true); + if (!dest) { + // send, no address provided + return FS.write(sock.stream, HEAP8,message, length); + } else { + // sendto an address + return sock.sock_ops.sendmsg(sock, HEAP8,message, length, dest.addr, dest.port); + } + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + var ___sys_setsockopt=function(fd) { + + err('warning: unsupported syscall: __sys_setsockopt');try { + + return -50; // The option is unknown at the level indicated. + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + + } + ; + + function ___sys_socket(domain, type, protocol) {try { + + var sock = SOCKFS.createSocket(domain, type, protocol); + assert(sock.stream.fd < 64); // XXX ? select() assumes socket fd values are in 0..63 + return sock.stream.fd; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___sys_stat64(path, buf) {try { + path = SYSCALLS.getStr(path); + // console.log(`___sys_stat64 ${path}`) + return SYSCALLS.doStat(FS.stat, path, buf); + } catch (e) { + // console.log(e) +////////// +if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); +////////// + // console.log("RETURNING") + return -e.errno; + } + } + + function ___sys_unlink(path) {try { + + path = SYSCALLS.getStr(path); + FS.unlink(path); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + var ___sys_wait4=function() { + + err('warning: unsupported syscall: __sys_wait4');return -52; + }; + + function _abort() { + abort(); + } + + function _atexit(func, arg) { + } + + function _clock() { + if (_clock.start === undefined) _clock.start = Date.now(); + return ((Date.now() - _clock.start) * (1000000 / 1000))|0; + } + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.copyWithin(dest, src, src + num); + } + + function emscripten_realloc_buffer(size) { + try { + // round size grow request up to wasm page size (fixed 64KB per spec) + wasmMemory.grow((size - buffer.byteLength + 65535) >>> 16); // .grow() takes a delta compared to the previous size + updateGlobalBufferAndViews(wasmMemory.buffer); + return 1 /*success*/; + } catch(e) { + console.error('emscripten_realloc_buffer: Attempted to grow heap from ' + buffer.byteLength + ' bytes to ' + size + ' bytes, but got error: ' + e); + } + // implicit 0 return to save code size (caller will cast "undefined" into 0 + // anyhow) + } + function _emscripten_resize_heap(requestedSize) { + var oldSize = HEAPU8.length; + requestedSize = requestedSize >>> 0; + // With pthreads, races can happen (another thread might increase the size in between), so return a failure, and let the caller retry. + assert(requestedSize > oldSize); + + // Memory resize rules: + // 1. Always increase heap size to at least the requested size, rounded up to next page multiple. + // 2a. If MEMORY_GROWTH_LINEAR_STEP == -1, excessively resize the heap geometrically: increase the heap size according to + // MEMORY_GROWTH_GEOMETRIC_STEP factor (default +20%), + // At most overreserve by MEMORY_GROWTH_GEOMETRIC_CAP bytes (default 96MB). + // 2b. If MEMORY_GROWTH_LINEAR_STEP != -1, excessively resize the heap linearly: increase the heap size by at least MEMORY_GROWTH_LINEAR_STEP bytes. + // 3. Max size for the heap is capped at 2048MB-WASM_PAGE_SIZE, or by MAXIMUM_MEMORY, or by ASAN limit, depending on which is smallest + // 4. If we were unable to allocate as much memory, it may be due to over-eager decision to excessively reserve due to (3) above. + // Hence if an allocation fails, cut down on the amount of excess growth, in an attempt to succeed to perform a smaller allocation. + + // A limit is set for how much we can grow. We should not exceed that + // (the wasm binary specifies it, so if we tried, we'd fail anyhow). + // In CAN_ADDRESS_2GB mode, 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 for any code that deals with heap sizes, which would require special casing all heap size related code to treat + // 0 specially. + var maxHeapSize = 2147483648; + if (requestedSize > maxHeapSize) { + err('Cannot enlarge memory, asked to go up to ' + requestedSize + ' bytes, but the limit is ' + maxHeapSize + ' bytes!'); + return false; + } + + // Loop through potential heap size increases. If we attempt a too eager reservation that fails, cut down on the + // attempted size and reserve a smaller bump instead. (max 3 times, chosen somewhat arbitrarily) + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); // ensure geometric growth + // but limit overreserving (default to capping at +96MB overgrowth at most) + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296 ); + + var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); + + var replacement = emscripten_realloc_buffer(newSize); + if (replacement) { + + return true; + } + } + err('Failed to grow the heap from ' + oldSize + ' bytes to ' + newSize + ' bytes, not enough memory!'); + return false; + } + + function _emscripten_thread_sleep(msecs) { + var start = _emscripten_get_now(); + while (_emscripten_get_now() - start < msecs) { + // Do nothing. + } + } + + var ENV={}; + + function getExecutableName() { + return thisProgram || './this.program'; + } + function 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 env = { + 'USER': 'web_user', + 'LOGNAME': 'web_user', + 'PATH': '/', + 'PWD': '/', + 'HOME': '/home/web_user', + 'LANG': lang, + '_': getExecutableName() + }; + // Apply the user-provided values, if any. + for (var x in ENV) { + // x is a key in ENV; if ENV[x] is undefined, that means it was + // explicitly set to be so. We allow user code to do that to + // force variables with default values to remain unset. + if (ENV[x] === undefined) delete env[x]; + else env[x] = ENV[x]; + } + var strings = []; + for (var x in env) { + strings.push(x + '=' + env[x]); + } + getEnvStrings.strings = strings; + } + return getEnvStrings.strings; + } + function _environ_get(__environ, environ_buf) {try { + + var bufSize = 0; + getEnvStrings().forEach(function(string, i) { + var ptr = environ_buf + bufSize; + HEAP32[(((__environ)+(i * 4))>>2)] = ptr; + writeAsciiToMemory(string, ptr); + bufSize += string.length + 1; + }); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return e.errno; + } + } + + function _environ_sizes_get(penviron_count, penviron_buf_size) {try { + + var strings = getEnvStrings(); + HEAP32[((penviron_count)>>2)] = strings.length; + var bufSize = 0; + strings.forEach(function(string) { + bufSize += string.length + 1; + }); + HEAP32[((penviron_buf_size)>>2)] = bufSize; + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return e.errno; + } + } + + function _exit(status) { + // void _exit(int status); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html + exit(status); + } + + function _fd_close(fd) {try { + + var stream = SYSCALLS.getStreamFromFD(fd); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return e.errno; + } + } + + function _fd_fdstat_get(fd, pbuf) {try { + + var stream = SYSCALLS.getStreamFromFD(fd); + // All character devices are terminals (other things a Linux system would + // assume is a character device, like the mouse, we have special APIs for). + var type = stream.tty ? 2 : + FS.isDir(stream.mode) ? 3 : + FS.isLink(stream.mode) ? 7 : + 4; + HEAP8[((pbuf)>>0)] = type; + // TODO HEAP16[(((pbuf)+(2))>>1)] = ?; + // TODO (tempI64 = [?>>>0,(tempDouble=?,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((pbuf)+(8))>>2)] = tempI64[0],HEAP32[(((pbuf)+(12))>>2)] = tempI64[1]); + // TODO (tempI64 = [?>>>0,(tempDouble=?,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((pbuf)+(16))>>2)] = tempI64[0],HEAP32[(((pbuf)+(20))>>2)] = tempI64[1]); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return e.errno; + } + } + + function _fd_read(fd, iov, iovcnt, pnum) {try { + + var stream = SYSCALLS.getStreamFromFD(fd); + var num = SYSCALLS.doReadv(stream, iov, iovcnt); + HEAP32[((pnum)>>2)] = num + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return e.errno; + } + } + + function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {try { + + + var stream = SYSCALLS.getStreamFromFD(fd); + var HIGH_OFFSET = 0x100000000; // 2^32 + // use an unsigned operator on low and shift high by 32-bits + var offset = offset_high * HIGH_OFFSET + (offset_low >>> 0); + + var DOUBLE_LIMIT = 0x20000000000000; // 2^53 + // we also check for equality since DOUBLE_LIMIT + 1 == DOUBLE_LIMIT + if (offset <= -DOUBLE_LIMIT || offset >= DOUBLE_LIMIT) { + return -61; + } + + FS.llseek(stream, offset, whence); + (tempI64 = [stream.position>>>0,(tempDouble=stream.position,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((newOffset)>>2)] = tempI64[0],HEAP32[(((newOffset)+(4))>>2)] = tempI64[1]); + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return e.errno; + } + } + + function _fd_write(fd, iov, iovcnt, pnum) {try { + + var stream = SYSCALLS.getStreamFromFD(fd); + var num = SYSCALLS.doWritev(stream, iov, iovcnt); + HEAP32[((pnum)>>2)] = num + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return e.errno; + } + } + + var GAI_ERRNO_MESSAGES={}; + function _gai_strerror(val) { + var buflen = 256; + + // On first call to gai_strerror we initialise the buffer and populate the error messages. + if (!_gai_strerror.buffer) { + _gai_strerror.buffer = _malloc(buflen); + + GAI_ERRNO_MESSAGES['0'] = 'Success'; + GAI_ERRNO_MESSAGES['' + -1] = 'Invalid value for \'ai_flags\' field'; + GAI_ERRNO_MESSAGES['' + -2] = 'NAME or SERVICE is unknown'; + GAI_ERRNO_MESSAGES['' + -3] = 'Temporary failure in name resolution'; + GAI_ERRNO_MESSAGES['' + -4] = 'Non-recoverable failure in name res'; + GAI_ERRNO_MESSAGES['' + -6] = '\'ai_family\' not supported'; + GAI_ERRNO_MESSAGES['' + -7] = '\'ai_socktype\' not supported'; + GAI_ERRNO_MESSAGES['' + -8] = 'SERVICE not supported for \'ai_socktype\''; + GAI_ERRNO_MESSAGES['' + -10] = 'Memory allocation failure'; + GAI_ERRNO_MESSAGES['' + -11] = 'System error returned in \'errno\''; + GAI_ERRNO_MESSAGES['' + -12] = 'Argument buffer overflow'; + } + + var msg = 'Unknown error'; + + if (val in GAI_ERRNO_MESSAGES) { + if (GAI_ERRNO_MESSAGES[val].length > buflen - 1) { + msg = 'Message too long'; // EMSGSIZE message. This should never occur given the GAI_ERRNO_MESSAGES above. + } else { + msg = GAI_ERRNO_MESSAGES[val]; + } + } + + writeAsciiToMemory(msg, _gai_strerror.buffer); + return _gai_strerror.buffer; + } + + function _getaddrinfo(node, service, hint, out) { + // Note getaddrinfo currently only returns a single addrinfo with ai_next defaulting to NULL. When NULL + // hints are specified or ai_family set to AF_UNSPEC or ai_socktype or ai_protocol set to 0 then we + // really should provide a linked list of suitable addrinfo values. + var addrs = []; + var canon = null; + var addr = 0; + var port = 0; + var flags = 0; + var family = 0; + var type = 0; + var proto = 0; + var ai, last; + + function allocaddrinfo(family, type, proto, canon, addr, port) { + var sa, salen, ai; + var errno; + + salen = family === 10 ? + 28 : + 16; + addr = family === 10 ? + inetNtop6(addr) : + inetNtop4(addr); + sa = _malloc(salen); + errno = writeSockaddr(sa, family, addr, port); + assert(!errno); + + ai = _malloc(32); + HEAP32[(((ai)+(4))>>2)] = family; + HEAP32[(((ai)+(8))>>2)] = type; + HEAP32[(((ai)+(12))>>2)] = proto; + HEAP32[(((ai)+(24))>>2)] = canon; + HEAP32[(((ai)+(20))>>2)] = sa; + if (family === 10) { + HEAP32[(((ai)+(16))>>2)] = 28; + } else { + HEAP32[(((ai)+(16))>>2)] = 16; + } + HEAP32[(((ai)+(28))>>2)] = 0; + + return ai; + } + + if (hint) { + flags = HEAP32[((hint)>>2)]; + family = HEAP32[(((hint)+(4))>>2)]; + type = HEAP32[(((hint)+(8))>>2)]; + proto = HEAP32[(((hint)+(12))>>2)]; + } + if (type && !proto) { + proto = type === 2 ? 17 : 6; + } + if (!type && proto) { + type = proto === 17 ? 2 : 1; + } + + // If type or proto are set to zero in hints we should really be returning multiple addrinfo values, but for + // now default to a TCP STREAM socket so we can at least return a sensible addrinfo given NULL hints. + if (proto === 0) { + proto = 6; + } + if (type === 0) { + type = 1; + } + + if (!node && !service) { + return -2; + } + if (flags & ~(1|2|4| + 1024|8|16|32)) { + return -1; + } + if (hint !== 0 && (HEAP32[((hint)>>2)] & 2) && !node) { + return -1; + } + if (flags & 32) { + // TODO + return -2; + } + if (type !== 0 && type !== 1 && type !== 2) { + return -7; + } + if (family !== 0 && family !== 2 && family !== 10) { + return -6; + } + + if (service) { + service = UTF8ToString(service); + port = parseInt(service, 10); + + if (isNaN(port)) { + if (flags & 1024) { + return -2; + } + // TODO support resolving well-known service names from: + // http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt + return -8; + } + } + + if (!node) { + if (family === 0) { + family = 2; + } + if ((flags & 1) === 0) { + if (family === 2) { + addr = _htonl(2130706433); + } else { + addr = [0, 0, 0, 1]; + } + } + ai = allocaddrinfo(family, type, proto, null, addr, port); + HEAP32[((out)>>2)] = ai; + return 0; + } + + // + // try as a numeric address + // + node = UTF8ToString(node); + addr = inetPton4(node); + if (addr !== null) { + // incoming node is a valid ipv4 address + if (family === 0 || family === 2) { + family = 2; + } + else if (family === 10 && (flags & 8)) { + addr = [0, 0, _htonl(0xffff), addr]; + family = 10; + } else { + return -2; + } + } else { + addr = inetPton6(node); + if (addr !== null) { + // incoming node is a valid ipv6 address + if (family === 0 || family === 10) { + family = 10; + } else { + return -2; + } + } + } + if (addr != null) { + ai = allocaddrinfo(family, type, proto, node, addr, port); + HEAP32[((out)>>2)] = ai; + return 0; + } + if (flags & 4) { + return -2; + } + + // + // try as a hostname + // + // resolve the hostname to a temporary fake address + node = DNS.lookup_name(node); + addr = inetPton4(node); + if (family === 0) { + family = 2; + } else if (family === 10) { + addr = [0, 0, _htonl(0xffff), addr]; + } + ai = allocaddrinfo(family, type, proto, null, addr, port); + HEAP32[((out)>>2)] = ai; + return 0; + } + + function _gettimeofday(ptr) { + var now = Date.now(); + HEAP32[((ptr)>>2)] = (now/1000)|0; // seconds + HEAP32[(((ptr)+(4))>>2)] = ((now % 1000)*1000)|0; // microseconds + return 0; + } + + /** @type {function(...*):?} */ + function _popen( + ) { + err('missing function: popen'); abort(-1); + } + + function _setTempRet0(val) { + setTempRet0(val); + } + + function _time(ptr) { + var ret = (Date.now()/1000)|0; + if (ptr) { + HEAP32[((ptr)>>2)] = ret; + } + return ret; + } + + + var FSNode = /** @constructor */ function(parent, name, mode, rdev) { + if (!parent) { + parent = this; // root node sets parent to itself + } + this.parent = parent; + this.mount = parent.mount; + this.mounted = null; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.node_ops = {}; + this.stream_ops = {}; + this.rdev = rdev; + }; + var readMode = 292/*292*/ | 73/*73*/; + var writeMode = 146/*146*/; + Object.defineProperties(FSNode.prototype, { + read: { + get: /** @this{FSNode} */function() { + return (this.mode & readMode) === readMode; + }, + set: /** @this{FSNode} */function(val) { + val ? this.mode |= readMode : this.mode &= ~readMode; + } + }, + write: { + get: /** @this{FSNode} */function() { + return (this.mode & writeMode) === writeMode; + }, + set: /** @this{FSNode} */function(val) { + val ? this.mode |= writeMode : this.mode &= ~writeMode; + } + }, + isFolder: { + get: /** @this{FSNode} */function() { + return FS.isDir(this.mode); + } + }, + isDevice: { + get: /** @this{FSNode} */function() { + return FS.isChrdev(this.mode); + } + } + }); + FS.FSNode = FSNode; + FS.staticInit();Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;Module["FS_createPreloadedFile"] = FS.createPreloadedFile;Module["FS_createLazyFile"] = FS.createLazyFile;Module["FS_createDevice"] = FS.createDevice;Module["FS_unlink"] = FS.unlink;; +var ASSERTIONS = true; + + + +/** @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; +} + +function intArrayToString(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + var chr = array[i]; + if (chr > 0xFF) { + if (ASSERTIONS) { + assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.'); + } + chr &= 0xFF; + } + ret.push(String.fromCharCode(chr)); + } + return ret.join(''); +} + + +// Copied from https://github.com/strophe/strophejs/blob/e06d027/src/polyfills.js#L149 + +// This code was written by Tyler Akins and has been placed in the +// public domain. It would be nice if you left this header intact. +// Base64 code from Tyler Akins -- http://rumkin.com + +/** + * Decodes a base64 string. + * @param {string} input The string to decode. + */ +var decodeBase64 = typeof atob === 'function' ? atob : function (input) { + var keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + + var output = ''; + var chr1, chr2, chr3; + var enc1, enc2, enc3, enc4; + var i = 0; + // remove all characters that are not A-Z, a-z, 0-9, +, /, or = + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ''); + do { + enc1 = keyStr.indexOf(input.charAt(i++)); + enc2 = keyStr.indexOf(input.charAt(i++)); + enc3 = keyStr.indexOf(input.charAt(i++)); + enc4 = keyStr.indexOf(input.charAt(i++)); + + chr1 = (enc1 << 2) | (enc2 >> 4); + chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); + chr3 = ((enc3 & 3) << 6) | enc4; + + output = output + String.fromCharCode(chr1); + + if (enc3 !== 64) { + output = output + String.fromCharCode(chr2); + } + if (enc4 !== 64) { + output = output + String.fromCharCode(chr3); + } + } while (i < input.length); + return output; +}; + +// Converts a string of base64 into a byte array. +// Throws error on invalid input. +function intArrayFromBase64(s) { + if (typeof ENVIRONMENT_IS_NODE === 'boolean' && ENVIRONMENT_IS_NODE) { + var buf = Buffer.from(s, 'base64'); + return new Uint8Array(buf['buffer'], buf['byteOffset'], buf['byteLength']); + } + + try { + var decoded = decodeBase64(s); + var bytes = new Uint8Array(decoded.length); + for (var i = 0 ; i < decoded.length ; ++i) { + bytes[i] = decoded.charCodeAt(i); + } + return bytes; + } catch (_) { + throw new Error('Converting base64 string to bytes failed.'); + } +} + +// If filename is a base64 data URI, parses and returns data (Buffer on node, +// Uint8Array otherwise). If filename is not a base64 data URI, returns undefined. +function tryParseAsDataURI(filename) { + if (!isDataURI(filename)) { + return; + } + + return intArrayFromBase64(filename.slice(dataURIPrefix.length)); +} + + +var asmLibraryArg = { + "__assert_fail": ___assert_fail, + "__clock_gettime": ___clock_gettime, + "__sys__newselect": ___sys__newselect, + "__sys_access": ___sys_access, + "__sys_chmod": ___sys_chmod, + "__sys_connect": ___sys_connect, + "__sys_dup": ___sys_dup, + "__sys_fcntl64": ___sys_fcntl64, + "__sys_fdatasync": ___sys_fdatasync, + "__sys_fstat64": ___sys_fstat64, + "__sys_ftruncate64": ___sys_ftruncate64, + "__sys_getcwd": ___sys_getcwd, + "__sys_getpid": ___sys_getpid, + "__sys_ioctl": ___sys_ioctl, + "__sys_mkdir": ___sys_mkdir, + "__sys_open": ___sys_open, + "__sys_readlink": ___sys_readlink, + "__sys_recvfrom": ___sys_recvfrom, + "__sys_rename": ___sys_rename, + "__sys_sendto": ___sys_sendto, + "__sys_setsockopt": ___sys_setsockopt, + "__sys_socket": ___sys_socket, + "__sys_stat64": ___sys_stat64, + "__sys_unlink": ___sys_unlink, + "__sys_wait4": ___sys_wait4, + "abort": _abort, + "atexit": _atexit, + "clock": _clock, + "emscripten_memcpy_big": _emscripten_memcpy_big, + "emscripten_resize_heap": _emscripten_resize_heap, + "emscripten_thread_sleep": _emscripten_thread_sleep, + "environ_get": _environ_get, + "environ_sizes_get": _environ_sizes_get, + "exit": _exit, + "fd_close": _fd_close, + "fd_fdstat_get": _fd_fdstat_get, + "fd_read": _fd_read, + "fd_seek": _fd_seek, + "fd_write": _fd_write, + "gai_strerror": _gai_strerror, + "getaddrinfo": _getaddrinfo, + "gettimeofday": _gettimeofday, + "popen": _popen, + "setTempRet0": _setTempRet0, + "time": _time +}; +var asm = createWasm(); +/** @type {function(...*):?} */ +var ___wasm_call_ctors = Module["___wasm_call_ctors"] = createExportWrapper("__wasm_call_ctors"); + +/** @type {function(...*):?} */ +var _free = Module["_free"] = createExportWrapper("free"); + +/** @type {function(...*):?} */ +var ___errno_location = Module["___errno_location"] = createExportWrapper("__errno_location"); + +/** @type {function(...*):?} */ +var _malloc = Module["_malloc"] = createExportWrapper("malloc"); + +/** @type {function(...*):?} */ +var _main = Module["_main"] = createExportWrapper("main"); + +/** @type {function(...*):?} */ +var _fflush = Module["_fflush"] = createExportWrapper("fflush"); + +/** @type {function(...*):?} */ +var _emscripten_main_thread_process_queued_calls = Module["_emscripten_main_thread_process_queued_calls"] = createExportWrapper("emscripten_main_thread_process_queued_calls"); + +/** @type {function(...*):?} */ +var _emscripten_stack_get_end = Module["_emscripten_stack_get_end"] = function() { + return (_emscripten_stack_get_end = Module["_emscripten_stack_get_end"] = Module["asm"]["emscripten_stack_get_end"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _ntohs = Module["_ntohs"] = createExportWrapper("ntohs"); + +/** @type {function(...*):?} */ +var _htons = Module["_htons"] = createExportWrapper("htons"); + +/** @type {function(...*):?} */ +var _htonl = Module["_htonl"] = createExportWrapper("htonl"); + +/** @type {function(...*):?} */ +var stackSave = Module["stackSave"] = createExportWrapper("stackSave"); + +/** @type {function(...*):?} */ +var stackRestore = Module["stackRestore"] = createExportWrapper("stackRestore"); + +/** @type {function(...*):?} */ +var stackAlloc = Module["stackAlloc"] = createExportWrapper("stackAlloc"); + +/** @type {function(...*):?} */ +var _emscripten_stack_init = Module["_emscripten_stack_init"] = function() { + return (_emscripten_stack_init = Module["_emscripten_stack_init"] = Module["asm"]["emscripten_stack_init"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _emscripten_stack_get_free = Module["_emscripten_stack_get_free"] = function() { + return (_emscripten_stack_get_free = Module["_emscripten_stack_get_free"] = Module["asm"]["emscripten_stack_get_free"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var dynCall_jii = Module["dynCall_jii"] = createExportWrapper("dynCall_jii"); + +/** @type {function(...*):?} */ +var dynCall_viij = Module["dynCall_viij"] = createExportWrapper("dynCall_viij"); + +/** @type {function(...*):?} */ +var dynCall_iijiii = Module["dynCall_iijiii"] = createExportWrapper("dynCall_iijiii"); + +/** @type {function(...*):?} */ +var dynCall_iiij = Module["dynCall_iiij"] = createExportWrapper("dynCall_iiij"); + +/** @type {function(...*):?} */ +var dynCall_jiji = Module["dynCall_jiji"] = createExportWrapper("dynCall_jiji"); + +/** @type {function(...*):?} */ +var dynCall_iiijji = Module["dynCall_iiijji"] = createExportWrapper("dynCall_iiijji"); + +/** @type {function(...*):?} */ +var dynCall_iiji = Module["dynCall_iiji"] = createExportWrapper("dynCall_iiji"); + +/** @type {function(...*):?} */ +var dynCall_ji = Module["dynCall_ji"] = createExportWrapper("dynCall_ji"); + + + + + +// === Auto-generated postamble setup entry stuff === + +if (!Object.getOwnPropertyDescriptor(Module, "intArrayFromString")) Module["intArrayFromString"] = function() { abort("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "intArrayToString")) Module["intArrayToString"] = function() { abort("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "ccall")) Module["ccall"] = function() { abort("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "cwrap")) Module["cwrap"] = function() { abort("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "setValue")) Module["setValue"] = function() { abort("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getValue")) Module["getValue"] = function() { abort("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "allocate")) Module["allocate"] = function() { abort("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "UTF8ArrayToString")) Module["UTF8ArrayToString"] = function() { abort("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "UTF8ToString")) Module["UTF8ToString"] = function() { abort("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stringToUTF8Array")) Module["stringToUTF8Array"] = function() { abort("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stringToUTF8")) Module["stringToUTF8"] = function() { abort("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "lengthBytesUTF8")) Module["lengthBytesUTF8"] = function() { abort("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stackTrace")) Module["stackTrace"] = function() { abort("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "addOnPreRun")) Module["addOnPreRun"] = function() { abort("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "addOnInit")) Module["addOnInit"] = function() { abort("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "addOnPreMain")) Module["addOnPreMain"] = function() { abort("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "addOnExit")) Module["addOnExit"] = function() { abort("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "addOnPostRun")) Module["addOnPostRun"] = function() { abort("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "writeStringToMemory")) Module["writeStringToMemory"] = function() { abort("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "writeArrayToMemory")) Module["writeArrayToMemory"] = function() { abort("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "writeAsciiToMemory")) Module["writeAsciiToMemory"] = function() { abort("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +Module["addRunDependency"] = addRunDependency; +Module["removeRunDependency"] = removeRunDependency; +if (!Object.getOwnPropertyDescriptor(Module, "FS_createFolder")) Module["FS_createFolder"] = function() { abort("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +Module["FS_createPath"] = FS.createPath; +Module["FS_createDataFile"] = FS.createDataFile; +Module["FS_createPreloadedFile"] = FS.createPreloadedFile; +Module["FS_createLazyFile"] = FS.createLazyFile; +if (!Object.getOwnPropertyDescriptor(Module, "FS_createLink")) Module["FS_createLink"] = function() { abort("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +Module["FS_createDevice"] = FS.createDevice; +Module["FS_unlink"] = FS.unlink; +if (!Object.getOwnPropertyDescriptor(Module, "getLEB")) Module["getLEB"] = function() { abort("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getFunctionTables")) Module["getFunctionTables"] = function() { abort("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "alignFunctionTables")) Module["alignFunctionTables"] = function() { abort("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerFunctions")) Module["registerFunctions"] = function() { abort("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "addFunction")) Module["addFunction"] = function() { abort("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "removeFunction")) Module["removeFunction"] = function() { abort("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getFuncWrapper")) Module["getFuncWrapper"] = function() { abort("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "prettyPrint")) Module["prettyPrint"] = function() { abort("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "dynCall")) Module["dynCall"] = function() { abort("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getCompilerSetting")) Module["getCompilerSetting"] = function() { abort("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "print")) Module["print"] = function() { abort("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "printErr")) Module["printErr"] = function() { abort("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getTempRet0")) Module["getTempRet0"] = function() { abort("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "setTempRet0")) Module["setTempRet0"] = function() { abort("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +Module["callMain"] = callMain; +if (!Object.getOwnPropertyDescriptor(Module, "abort")) Module["abort"] = function() { abort("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "keepRuntimeAlive")) Module["keepRuntimeAlive"] = function() { abort("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "zeroMemory")) Module["zeroMemory"] = function() { abort("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stringToNewUTF8")) Module["stringToNewUTF8"] = function() { abort("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "setFileTime")) Module["setFileTime"] = function() { abort("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "emscripten_realloc_buffer")) Module["emscripten_realloc_buffer"] = function() { abort("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "ENV")) Module["ENV"] = function() { abort("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "ERRNO_CODES")) Module["ERRNO_CODES"] = function() { abort("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "ERRNO_MESSAGES")) Module["ERRNO_MESSAGES"] = function() { abort("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "setErrNo")) Module["setErrNo"] = function() { abort("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "inetPton4")) Module["inetPton4"] = function() { abort("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "inetNtop4")) Module["inetNtop4"] = function() { abort("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "inetPton6")) Module["inetPton6"] = function() { abort("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "inetNtop6")) Module["inetNtop6"] = function() { abort("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "readSockaddr")) Module["readSockaddr"] = function() { abort("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "writeSockaddr")) Module["writeSockaddr"] = function() { abort("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "DNS")) Module["DNS"] = function() { abort("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getHostByName")) Module["getHostByName"] = function() { abort("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "GAI_ERRNO_MESSAGES")) Module["GAI_ERRNO_MESSAGES"] = function() { abort("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "Protocols")) Module["Protocols"] = function() { abort("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "Sockets")) Module["Sockets"] = function() { abort("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getRandomDevice")) Module["getRandomDevice"] = function() { abort("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "traverseStack")) Module["traverseStack"] = function() { abort("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "UNWIND_CACHE")) Module["UNWIND_CACHE"] = function() { abort("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "withBuiltinMalloc")) Module["withBuiltinMalloc"] = function() { abort("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "readAsmConstArgsArray")) Module["readAsmConstArgsArray"] = function() { abort("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "readAsmConstArgs")) Module["readAsmConstArgs"] = function() { abort("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "mainThreadEM_ASM")) Module["mainThreadEM_ASM"] = function() { abort("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "jstoi_q")) Module["jstoi_q"] = function() { abort("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "jstoi_s")) Module["jstoi_s"] = function() { abort("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getExecutableName")) Module["getExecutableName"] = function() { abort("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "listenOnce")) Module["listenOnce"] = function() { abort("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "autoResumeAudioContext")) Module["autoResumeAudioContext"] = function() { abort("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "dynCallLegacy")) Module["dynCallLegacy"] = function() { abort("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getDynCaller")) Module["getDynCaller"] = function() { abort("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "dynCall")) Module["dynCall"] = function() { abort("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "callRuntimeCallbacks")) Module["callRuntimeCallbacks"] = function() { abort("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "runtimeKeepalivePush")) Module["runtimeKeepalivePush"] = function() { abort("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "runtimeKeepalivePop")) Module["runtimeKeepalivePop"] = function() { abort("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "callUserCallback")) Module["callUserCallback"] = function() { abort("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "maybeExit")) Module["maybeExit"] = function() { abort("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "safeSetTimeout")) Module["safeSetTimeout"] = function() { abort("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "asmjsMangle")) Module["asmjsMangle"] = function() { abort("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "asyncLoad")) Module["asyncLoad"] = function() { abort("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "mmapAlloc")) Module["mmapAlloc"] = function() { abort("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "reallyNegative")) Module["reallyNegative"] = function() { abort("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "unSign")) Module["unSign"] = function() { abort("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "reSign")) Module["reSign"] = function() { abort("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "formatString")) Module["formatString"] = function() { abort("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "PATH")) Module["PATH"] = function() { abort("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "PATH_FS")) Module["PATH_FS"] = function() { abort("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "SYSCALLS")) Module["SYSCALLS"] = function() { abort("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "syscallMmap2")) Module["syscallMmap2"] = function() { abort("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "syscallMunmap")) Module["syscallMunmap"] = function() { abort("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getSocketFromFD")) Module["getSocketFromFD"] = function() { abort("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getSocketAddress")) Module["getSocketAddress"] = function() { abort("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "JSEvents")) Module["JSEvents"] = function() { abort("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerKeyEventCallback")) Module["registerKeyEventCallback"] = function() { abort("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "specialHTMLTargets")) Module["specialHTMLTargets"] = function() { abort("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "maybeCStringToJsString")) Module["maybeCStringToJsString"] = function() { abort("'maybeCStringToJsString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "findEventTarget")) Module["findEventTarget"] = function() { abort("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "findCanvasEventTarget")) Module["findCanvasEventTarget"] = function() { abort("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getBoundingClientRect")) Module["getBoundingClientRect"] = function() { abort("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "fillMouseEventData")) Module["fillMouseEventData"] = function() { abort("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerMouseEventCallback")) Module["registerMouseEventCallback"] = function() { abort("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerWheelEventCallback")) Module["registerWheelEventCallback"] = function() { abort("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerUiEventCallback")) Module["registerUiEventCallback"] = function() { abort("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerFocusEventCallback")) Module["registerFocusEventCallback"] = function() { abort("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "fillDeviceOrientationEventData")) Module["fillDeviceOrientationEventData"] = function() { abort("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerDeviceOrientationEventCallback")) Module["registerDeviceOrientationEventCallback"] = function() { abort("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "fillDeviceMotionEventData")) Module["fillDeviceMotionEventData"] = function() { abort("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerDeviceMotionEventCallback")) Module["registerDeviceMotionEventCallback"] = function() { abort("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "screenOrientation")) Module["screenOrientation"] = function() { abort("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "fillOrientationChangeEventData")) Module["fillOrientationChangeEventData"] = function() { abort("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerOrientationChangeEventCallback")) Module["registerOrientationChangeEventCallback"] = function() { abort("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "fillFullscreenChangeEventData")) Module["fillFullscreenChangeEventData"] = function() { abort("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerFullscreenChangeEventCallback")) Module["registerFullscreenChangeEventCallback"] = function() { abort("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerRestoreOldStyle")) Module["registerRestoreOldStyle"] = function() { abort("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "hideEverythingExceptGivenElement")) Module["hideEverythingExceptGivenElement"] = function() { abort("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "restoreHiddenElements")) Module["restoreHiddenElements"] = function() { abort("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "setLetterbox")) Module["setLetterbox"] = function() { abort("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "currentFullscreenStrategy")) Module["currentFullscreenStrategy"] = function() { abort("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "restoreOldWindowedStyle")) Module["restoreOldWindowedStyle"] = function() { abort("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "softFullscreenResizeWebGLRenderTarget")) Module["softFullscreenResizeWebGLRenderTarget"] = function() { abort("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "doRequestFullscreen")) Module["doRequestFullscreen"] = function() { abort("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "fillPointerlockChangeEventData")) Module["fillPointerlockChangeEventData"] = function() { abort("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerPointerlockChangeEventCallback")) Module["registerPointerlockChangeEventCallback"] = function() { abort("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerPointerlockErrorEventCallback")) Module["registerPointerlockErrorEventCallback"] = function() { abort("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "requestPointerLock")) Module["requestPointerLock"] = function() { abort("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "fillVisibilityChangeEventData")) Module["fillVisibilityChangeEventData"] = function() { abort("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerVisibilityChangeEventCallback")) Module["registerVisibilityChangeEventCallback"] = function() { abort("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerTouchEventCallback")) Module["registerTouchEventCallback"] = function() { abort("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "fillGamepadEventData")) Module["fillGamepadEventData"] = function() { abort("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerGamepadEventCallback")) Module["registerGamepadEventCallback"] = function() { abort("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerBeforeUnloadEventCallback")) Module["registerBeforeUnloadEventCallback"] = function() { abort("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "fillBatteryEventData")) Module["fillBatteryEventData"] = function() { abort("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "battery")) Module["battery"] = function() { abort("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerBatteryEventCallback")) Module["registerBatteryEventCallback"] = function() { abort("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "setCanvasElementSize")) Module["setCanvasElementSize"] = function() { abort("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getCanvasElementSize")) Module["getCanvasElementSize"] = function() { abort("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "polyfillSetImmediate")) Module["polyfillSetImmediate"] = function() { abort("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "demangle")) Module["demangle"] = function() { abort("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "demangleAll")) Module["demangleAll"] = function() { abort("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "jsStackTrace")) Module["jsStackTrace"] = function() { abort("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stackTrace")) Module["stackTrace"] = function() { abort("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getEnvStrings")) Module["getEnvStrings"] = function() { abort("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "checkWasiClock")) Module["checkWasiClock"] = function() { abort("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "writeI53ToI64")) Module["writeI53ToI64"] = function() { abort("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "writeI53ToI64Clamped")) Module["writeI53ToI64Clamped"] = function() { abort("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "writeI53ToI64Signaling")) Module["writeI53ToI64Signaling"] = function() { abort("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "writeI53ToU64Clamped")) Module["writeI53ToU64Clamped"] = function() { abort("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "writeI53ToU64Signaling")) Module["writeI53ToU64Signaling"] = function() { abort("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "readI53FromI64")) Module["readI53FromI64"] = function() { abort("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "readI53FromU64")) Module["readI53FromU64"] = function() { abort("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "convertI32PairToI53")) Module["convertI32PairToI53"] = function() { abort("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "convertU32PairToI53")) Module["convertU32PairToI53"] = function() { abort("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "uncaughtExceptionCount")) Module["uncaughtExceptionCount"] = function() { abort("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "exceptionLast")) Module["exceptionLast"] = function() { abort("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "exceptionCaught")) Module["exceptionCaught"] = function() { abort("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "ExceptionInfo")) Module["ExceptionInfo"] = function() { abort("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "CatchInfo")) Module["CatchInfo"] = function() { abort("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "exception_addRef")) Module["exception_addRef"] = function() { abort("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "exception_decRef")) Module["exception_decRef"] = function() { abort("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "Browser")) Module["Browser"] = function() { abort("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "funcWrappers")) Module["funcWrappers"] = function() { abort("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getFuncWrapper")) Module["getFuncWrapper"] = function() { abort("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "setMainLoop")) Module["setMainLoop"] = function() { abort("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "wget")) Module["wget"] = function() { abort("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +Module["FS"] = FS; +if (!Object.getOwnPropertyDescriptor(Module, "MEMFS")) Module["MEMFS"] = function() { abort("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "TTY")) Module["TTY"] = function() { abort("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "PIPEFS")) Module["PIPEFS"] = function() { abort("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "SOCKFS")) Module["SOCKFS"] = function() { abort("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "_setNetworkCallback")) Module["_setNetworkCallback"] = function() { abort("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "tempFixedLengthArray")) Module["tempFixedLengthArray"] = function() { abort("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "miniTempWebGLFloatBuffers")) Module["miniTempWebGLFloatBuffers"] = function() { abort("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "heapObjectForWebGLType")) Module["heapObjectForWebGLType"] = function() { abort("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "heapAccessShiftForWebGLHeap")) Module["heapAccessShiftForWebGLHeap"] = function() { abort("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "GL")) Module["GL"] = function() { abort("'GL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "emscriptenWebGLGet")) Module["emscriptenWebGLGet"] = function() { abort("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "computeUnpackAlignedImageSize")) Module["computeUnpackAlignedImageSize"] = function() { abort("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "emscriptenWebGLGetTexPixelData")) Module["emscriptenWebGLGetTexPixelData"] = function() { abort("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "emscriptenWebGLGetUniform")) Module["emscriptenWebGLGetUniform"] = function() { abort("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "webglGetUniformLocation")) Module["webglGetUniformLocation"] = function() { abort("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "webglPrepareUniformLocationsBeforeFirstUse")) Module["webglPrepareUniformLocationsBeforeFirstUse"] = function() { abort("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "webglGetLeftBracePos")) Module["webglGetLeftBracePos"] = function() { abort("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "emscriptenWebGLGetVertexAttrib")) Module["emscriptenWebGLGetVertexAttrib"] = function() { abort("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "writeGLArray")) Module["writeGLArray"] = function() { abort("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "AL")) Module["AL"] = function() { abort("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "SDL_unicode")) Module["SDL_unicode"] = function() { abort("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "SDL_ttfContext")) Module["SDL_ttfContext"] = function() { abort("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "SDL_audio")) Module["SDL_audio"] = function() { abort("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "SDL")) Module["SDL"] = function() { abort("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "SDL_gfx")) Module["SDL_gfx"] = function() { abort("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "GLUT")) Module["GLUT"] = function() { abort("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "EGL")) Module["EGL"] = function() { abort("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "GLFW_Window")) Module["GLFW_Window"] = function() { abort("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "GLFW")) Module["GLFW"] = function() { abort("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "GLEW")) Module["GLEW"] = function() { abort("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "IDBStore")) Module["IDBStore"] = function() { abort("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "runAndAbortIfError")) Module["runAndAbortIfError"] = function() { abort("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +Module["WORKERFS"] = WORKERFS; +Module["PROXYFS"] = PROXYFS; +if (!Object.getOwnPropertyDescriptor(Module, "warnOnce")) Module["warnOnce"] = function() { abort("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stackSave")) Module["stackSave"] = function() { abort("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stackRestore")) Module["stackRestore"] = function() { abort("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stackAlloc")) Module["stackAlloc"] = function() { abort("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "AsciiToString")) Module["AsciiToString"] = function() { abort("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stringToAscii")) Module["stringToAscii"] = function() { abort("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "UTF16ToString")) Module["UTF16ToString"] = function() { abort("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stringToUTF16")) Module["stringToUTF16"] = function() { abort("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "lengthBytesUTF16")) Module["lengthBytesUTF16"] = function() { abort("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "UTF32ToString")) Module["UTF32ToString"] = function() { abort("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stringToUTF32")) Module["stringToUTF32"] = function() { abort("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "lengthBytesUTF32")) Module["lengthBytesUTF32"] = function() { abort("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "allocateUTF8")) Module["allocateUTF8"] = function() { abort("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "allocateUTF8OnStack")) Module["allocateUTF8OnStack"] = function() { abort("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +Module["writeStackCookie"] = writeStackCookie; +Module["checkStackCookie"] = checkStackCookie; +if (!Object.getOwnPropertyDescriptor(Module, "ALLOC_NORMAL")) Object.defineProperty(Module, "ALLOC_NORMAL", { configurable: true, get: function() { abort("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") } }); +if (!Object.getOwnPropertyDescriptor(Module, "ALLOC_STACK")) Object.defineProperty(Module, "ALLOC_STACK", { configurable: true, get: function() { abort("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") } }); + +var calledRun; + +/** + * @constructor + * @this {ExitStatus} + */ +function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status; +} + +var calledMain = false; + +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 callMain(args) { + assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])'); + assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called'); + + var entryFunction = Module['_main']; + + args = args || []; + + var argc = args.length+1; + var argv = stackAlloc((argc + 1) * 4); + HEAP32[argv >> 2] = allocateUTF8OnStack(thisProgram); + for (var i = 1; i < argc; i++) { + HEAP32[(argv >> 2) + i] = allocateUTF8OnStack(args[i - 1]); + } + HEAP32[(argv >> 2) + argc] = 0; + + try { + + var ret = entryFunction(argc, argv); + + // In PROXY_TO_PTHREAD builds, we should never exit the runtime below, as + // execution is asynchronously handed off to a pthread. + // if we're not running an evented main loop, it's time to exit + exit(ret, /* implicit = */ true); + } + catch (e) { + // Certain exception types we do not treat as errors since they are used for + // internal control flow. + // 1. ExitStatus, which is thrown by exit() + // 2. "unwind", which is thrown by emscripten_unwind_to_js_event_loop() and others + // that wish to return to JS event loop. + if (e instanceof ExitStatus || e == 'unwind') { + return; + } + // Anything else is an unexpected exception and we treat it as hard error. + var toLog = e; + if (e && typeof e === 'object' && e.stack) { + toLog = [e, e.stack]; + } + err('exception thrown: ' + toLog); + quit_(1, e); + } finally { + calledMain = true; + + } +} + +function stackCheckInit() { + // This is normally called automatically during __wasm_call_ctors but need to + // get these values before even running any of the ctors so we call it redundantly + // here. + // TODO(sbc): Move writeStackCookie to native to to avoid this. + _emscripten_stack_init(); + writeStackCookie(); +} + +/** @type {function(Array=)} */ +function run(args) { + args = args || arguments_; + + if (runDependencies > 0) { + return; + } + + stackCheckInit(); + + preRun(); + + // a preRun added a dependency, run will be called later + if (runDependencies > 0) { + return; + } + + 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; + + initRuntime(); + + preMain(); + + readyPromiseResolve(Module); + if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); + + if (shouldRunNow) callMain(args); + + postRun(); + } + + if (Module['setStatus']) { + Module['setStatus']('Running...'); + setTimeout(function() { + setTimeout(function() { + Module['setStatus'](''); + }, 1); + doRun(); + }, 1); + } else + { + doRun(); + } + checkStackCookie(); +} +Module['run'] = run; + +function checkUnflushedContent() { + // Compiler settings do not allow exiting the runtime, so flushing + // the streams is not possible. but in ASSERTIONS mode we check + // if there was something to flush, and if so tell the user they + // should request that the runtime be exitable. + // Normally we would not even include flush() at all, but in ASSERTIONS + // builds we do so just for this check, and here we see if there is any + // content to flush, that is, we check if there would have been + // something a non-ASSERTIONS build would have not seen. + // How we flush the streams depends on whether we are in SYSCALLS_REQUIRE_FILESYSTEM=0 + // mode (which has its own special function for this; otherwise, all + // the code is inside libc) + var oldOut = out; + var oldErr = err; + var has = false; + out = err = function(x) { + has = true; + } + try { // it doesn't matter if it fails + var flush = Module['_fflush']; + if (flush) flush(0); + // also flush in the JS FS layer + ['stdout', 'stderr'].forEach(function(name) { + var info = FS.analyzePath('/dev/' + name); + if (!info) return; + var stream = info.object; + var rdev = stream.rdev; + var tty = TTY.ttys[rdev]; + if (tty && tty.output && tty.output.length) { + has = true; + } + }); + } catch(e) {} + out = oldOut; + err = oldErr; + if (has) { + warnOnce('stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.'); + } +} + +/** @param {boolean|number=} implicit */ +function exit(status, implicit) { + EXITSTATUS = status; + + checkUnflushedContent(); + + if (keepRuntimeAlive()) { + // if exit() was called, we may warn the user if the runtime isn't actually being shut down + if (!implicit) { + var msg = 'program exited (with status: ' + status + '), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)'; + readyPromiseReject(msg); + err(msg); + } + } else { + + exitRuntime(); + + if (Module['onExit']) Module['onExit'](status); + + ABORT = true; + } + + quit_(status, new ExitStatus(status)); +} + +if (Module['preInit']) { + if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; + while (Module['preInit'].length > 0) { + Module['preInit'].pop()(); + } +} + +// shouldRunNow refers to calling main(), not run(). +var shouldRunNow = false; + +if (Module['noInitialRun']) shouldRunNow = false; + +run(); + + + + + + + + return Module.ready +} +); +})(); +if (typeof exports === 'object' && typeof module === 'object') + module.exports = Module; +else if (typeof define === 'function' && define['amd']) + define([], function() { return Module; }); +else if (typeof exports === 'object') + exports["Module"] = Module; diff --git a/tests/data/samtools/samtools.wasm b/tests/data/samtools/samtools.wasm new file mode 100755 index 0000000000000000000000000000000000000000..a56c82e29556253070cea04a35991a565a124b95 GIT binary patch literal 1813466 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

10TdsQt}BHYPwHT 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

-uDkLZ9rzuCK<~FKd0X){k-a2N&4- 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�x17qr$AxCvGl&Kd% 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

+m6Lbvqt@H~)cY6$Kx`;JlclRUdZuf{+c4u*x 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%0AFq&Jl^&G;b#*BYFfKAW8whSeIRxJ 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

MzITz#&DZg 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%0A?t#E9jgbBrgyeyS4p#Cp9E+`MB+Q6yl0AAT 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 z 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 Yoon)5`v2=V@K5*Y-yMC^<4G#N15F780ssI2 literal 0 HcmV?d00001 From f7b55e17bf9df4ddb4e3ac0f4bd077fce93c1898 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Wed, 21 Jul 2021 09:53:02 -0700 Subject: [PATCH 39/47] Add tests --- tests/integration/test_inputs.js | 21 +++++++++++++++++++++ tests/integration/test_wasm.js | 29 +++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 tests/integration/test_inputs.js create mode 100644 tests/integration/test_wasm.js diff --git a/tests/integration/test_inputs.js b/tests/integration/test_inputs.js new file mode 100644 index 0000000..e0daf10 --- /dev/null +++ b/tests/integration/test_inputs.js @@ -0,0 +1,21 @@ +import Aioli from "../../dist/aioli.js"; + +describe("Input validation", () => { + it("Empty constructor", () => { + try { + new Aioli(); + } catch (error) { + expect(error).to.equal("Expecting array of tools as input to Aioli constructor."); + } + }); + + it("Should provide at least one tool", async () => { + try { + new Aioli([], { + urlAioli: "../../../dist/aioli.worker.js" + }).init(); + } catch (error) { + expect(error).to.equal("Expecting at least 1 tool."); + } + }); +}); diff --git a/tests/integration/test_wasm.js b/tests/integration/test_wasm.js new file mode 100644 index 0000000..1a4dac2 --- /dev/null +++ b/tests/integration/test_wasm.js @@ -0,0 +1,29 @@ +import Aioli from "../../dist/aioli.js"; + +describe("Running WebAssembly modules", () => { + // Test that we can successfully initialize samtools, run an ls command, and that we can call main() + it("Run samtools commands", async () => { + let aioli = new Aioli([ + { + tool: "samtools", + version: "1.10", + urlPrefix: "../tests/data/samtools", + } + ], { + urlAioli: "../../../dist/aioli.worker.js", + urlBaseModule: "../tests/data/base", + debug: true + }); + await aioli.init(); + + // Expect "samtools" preloaded folder to be there, along with "shared", which is where the shared filesystem lives + const lsObserved = (await aioli.ls("/")).join(","); + const lsExpected = [".", "..", "tmp", "home", "dev", "proc", "samtools", "shared"].join(","); + expect(lsObserved).to.equal(lsExpected); + + // Run a simple command + const versionObserved = (await aioli.exec("samtools --version-only")).stdout; + const versionExpected = "1.10+htslib-1.10\n"; + expect(versionObserved).to.equal(versionExpected); + }); +}); From 04ba3ce9da9ad50e8f5d97cdd00d7e8b46ebfd36 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Wed, 21 Jul 2021 10:14:31 -0700 Subject: [PATCH 40/47] When initializing a tool, support / format --- src/main.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main.js b/src/main.js index 0051fac..aec3ca4 100644 --- a/src/main.js +++ b/src/main.js @@ -38,6 +38,22 @@ export default class Aioli // Overwrite default config if specified config = Object.assign({}, CONFIG_DEFAULTS, config); + // For convenience, support "/" or "//" instead of object config + tools = tools.map(tool => { + if(typeof tool !== "string") + return tool; + + const toolSplit = tool.split("/"); + if(toolSplit.length != 2 && toolSplit.length != 3) + throw "Expecting '/' or '//'"; + + return { + tool: toolSplit[0], + program: toolSplit.length == 3 ? toolSplit[1] : toolSplit[0], + version: toolSplit[toolSplit.length - 1] + }; + }); + // Add base module to list of tools to initialize tools = [{ tool: "base", From 6dc200f4c913f491eca2ce8228b4a35f50b66a26 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Wed, 21 Jul 2021 10:28:25 -0700 Subject: [PATCH 41/47] Update README --- README.md | 123 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 69 insertions(+), 54 deletions(-) diff --git a/README.md b/README.md index 86f817c..c3858d6 100644 --- a/README.md +++ b/README.md @@ -2,38 +2,46 @@ [![npm](https://img.shields.io/npm/v/@biowasm/aioli)](https://www.npmjs.com/package/@biowasm/aioli) -Aioli is a framework for building fast genomics web applications using [WebAssembly](https://developer.mozilla.org/en-US/docs/WebAssembly) and [WebWorkers](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API). +Aioli is a library for running genomics command-line tools in the browser using WebAssembly. The WebAssembly modules are obtained from the [biowasm](https://github.com/biowasm/biowasm) CDN. -## Tools using Aioli - -| Tool | URL | Repo | -|-|-|-| -| Ribbon | [genomeribbon.com](https://genomeribbon.com) | [MariaNattestad/Ribbon](https://github.com/MariaNattestad/Ribbon) | -| Alignment Sandbox | [alignment.sandbox.bio](https://alignment.sandbox.bio/) | [RobertAboukhalil/alignment-sandbox](https://github.com/robertaboukhalil/alignment-sandbox) | -| fastq.bio | [fastq.bio](http://www.fastq.bio/) | [RobertAboukhalil/fastq.bio](https://github.com/robertaboukhalil/fastq.bio) | -| bam.bio | [bam.bio](http://www.bam.bio/) | [RobertAboukhalil/bam.bio](https://github.com/robertaboukhalil/bam.bio) | ## Getting Started -As shown below, **you can obtain Aioli from our biowasm CDN**, or you can install it from npm: `npm install @biowasm/aioli` (use the `npm` option if you need to host the Aioli module locally). - ### A simple example -Here's Aioli in action running the genomics tool `samtools` on a small `SAM` file: +Running the genomics tool `samtools` on a small file: ```html - + +``` + +### Load multiple tools + +Aioli supports running multiple bioinformatics tools at once: + +```html + + ``` @@ -44,29 +52,29 @@ We can update the previous example to run `samtools` on a file provided by the u ```html - + ``` @@ -80,23 +88,19 @@ document.getElementById("myfile").addEventListener("change", loadFile, false); // Format: / // ------------------------------------- -// Retrieve specific version (recommended for stability) new Aioli("seqtk/1.2"); - -// Retrieve latest version -new Aioli("seqtk/latest"); - +new Aioli("samtools/1.10"); // ------------------------------------- // Format: // // ------------------------------------- // For most bioinformatics tools, == -new Aioli("seqtk/seqtk/1.2"); +new Aioli("seqtk/seqtk/1.2"); // seqtk/1.2 == seqtk/seqtk/1.2 // But not always! Some tools have multiple sub-tools -new Aioli("seq-align/smith_waterman/1.2"); -new Aioli("seq-align/needleman_wunsch/1.2"); +new Aioli("seq-align/smith_waterman/2017.10.18"); +new Aioli("seq-align/needleman_wunsch/2017.10.18"); ``` ### Advanced @@ -105,14 +109,25 @@ By default, Aioli retrieves the `.wasm` modules and the Aioli WebWorker code fro ```javascript new Aioli({ - module: "seq-align", - program: "smith_waterman", // optional (defaults to $module) - version: "latest", // optional (defaults to latest) - urlModule: "./path/to/wasm/files/", // optional (defaults to biowasm CDN) + tool: "seq-align", + version: "2017.10.18", + program: "smith_waterman", // optional (defaults to "tool" name) + urlPrefix: "./path/to/wasm/files/", // optional (defaults to biowasm CDN) +}, { urlAioli: "./path/to/aioli.worker.js", // optional (defaults to biowasm CDN) }); ``` +## Tools using Aioli + +| Tool | URL | Repo | +|-|-|-| +| Ribbon | [genomeribbon.com](https://genomeribbon.com) | [MariaNattestad/Ribbon](https://github.com/MariaNattestad/Ribbon) | +| Alignment Sandbox | [alignment.sandbox.bio](https://alignment.sandbox.bio/) | [RobertAboukhalil/alignment-sandbox](https://github.com/robertaboukhalil/alignment-sandbox) | +| fastq.bio | [fastq.bio](http://www.fastq.bio/) | [RobertAboukhalil/fastq.bio](https://github.com/robertaboukhalil/fastq.bio) | +| bam.bio | [bam.bio](http://www.bam.bio/) | [RobertAboukhalil/bam.bio](https://github.com/robertaboukhalil/bam.bio) | + + ## Background info ### What is WebAssembly? From 6df97dbd9d96ede34fc2261525ee7405d6598a61 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Thu, 22 Jul 2021 07:56:15 -0700 Subject: [PATCH 42/47] Refactor/Cleanup --- src/main.js | 51 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/src/main.js b/src/main.js index aec3ca4..0b985c9 100644 --- a/src/main.js +++ b/src/main.js @@ -20,8 +20,9 @@ const CONFIG_DEFAULTS = { // Also mount URLs lazily in that folder. dirData: "/data", - // Toggle debug console messages - debug: false + // Debugging + debug: false, + env: "prd" }; // Class: 1 object = 1 worker; user can decide if they want tools running in separate threads or all of them in one @@ -29,32 +30,23 @@ export default class Aioli { constructor(tools, config={}) { - // Input validation if(tools == null) throw "Expecting array of tools as input to Aioli constructor."; + + // Parse user input if(!Array.isArray(tools)) tools = [ tools ]; - // Overwrite default config if specified config = Object.assign({}, CONFIG_DEFAULTS, config); - // For convenience, support "/" or "//" instead of object config - tools = tools.map(tool => { - if(typeof tool !== "string") - return tool; - - const toolSplit = tool.split("/"); - if(toolSplit.length != 2 && toolSplit.length != 3) - throw "Expecting '/' or '//'"; - - return { - tool: toolSplit[0], - program: toolSplit.length == 3 ? toolSplit[1] : toolSplit[0], - version: toolSplit[toolSplit.length - 1] - }; - }); + tools = tools.map(this._parseTool); + // If testing with different environment e.g. cdn-stg.biowasm.com + if(config.env != "prd") { + config.urlCDN = config.urlCDN.replace("cdn", `cdn-${config.env}`); + config.urlAioli = config.urlAioli.replace("cdn", `cdn-${config.env}`); + } - // Add base module to list of tools to initialize + // Add biowasm base module to list of tools to initialize (need this for the shared virtual filesystem) tools = [{ tool: "base", version: pkg.version, @@ -71,4 +63,23 @@ export default class Aioli return aioli; } + + // Parse "/" and "//" into { "tool": , "program": , "version": } + _parseTool(tool) + { + // If not a string, leave it as is + if(typeof tool !== "string") + return tool; + + // Support "/" and "//" + const toolSplit = tool.split("/"); + if(toolSplit.length != 2 && toolSplit.length != 3) + throw "Expecting '/' or '//'"; + + return { + tool: toolSplit[0], + program: toolSplit.length == 3 ? toolSplit[1] : toolSplit[0], + version: toolSplit[toolSplit.length - 1] + }; + } } From 070032c6a85faf9889498683bf6e848aae0baee3 Mon Sep 17 00:00:00 2001 From: Robert Aboukhalil Date: Thu, 22 Jul 2021 08:32:35 -0700 Subject: [PATCH 43/47] Refactor to account for the fact that you cannot create a WebWorker using a script hosted on a different domain --- README.md | 54 ++++++++++++++++++++++++----------------------------- src/main.js | 24 ++++++++++++++++++++---- 2 files changed, 44 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index c3858d6..f114240 100644 --- a/README.md +++ b/README.md @@ -13,13 +13,12 @@ Running the genomics tool `samtools` on a small file: ```html - ``` @@ -29,19 +28,18 @@ Aioli supports running multiple bioinformatics tools at once: ```html - ``` @@ -53,23 +51,19 @@ We can update the previous example to run `samtools` on a file provided by the u - ``` @@ -29,17 +28,15 @@ Aioli supports running multiple bioinformatics tools at once: ```html ``` @@ -53,19 +50,18 @@ We can update the previous example to run `samtools` on a file provided by the u