Buckets:
| /** | |
| * @license | |
| * Copyright 2010 The Emscripten Authors | |
| * SPDX-License-Identifier: MIT | |
| */ | |
| #include "minimum_runtime_check.js" | |
| #if MODULARIZE | |
| var Module = moduleArg; | |
| #elif USE_CLOSURE_COMPILER | |
| /** @type{Object} */ | |
| var Module; | |
| // if (!Module) is crucial for Closure Compiler here as it will | |
| // otherwise replace every `Module` occurrence with the object below | |
| if (!Module) /** @suppress{checkTypes}*/Module = | |
| #if AUDIO_WORKLET | |
| globalThis.{{{ EXPORT_NAME }}} || | |
| #endif | |
| {"__EMSCRIPTEN_PRIVATE_MODULE_EXPORT_NAME_SUBSTITUTION__":1}; | |
| #elif ENVIRONMENT_MAY_BE_NODE || ENVIRONMENT_MAY_BE_SHELL | |
| // When running on the web we expect Module to be defined externally, in the | |
| // HTML. Otherwise we must define it here before its first use | |
| // As a small code size optimization, we can use 'globalThis' to refer to the | |
| // global scope Module variable. | |
| var Module = globalThis.{{{ EXPORT_NAME }}} || {}; | |
| #else | |
| var Module = {{{ EXPORT_NAME }}}; | |
| #endif | |
| #if ENVIRONMENT_MAY_BE_NODE | |
| var ENVIRONMENT_IS_NODE = {{{ nodeDetectionCode() }}}; | |
| #endif | |
| #if ENVIRONMENT_MAY_BE_SHELL | |
| var ENVIRONMENT_IS_SHELL = !!globalThis.read; | |
| #endif | |
| #if ASSERTIONS || PTHREADS | |
| #if !ENVIRONMENT_MAY_BE_NODE && !ENVIRONMENT_MAY_BE_SHELL | |
| var ENVIRONMENT_IS_WEB = true | |
| #elif ENVIRONMENT.length == 1 | |
| var ENVIRONMENT_IS_WEB = {{{ ENVIRONMENT[0] === 'web' }}}; | |
| #elif ENVIRONMENT_MAY_BE_SHELL && ENVIRONMENT_MAY_BE_NODE | |
| var ENVIRONMENT_IS_WEB = !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_SHELL; | |
| #elif ENVIRONMENT_MAY_BE_SHELL | |
| var ENVIRONMENT_IS_WEB = !ENVIRONMENT_IS_SHELL; | |
| #else | |
| var ENVIRONMENT_IS_WEB = !ENVIRONMENT_IS_NODE; | |
| #endif | |
| #endif // ASSERTIONS || PTHREADS | |
| #if ENVIRONMENT_MAY_BE_WORKER || (PTHREADS || WASM_WORKERS) | |
| var ENVIRONMENT_IS_WORKER = !!globalThis.WorkerGlobalScope; | |
| #endif | |
| #if ENVIRONMENT_MAY_BE_NODE && (PTHREADS || WASM_WORKERS) | |
| if (ENVIRONMENT_IS_NODE) { | |
| var worker_threads = require('node:worker_threads'); | |
| globalThis.Worker = worker_threads.Worker; | |
| ENVIRONMENT_IS_WORKER = !worker_threads.isMainThread; | |
| } | |
| #endif | |
| #if AUDIO_WORKLET | |
| var ENVIRONMENT_IS_AUDIO_WORKLET = !!globalThis.AudioWorkletGlobalScope; | |
| #endif | |
| #if AUDIO_WORKLET && WASM_WORKERS | |
| var ENVIRONMENT_IS_WASM_WORKER = {{{ wasmWorkerDetection() }}} || ENVIRONMENT_IS_AUDIO_WORKLET; | |
| #elif WASM_WORKERS | |
| var ENVIRONMENT_IS_WASM_WORKER = {{{ wasmWorkerDetection() }}}; | |
| #endif | |
| #if WASM_WORKERS && ENVIRONMENT_MAY_BE_NODE | |
| if (ENVIRONMENT_IS_NODE) { | |
| // The way we signal to a worker that it is hosting a pthread is to construct | |
| // it with a specific name. | |
| ENVIRONMENT_IS_WASM_WORKER = worker_threads.workerData == 'em-ww' | |
| } | |
| #endif | |
| #if ASSERTIONS && ENVIRONMENT_MAY_BE_NODE && ENVIRONMENT_MAY_BE_SHELL | |
| if (ENVIRONMENT_IS_NODE && ENVIRONMENT_IS_SHELL) { | |
| throw new Error('unclear environment'); | |
| } | |
| #endif | |
| // Redefine these in a --pre-js to override behavior. If you would like to | |
| // remove out() or err() altogether, you can no-op it out to function() {}, | |
| // and build with --closure 1 to get Closure optimize out all the uses | |
| // altogether. | |
| #if ENVIRONMENT_MAY_BE_NODE && PTHREADS | |
| // Set up the out() and err() hooks, which are how we can print to stdout or | |
| // stderr, respectively. | |
| // Normally just binding console.log/console.error here works fine, but | |
| // under node (with workers) we see missing/out-of-order messages so route | |
| // directly to stdout and stderr. | |
| // See https://github.com/emscripten-core/emscripten/issues/14804 | |
| var defaultPrint = console.log.bind(console); | |
| var defaultPrintErr = console.error.bind(console); | |
| if (ENVIRONMENT_IS_NODE) { | |
| var fs = require('node:fs'); | |
| defaultPrint = (...args) => fs.writeSync(1, args.join(' ') + '\n'); | |
| defaultPrintErr = (...args) => fs.writeSync(2, args.join(' ') + '\n'); | |
| } | |
| var out = defaultPrint; | |
| var err = defaultPrintErr; | |
| #else | |
| var out = (...args) => console.log(...args); | |
| var err = (...args) => console.error(...args); | |
| #endif | |
| // Override this function in a --pre-js file to get a signal for when | |
| // compilation is ready. In that callback, call the function run() to start | |
| // the program. | |
| function ready() { | |
| #if MODULARIZE | |
| readyPromiseResolve?.(Module); | |
| #endif // MODULARIZE | |
| #if INVOKE_RUN && HAS_MAIN | |
| {{{ runIfMainThread("run();") }}} | |
| #elif ASSERTIONS | |
| out('ready() called, and INVOKE_RUN=0. The runtime is now ready for you to call run() to invoke application _main(). You can also override ready() in a --pre-js file to get this signal as a callback') | |
| #endif | |
| #if PTHREADS | |
| // This Worker is now ready to host pthreads, tell the main thread we can proceed. | |
| if (ENVIRONMENT_IS_PTHREAD) { | |
| startWorker(); | |
| } | |
| #endif | |
| } | |
| #if ENVIRONMENT_MAY_BE_NODE | |
| var isFileURI = (filename) => filename.startsWith('file://'); | |
| var readAsync, readBinary; | |
| #include "node_shell_read.js" | |
| #endif | |
| #if PTHREADS | |
| // MINIMAL_RUNTIME does not support --proxy-to-worker option, so Worker and Pthread environments | |
| // coincide. | |
| var ENVIRONMENT_IS_PTHREAD = ENVIRONMENT_IS_WORKER && {{{ pthreadDetection() }}}; | |
| #if !MODULARIZE | |
| // In MODULARIZE mode _scriptName needs to be captured already at the very top of the page immediately when the page is parsed, so it is generated there | |
| // before the page load. In non-MODULARIZE modes generate it here. | |
| var _scriptName = globalThis.document?.currentScript?.src; | |
| #endif | |
| #if ENVIRONMENT_MAY_BE_NODE | |
| if (ENVIRONMENT_IS_NODE) { | |
| ENVIRONMENT_IS_WORKER = !worker_threads.isMainThread; | |
| // Under node we set `workerData` to `em-pthread` to signal that the worker | |
| // is hosting a pthread. | |
| ENVIRONMENT_IS_PTHREAD = ENVIRONMENT_IS_WORKER && worker_threads.workerData == 'em-pthread' | |
| #if !EXPORT_ES6 | |
| _scriptName = __filename; | |
| #endif | |
| } else | |
| #endif // ENVIRONMENT_MAY_BE_NODE | |
| if (ENVIRONMENT_IS_WORKER) { | |
| _scriptName = self.location.href; | |
| } | |
| #endif // PTHREADS | |
| // --pre-jses are emitted after the Module integration code, so that they can | |
| // refer to Module (if they choose; they can also define Module) | |
| {{{ preJS() }}} | |
| #if !SINGLE_FILE | |
| #if PTHREADS | |
| if (!ENVIRONMENT_IS_PTHREAD) { | |
| #endif | |
| #if ENVIRONMENT_MAY_BE_NODE && ((WASM == 1 && !WASM2JS) || WASM == 2) | |
| // Wasm or Wasm2JS loading: | |
| if (ENVIRONMENT_IS_NODE) { | |
| var fs = require('node:fs'); | |
| #if WASM == 2 | |
| if (globalThis.WebAssembly) Module['wasm'] = fs.readFileSync(__dirname + '/{{{ TARGET_BASENAME }}}.wasm'); | |
| else eval(fs.readFileSync(__dirname + '/{{{ TARGET_BASENAME }}}.wasm.js')+''); | |
| #else | |
| #if !WASM2JS | |
| Module['wasm'] = fs.readFileSync(__dirname + '/{{{ TARGET_BASENAME }}}.wasm'); | |
| #endif | |
| #endif | |
| } | |
| #endif | |
| #if ENVIRONMENT_MAY_BE_SHELL && ((WASM == 1 && !WASM2JS) || WASM == 2) | |
| if (ENVIRONMENT_IS_SHELL) { | |
| #if WASM == 2 | |
| if (globalThis.WebAssembly) Module['wasm'] = read('{{{ TARGET_BASENAME }}}.wasm', 'binary'); | |
| else eval(read('{{{ TARGET_BASENAME }}}.wasm.js')+''); | |
| #else | |
| #if !WASM2JS | |
| Module['wasm'] = read('{{{ TARGET_BASENAME }}}.wasm', 'binary'); | |
| #endif | |
| #endif | |
| } | |
| #endif | |
| #if PTHREADS | |
| } | |
| #endif | |
| #endif // !SINGLE_FILE | |
Xet Storage Details
- Size:
- 6.84 kB
- Xet hash:
- f0b03c46d5707e3e685fcddbb517e40ef0a1ef48bffe250a8e1c773a727f59c4
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.