From c0c9d9f65cc9a156c7c065351d1d814a48a45ec6 Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Fri, 16 Oct 2026 14:05:32 -0700 Subject: [PATCH 1/2] Automate JS-to-JS library dependencies using Acorn Replace `addImplicitDeps` and `checkDependencies` in `src/jsifier.mjs` with `calculateDeps`, which uses `acorn.tokenizer` to automatically detect references to JS library symbols (`$foo` and `_bar`). Because `calculateDeps` uses a flat token scan rather than a full AST and scope analysis pass (both for speed and to support partial JS fragments in `--pre-js`/`--post-js`), this scanning is conservative and can include false positives if local variables or parameters shadow a library symbol name. Keep the `__deps` mechanism in place for dependencies that static JS token scanning cannot detect (such as native Wasm/C symbols, function callbacks in `__deps`, side-effect-only dependencies, and `__postset` dependencies). Also log auto-detected dependencies in debug/verbose mode (`-sVERBOSE`). Performance cost (median of 15 runs on `test/hello_world.c`): - `tools/compiler.mjs` (`INCLUDE_FULL_LIBRARY=0`): 178.8 ms -> 185.1 ms (+6.3 ms, +3.5% slower) - `tools/compiler.mjs` (`INCLUDE_FULL_LIBRARY=1`): 268.2 ms -> 343.1 ms (+74.9 ms, +27.9% slower) - `tools/compiler.mjs --symbols-only`: 181.4 ms -> 254.2 ms (+72.8 ms, +40.1% slower) - Full `emcc` link (`hello.o` -> `out.js`, cold JS cache): - `INCLUDE_FULL_LIBRARY=0`: 661.7 ms -> 740.8 ms (+79.1 ms, +12.0%) - `INCLUDE_FULL_LIBRARY=1`: 758.3 ms -> 906.0 ms (+147.7 ms, +19.5%) - Full `emcc` link (`hello.o` -> `out.js`, warm JS cache): - `INCLUDE_FULL_LIBRARY=0`: 271.8 ms (+0.0 ms, 0% slower) - `INCLUDE_FULL_LIBRARY=1`: 282.4 ms (+0.0 ms, 0% slower) See: #19098 --- ChangeLog.md | 4 + .../Interacting-with-code.rst | 19 +- src/jsifier.mjs | 280 +++++++++++------- .../test_jslib_override_system_symbol.js | 2 - test/test_jslib.py | 49 ++- tools/link.py | 2 +- 6 files changed, 236 insertions(+), 120 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index c2e9b8ac929fb..42bdd498772d1 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -26,6 +26,10 @@ See docs/process.md for more on how version tagging works. of `clang`. Previously, `.dwo` files were named `.dwo` and other auxiliary files were written to the temporary directory. (#28045) - libunwind and compiler-rt were updated to LLVM 23.1.3. (#28011, #28014) +- JavaScript library dependencies on other JavaScript library symbols are now + detected automatically by the compiler, so `__deps` is no longer required for + direct JS-to-JS references (`__deps` is still supported for dependencies on + compiled C/C++ symbols or indirect dependencies). (#27995) - mimalloc was updated to 3.5.3. (#28026) 6.0.13 - 10/19/26 diff --git a/site/source/docs/porting/connecting_cpp_and_javascript/Interacting-with-code.rst b/site/source/docs/porting/connecting_cpp_and_javascript/Interacting-with-code.rst index 30074c2688bf0..d48ccdcc5e34d 100644 --- a/site/source/docs/porting/connecting_cpp_and_javascript/Interacting-with-code.rst +++ b/site/source/docs/porting/connecting_cpp_and_javascript/Interacting-with-code.rst @@ -584,16 +584,15 @@ See the `library_*.js`_ files for other examples. .. note:: - - JavaScript libraries can declare dependencies (``__deps``), however - those are only for other JavaScript libraries. See examples in - `/src `_ - with the name format **library_*.js** - - You can add dependencies for all your methods using - ``autoAddDeps(myLibrary, name)`` where myLibrary is the object with - all your methods, and ``name`` is the thing they all depend upon. - This is useful when all the implemented methods use a JavaScript - singleton containing helper methods. See ``library_webgl.js`` for - an example. + - Direct dependencies between JavaScript library symbols are detected + automatically by the compiler. Explicit dependency declarations + (``__deps``) are only needed for compiled C/C++ functions or indirect + dependencies that are not referenced directly in the symbol's body (such + as ``$method_support`` above). See examples in + `/src/lib `_. + - You can add an explicit dependency to all methods in a library using + ``autoAddDeps(myLibrary, name)``, where ``myLibrary`` is the object with + all your methods and ``name`` is the symbol they all depend upon. - The keys passed into `addToLibrary` generate functions that are prefixed by ``_``. In other words ``my_func: function() {},`` becomes ``function _my_func() {}``, as all C methods in emscripten have a ``_`` prefix. Keys starting with ``$`` have the ``$`` diff --git a/src/jsifier.mjs b/src/jsifier.mjs index bbe2f866455d2..5ec77f76df966 100644 --- a/src/jsifier.mjs +++ b/src/jsifier.mjs @@ -9,6 +9,7 @@ import assert from 'node:assert'; import * as fs from 'node:fs/promises'; +import * as acorn from 'acorn'; import { ATMODULES, ATEXITS, @@ -46,10 +47,6 @@ import {extraExports, LibraryManager, librarySymbols, nativeAliases} from './mod const addedLibraryItems = {}; -// Experimental feature to check for invalid __deps entries. -// See `EMCC_CHECK_DEPS` in in the environment to try it out. -const CHECK_DEPS = process.env.EMCC_CHECK_DEPS; - // Some JS-implemented library functions are proxied to be called on the main // browser thread, if the Emscripten runtime is executing in a Web Worker. // Each such proxied function is identified via an ordinal number (this is not @@ -180,101 +177,140 @@ function preJS() { return result; } -// Certain library functions have specific indirect dependencies. See the -// comments alongside eaach of these. -const checkDependenciesSkip = new Set([ - '_mmap_js', - '_emscripten_throw_longjmp', - '_emscripten_receive_on_main_thread_js', - 'emscripten_start_fetch', - 'emscripten_start_wasm_audio_worklet_thread_async', -]); +// Check if tokens[i] is the name of an object/class method definition `foo(...) {` +function isMethodDef(tokens, i) { + if (tokens[i + 1]?.type.label !== '(') { + return false; + } + let depth = 1; + for (let j = i + 2; j < tokens.length; j++) { + const label = tokens[j].type.label; + if (label === '(') { + depth++; + } else if (label === ')') { + depth--; + if (depth === 0) { + return tokens[j + 1]?.type.label === '{'; + } + } + } + return false; +} -const checkDependenciesIgnore = new Set([ - // These are added in bulk to whole library files are so are not precise - '$PThread', - '$SDL', - '$GLUT', - '$GLEW', - '$Browser', - '$AL', - '$GL', - '$IDBStore', - // These are added purely for their side effects - '$polyfillWaitAsync', - '$GLImmediateSetup', - '$emscriptenGetAudioObject', - // These get conservatively injected via i53ConversionDeps - '$bigintToI53Checked', - '$convertI32PairToI53Checked', - 'setTempRet0', +// Unlike JS library symbols, user code in `--pre-js`, `--post-js`, and +// `EM_JS`/`EM_ASM` snippets does not automatically pull in arbitrary JS +// library symbols (users must pass `-sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE` or +// `-sEXPORTED_RUNTIME_METHODS`). Only these common runtime helpers and heap +// views are implicitly included when referenced in those snippets. +const implicitSnippetDeps = new Set([ + 'getDynCaller', + 'getWasmTableEntry', + 'makeBigInt', + 'runtimeKeepalivePush', + 'runtimeKeepalivePop', + 'UTF8ToString', + // TODO: Consider removing getValue and setValue if they are rarely used implicitly. + 'getValue', + 'setValue', + 'HEAP8', + 'HEAP16', + 'HEAPU8', + 'HEAPU16', + 'HEAP32', + 'HEAPU32', + 'HEAPF32', + 'HEAPF64', + 'HEAP64', + 'HEAPU64', ]); -/** - * Hacky attempt to find unused `__deps` entries. This is not enabled by default - * but can be enabled by setting CHECK_DEPS above. - * TODO: Use a more precise method such as tokenising using acorn. - */ -function checkDependencies(symbol, snippet, deps, postset) { - if (checkDependenciesSkip.has(symbol)) { - return; - } - for (const dep of deps) { - if (typeof dep === 'function') { +// Scan a JS snippet for references to JS library symbols using `acorn.tokenizer`. +// Because this uses a flat token scan rather than full AST/scope analysis (for +// speed and to handle partial JS fragments in `--pre-js`/`--post-js`), it is +// conservative and can produce false positives if local variables or parameters +// shadow a library symbol name. +function calculateDeps(snippet, isUserSnippet = false) { + const found = new Set(); + const typeofSyms = new Set(); + const tokens = Array.from(acorn.tokenizer(snippet, {ecmaVersion: 2022})); + + for (let i = 0; i < tokens.length; i++) { + const tok = tokens[i]; + if (tok.type.label !== 'name') { continue; } - if (checkDependenciesIgnore.has(dep)) { + const name = tok.value; + const prevToken = tokens[i - 1]; + const nextToken = tokens[i + 1]; + + // Ignore property accesses (e.g. `obj.foo` or `obj?.foo`) + if (prevToken?.type.label === '.' || prevToken?.type.label === '?.') { continue; } - const mangled = mangleCSymbolName(dep); - if (!snippet.includes(mangled) && !postset?.includes(mangled)) { - error(`${symbol}: unused dependency: ${dep}`); + // Ignore function or class declarations' own name (e.g. `function foo()` or `class Foo`) + if (prevToken?.type.keyword === 'function' || prevToken?.type.keyword === 'class') { + continue; + } + // Ignore object literal property keys (e.g. `{ foo: 123 }`) + if (nextToken?.type.label === ':' && (prevToken?.type.label === '{' || prevToken?.type.label === ',')) { + continue; + } + // Ignore object/class shorthand method definitions (e.g. `foo() { ... }`) + if (isMethodDef(tokens, i)) { + continue; + } + // Ignore `typeof foo` existence checks (e.g. `if (typeof SDL !== 'undefined') SDL.foo()`). + if (prevToken?.type.keyword === 'typeof') { + if (nextToken?.type.label !== '.') { + typeofSyms.add(name); + } + continue; + } + if (typeofSyms.has(name)) { + continue; } - } -} -function addImplicitDeps(snippet, deps) { - // There are some common dependencies that we inject automatically by - // conservatively scanning the input functions for their usage. - // Specifically, these are dependencies that are very common and would be - // burdensome to add manually to all functions. - // The first four are deps that are automatically/conditionally added - // by the {{{ makeDynCall }}}, and {{{ runtimeKeepalivePush/Pop }}} macros. - const autoDeps = [ - 'getDynCaller', - 'getWasmTableEntry', - 'runtimeKeepalivePush', - 'runtimeKeepalivePop', - 'UTF8ToString', - // TODO: Consider removing getValue and setValue if they are rarely used implicitly. - 'getValue', - 'setValue', - ]; - for (const dep of autoDeps) { - if (snippet.includes(dep + '(')) { - deps.push('$' + dep); + // If the snippet contains eval(), it may dynamically evaluate code loaded from memory at runtime + // (for example, in emscripten_run_script where the snippet is eval(UTF8ToString(ptr))). + // Because static analysis cannot inspect what strings are stored in memory or evaluated + // at runtime, we must conservatively include all heap views whenever a snippet uses eval(). + if (name === 'eval' && nextToken?.type.label === '(') { + found.add('$HEAP8'); + found.add('$HEAPU8'); + found.add('$HEAP16'); + found.add('$HEAPU16'); + found.add('$HEAP32'); + found.add('$HEAPU32'); + found.add('$HEAPF32'); + found.add('$HEAPF64'); + if (WASM_BIGINT || MEMORY64) { + found.add('$HEAP64'); + found.add('$HEAPU64'); + } + continue; } - } - // If the snippet contains eval(), it may dynamically evaluate code loaded from memory at runtime - // (for example, in emscripten_run_script where the snippet is eval(UTF8ToString(ptr))). - // Because static string matching cannot inspect what strings are stored in memory or evaluated - // at runtime, we must conservatively include all heap views whenever a snippet uses eval(). - if (snippet.includes('eval(')) { - deps.push('$HEAP8', '$HEAPU8', '$HEAP16', '$HEAPU16', '$HEAP32', '$HEAPU32', '$HEAPF32', '$HEAPF64'); - if (WASM_BIGINT || MEMORY64) { - deps.push('$HEAP64', '$HEAPU64'); + + // When scanning `--pre-js`, `--post-js`, or `EM_JS`/`EM_ASM`, + // only auto-include symbols from `implicitSnippetDeps`. + if (isUserSnippet && !implicitSnippetDeps.has(name)) { + continue; } - } - const heapDeps = [ - 'HEAP8', 'HEAP16', 'HEAPU8', 'HEAPU16', - 'HEAP32', 'HEAPU32', 'HEAPF32', 'HEAPF64', - 'HEAP64', 'HEAPU64', - ]; - for (const heap of heapDeps) { - if (snippet.includes(heap)) { - deps.push('$' + heap); + + let dep; + if ('$' + name in LibraryManager.library) { + dep = '$' + name; + } else if (!isUserSnippet && name.startsWith('_') && name.slice(1) in LibraryManager.library) { + dep = name.slice(1); + } + + // $noExitRuntime cannot be referenced via __deps (it must be included via + // DEFAULT_LIBRARY_FUNCS_TO_INCLUDE or EXPORTED_RUNTIME_METHODS). + if (dep && dep !== '$noExitRuntime') { + found.add(dep); } } + + return found; } function sigToArgs(sig) { @@ -442,11 +478,11 @@ export async function runJSify(outputFile, symbolsOnly) { for (const fileName of [...PRE_JS_FILES, ...POST_JS_FILES]) { const content = getIncludeFile(fileName); if (!errorOccured()) { - addImplicitDeps(content, symbolsNeeded); + symbolsNeeded.push(...calculateDeps(content, /*isUserSnippet=*/ true)); } } for (const snippet of EM_JS_SNIPPETS) { - addImplicitDeps(snippet, symbolsNeeded); + symbolsNeeded.push(...calculateDeps(snippet, /*isUserSnippet=*/ true)); } } for (const sym of EXPORTED_RUNTIME_METHODS) { @@ -517,7 +553,6 @@ function(${args}) { ((i53abi && sig.includes('j')) || ((MEMORY64 || CAN_ADDRESS_2GB) && sig.includes('p'))) ) { snippet = handleI64Signatures(symbol, snippet, sig, i53abi, isAsyncFunction); - compileTimeContext.i53ConversionDeps.forEach((d) => deps.push(d)); } const proxyingMode = LibraryManager.library[symbol + '__proxy']; @@ -548,7 +583,6 @@ function(${args}) { const rtnType = sig?.[0]; const proxyFunc = MEMORY64 && rtnType == 'p' ? 'proxyToMainThreadPtr' : 'proxyToMainThread'; - deps.push('$' + proxyFunc); return ` ${async_}function(${args}) { if (ENVIRONMENT_IS_PTHREAD) @@ -627,7 +661,40 @@ function(${args}) { asyncFuncs.push(symbol); } + const isUserSymbol = LibraryManager.library[symbol + '__user']; + + function addImplicitDeps(snippet) { + for (const dep of calculateDeps(snippet)) { + if (dep === symbol) continue; + if (deps.includes(dep)) { + if (!symbolsOnly && (STRICT || !isUserSymbol) && LibraryManager.library[symbol] !== dep) { + warn(`${symbol}: redundant __deps entry: ${dep}`); + } + } else { + if (!symbolsOnly) { + debugLog(`auto-detected dependency: ${symbol} -> ${dep}`); + } + deps.push(dep); + } + } + } + if (symbolsOnly) { + if (LibraryManager.library.hasOwnProperty(symbol)) { + let snippet = LibraryManager.library[symbol]; + if (!LibraryManager.isAlias(snippet)) { + if (typeof snippet === 'object') { + snippet = stringifyWithFunctions(snippet); + } else if (typeof snippet === 'function') { + snippet = snippet.toString(); + } else if (typeof snippet === 'string') { + snippet = snippet.replace(/^[=;]/, ''); + } + if (typeof snippet === 'string') { + addImplicitDeps(snippet); + } + } + } return; } @@ -698,13 +765,6 @@ function(${args}) { if (!isStub && LibraryManager.library[symbol + '__export']) { extraExports.add(mangled); } - const isUserSymbol = LibraryManager.library[symbol + '__user']; - // Check for dependencies on `__internal` symbols from user libraries. - for (const dep of deps) { - if (isUserSymbol && LibraryManager.library[dep + '__internal']) { - warn(`user library symbol '${symbol}' depends on internal symbol '${dep}'`); - } - } let isFunction = typeof snippet === 'function'; let isNativeAlias = false; @@ -750,17 +810,29 @@ function(${args}) { } } else if (typeof snippet === 'object') { snippet = stringifyWithFunctions(snippet); - addImplicitDeps(snippet, deps); - } else if (typeof snippet === 'string' && (snippet.match(/^\s*\([^}]*\)\s*=>/) || snippet.match(/^function\b/))) { - // Support functions that are already "stringified" - isFunction = true; + addImplicitDeps(snippet); + } else if (typeof snippet === 'string') { + if (snippet.match(/^\s*\([^}]*\)\s*=>/) || snippet.match(/^function\b/)) { + // Support functions that are already "stringified" + isFunction = true; + } else { + addImplicitDeps(snippet.replace(/^[=;]/, '')); + } } if (isFunction) { snippet = processLibraryFunction(snippet, symbol, mangled, deps, isStub); - addImplicitDeps(snippet, deps); - if (CHECK_DEPS && !isUserSymbol) { - checkDependencies(symbol, snippet, deps, postset?.toString()); + if (!isStub) { + addImplicitDeps(snippet); + } + } + + // Check for dependencies on `__internal` symbols from user libraries. + // Exclude `implicitSnippetDeps` (such as `$getWasmTableEntry`, which is + // injected by the `{{{ makeDynCall }}}` macro). + for (const dep of deps) { + if (isUserSymbol && LibraryManager.library[dep + '__internal'] && !implicitSnippetDeps.has(dep.slice(1))) { + warn(`user library symbol '${symbol}' depends on internal symbol '${dep}'`); } } diff --git a/test/jslib/test_jslib_override_system_symbol.js b/test/jslib/test_jslib_override_system_symbol.js index c5fd8db0e417c..e0caa6f1236fa 100644 --- a/test/jslib/test_jslib_override_system_symbol.js +++ b/test/jslib/test_jslib_override_system_symbol.js @@ -1,10 +1,8 @@ if (!LibraryManager.library.glTexImage3D) throw 'This file should be getting processed after library_webgl2.js!'; addToLibrary({ - orig_glTexImage3D__deps: LibraryManager.library.glTexImage3D__deps || [], orig_glTexImage3D: LibraryManager.library.glTexImage3D, - glTexImage3D__deps: ['orig_glTexImage3D'], glTexImage3D: function(target, level, internalFormat, width, height, depth, border, format, type, pixels) { _glTexImage3D.createdType = type; // Check that the original function exists diff --git a/test/test_jslib.py b/test/test_jslib.py index 8a6539d6c7cab..99c0c1cbb2279 100644 --- a/test/test_jslib.py +++ b/test/test_jslib.py @@ -285,7 +285,6 @@ def test_jslib_preprocessor_errors(self): def test_jslib_internal_deps(self): create_file('lib.js', r''' addToLibrary({ - jslibfunc__deps: ['$callRuntimeCallbacks'], jslibfunc: (x) => { callRuntimeCallbacks(); }, @@ -805,6 +804,7 @@ def test_jslib_preprocess(self): # Tests that it is possible to hook into/override a symbol defined in a system library. def test_jslib_override_system_symbol(self): # This test verifies it is possible to override a symbol from WebGL library. + self.cflags += ['-Wno-js-compiler'] # When WebGL is implicitly linked in, the implicit linking should happen before any user # --js-libraries, so that they can adjust the behavior afterwards. @@ -827,11 +827,9 @@ def test_jslib_named_class(self): class ParentClass {} addToLibrary({ $ParentClass: ParentClass, - $MyClass__deps: ['$ParentClass'], $MyClass: class extends ParentClass { constructor() { super(); this.x = 42; } }, - log_class__deps: ['$MyClass'], log_class: () => { var i = new MyClass(); out('MyClass: ' + i.x); @@ -851,6 +849,51 @@ class ParentClass {} ''') self.do_runf('src.c', 'MyClass: 42', cflags=['--js-library', 'lib.js']) + def test_jslib_auto_deps(self): + create_file('lib.js', r''' + addToLibrary({ + $unusedHelper: () => 99, + $helper: () => 10, + other_js_func: () => helper() + 20, + $myObj: { + unusedHelper: 12, + getVal() { + return _other_js_func() + this.unusedHelper; + }, + }, + entry_func: () => { + out('val: ' + myObj.getVal()); + out('done'); + }, + }); + ''') + create_file('src.c', r''' + void entry_func(void); + int main() { + entry_func(); + return 0; + } + ''') + self.do_runf('src.c', 'val: 42\ndone\n', cflags=['--js-library', 'lib.js']) + self.assertNotContained('unusedHelper =', read_file('src.js')) + err = self.run_process([EMCC, 'src.c', '--js-library', 'lib.js', '-sVERBOSE'], stderr=PIPE).stderr + self.assertContained('auto-detected dependency: entry_func -> $myObj', err) + self.assertContained('auto-detected dependency: $myObj -> other_js_func', err) + self.assertContained('auto-detected dependency: other_js_func -> $helper', err) + + # Test warning when an explicit __deps entry duplicates an auto-detected dependency + create_file('redundant.js', r''' + addToLibrary({ + $helper: () => 10, + entry_func__deps: ['$helper'], + entry_func: () => helper(), + }); + ''') + err = self.run_process([EMCC, 'src.c', '--js-library', 'redundant.js'], stderr=PIPE).stderr + self.assertNotContained('redundant __deps entry', err) + err = self.run_process([EMCC, 'src.c', '--js-library', 'redundant.js', '-sSTRICT'], stderr=PIPE).stderr + self.assertContained('warning: entry_func: redundant __deps entry: $helper', err) + # Tests that JS library functions containing multiline strings are not disturbed by e.g. inserting indentation into the output. @parameterized({ '': ([],), diff --git a/tools/link.py b/tools/link.py index 062816b97464c..305965a65171d 100644 --- a/tools/link.py +++ b/tools/link.py @@ -785,7 +785,7 @@ def setup_cross_origin_storage(): def add_required_heap_symbols(): """Auto-include heap views and helper symbols required by certain build modes or runtime. - Because addImplicitDeps only scans library functions and user code (pre-js/post-js/EM_JS), + Because calculateDeps only scans library functions and user code (pre-js/post-js/EM_JS), runtime scaffolding files (e.g., postamble.js, runtime_stack_check.js, memoryprofiler.js) that access linear memory directly must have their heap views explicitly declared here so they are emitted in the final JS bundle. From 8f149126c709523ffe7320f2f175ef972fd6038f Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Wed, 21 Oct 2026 15:10:31 -0700 Subject: [PATCH 2/2] Remove redundant `__deps` entries and `autoAddDeps` calls across JS libraries Remove all `autoAddDeps` calls and redundant `__deps` entries across `src/lib/*.js` and the test suite. Fixes: #19098 --- src/lib/libaddfunction.js | 20 --- src/lib/libasync.js | 19 +-- src/lib/libatomic.js | 7 +- src/lib/libautodebug.js | 4 - src/lib/libbootstrap.js | 1 - src/lib/libbrowser.js | 30 +--- src/lib/libc_preprocessor.js | 1 - src/lib/libccall.js | 6 - src/lib/libcore.js | 176 ++--------------------- src/lib/libdylink.js | 62 +------- src/lib/libegl.js | 8 -- src/lib/libembind.js | 176 +---------------------- src/lib/libembind_gen.js | 43 ------ src/lib/libembind_shared.js | 14 +- src/lib/libemval.js | 77 +--------- src/lib/libepoll.js | 9 +- src/lib/libeventloop.js | 28 ---- src/lib/libexceptions.js | 53 +++---- src/lib/libexports.js | 1 - src/lib/libfetch.js | 17 --- src/lib/libfetchfs.js | 2 +- src/lib/libfs.js | 14 +- src/lib/libfs_shared.js | 20 --- src/lib/libglemu.js | 39 +---- src/lib/libglew.js | 3 +- src/lib/libglfw.js | 16 +-- src/lib/libglut.js | 11 -- src/lib/libhtml5.js | 149 ++----------------- src/lib/libhtml5_webgl.js | 48 +------ src/lib/libidbfs.js | 1 - src/lib/libidbstore.js | 7 +- src/lib/libint53.js | 12 -- src/lib/liblegacy.js | 9 +- src/lib/liblz4.js | 1 - src/lib/libmemfs.js | 1 - src/lib/libnodefs.js | 3 +- src/lib/libnodepath.js | 2 - src/lib/libnoderawfs.js | 3 +- src/lib/libopenal.js | 9 -- src/lib/libpath.js | 2 - src/lib/libpipefs.js | 1 - src/lib/libpromise.js | 25 ---- src/lib/libproxyfs.js | 1 - src/lib/libpthread.js | 65 ++------- src/lib/libsdl.js | 56 +------- src/lib/libsockfs.js | 12 -- src/lib/libsockfs_node.js | 6 - src/lib/libstack_trace.js | 17 +-- src/lib/libstrings.js | 20 +-- src/lib/libsyscall.js | 54 +------ src/lib/libsyscall_shared.js | 1 - src/lib/libtime.js | 12 -- src/lib/libtrace.js | 5 - src/lib/libtty.js | 5 - src/lib/libunwind.js | 1 - src/lib/libuuid.js | 5 - src/lib/libwasi.js | 38 +---- src/lib/libwasm_worker.js | 21 +-- src/lib/libwasmfs.js | 40 +----- src/lib/libwasmfs_fetch.js | 2 - src/lib/libwasmfs_js_file.js | 4 - src/lib/libwasmfs_node.js | 25 ---- src/lib/libwasmfs_opfs.js | 41 ------ src/lib/libwebaudio.js | 26 +--- src/lib/libwebgl.js | 176 +---------------------- src/lib/libwebgl2.js | 47 ------ src/lib/libwebsocket.js | 22 +-- src/lib/libwget.js | 12 +- src/lib/libworkerfs.js | 1 - src/lib/libxlib.js | 1 - test/benchmark/benchmark_ffis.js | 1 - test/core/test_jslib_i64_params.js | 1 - test/embind/test_i64_binding.js | 1 - test/jslib/test_multiline_string.js | 1 - test/minimal_webgl/library_js.js | 2 - test/other/test_parseTools.js | 3 - test/pthread/call_sync_on_main_thread.js | 1 - test/test_jslib.py | 5 - test/test_other.py | 4 +- test/test_this_in_dyncall.js | 1 - 80 files changed, 123 insertions(+), 1743 deletions(-) diff --git a/src/lib/libaddfunction.js b/src/lib/libaddfunction.js index d0c4ec81e5288..4f772bc6bfeff 100644 --- a/src/lib/libaddfunction.js +++ b/src/lib/libaddfunction.js @@ -35,7 +35,6 @@ addToLibrary({ }`, $generateTypePack__internal: true, - $generateTypePack__deps: ['$uleb128EncodeWithLen', '$wasmTypeCodes'], $generateTypePack: (types) => uleb128EncodeWithLen(Array.from(types, (type) => { var code = wasmTypeCodes[type]; #if ASSERTIONS @@ -46,10 +45,6 @@ addToLibrary({ #if !WASM2JS || WASM == 2 // Wraps a JS function as a wasm function with a given signature. - $convertJsFunctionToWasm__deps: [ - '$uleb128EncodeWithLen', - '$generateTypePack' - ], $convertJsFunctionToWasm: (func, sig) => { #if ASSERTIONS && !WASM_BIGINT assert(!sig.includes('j'), 'i64 not permitted in function signatures when WASM_BIGINT is disabled'); @@ -93,7 +88,6 @@ addToLibrary({ // Weak map of functions in the table to their indexes, created on first use. $functionsInTableMap: undefined, - $getEmptyTableSlot__deps: ['$freeTableIndexes', '$wasmTable'], $getEmptyTableSlot: () => { // Reuse a free index if there is one, otherwise grow. if (freeTableIndexes.length) { @@ -114,7 +108,6 @@ addToLibrary({ #endif }, - $updateTableMap__deps: ['$getWasmTableEntry', '$functionsInTableMap'], $updateTableMap: (offset, count) => { if (functionsInTableMap) { for (var i = offset; i < offset + count; i++) { @@ -127,7 +120,6 @@ addToLibrary({ } }, - $getFunctionAddress__deps: ['$updateTableMap', '$functionsInTableMap', '$wasmTable'], $getFunctionAddress: (func) => { // First, create the map if this is the first use. if (!functionsInTableMap) { @@ -142,16 +134,6 @@ addToLibrary({ * 'sig' parameter is required if the function being added is a JS function. */ $addFunction__docs: '/** @param {string=} sig */', - $addFunction__deps: ['$getFunctionAddress', - '$functionsInTableMap', '$getEmptyTableSlot', - '$setWasmTableEntry', -#if !WASM2JS || WASM == 2 - '$convertJsFunctionToWasm', -#endif -#if ASSERTIONS >= 2 - '$getWasmTableEntry', '$wasmTable', -#endif - ], $addFunction: (func, sig) => { #if ASSERTIONS @@ -201,8 +183,6 @@ addToLibrary({ return ret; }, - $removeFunction__deps: ['$functionsInTableMap', '$freeTableIndexes', - '$getWasmTableEntry', '$setWasmTableEntry'], $removeFunction: (index) => { functionsInTableMap.delete(getWasmTableEntry(index)); setWasmTableEntry(index, null); diff --git a/src/lib/libasync.js b/src/lib/libasync.js index f272fdd44346e..7aaed44b9bc80 100644 --- a/src/lib/libasync.js +++ b/src/lib/libasync.js @@ -21,19 +21,10 @@ addToLibrary({ #if ASYNCIFY $Asyncify__force: true, - $Asyncify__deps: [ -#if useRuntimeKeepaliveStack() - '$runtimeKeepalivePush', '$runtimeKeepalivePop', -#endif #if ASYNCIFY == 1 - '$runAndAbortIfError', '$callUserCallback', -#if ASSERTIONS - '$createNamedFunction', -#endif - // Needed by allocateData and handleSleep respectively - 'malloc', 'free', + // Needed by allocateData and handleSleep respectively + $Asyncify__deps: ['malloc', 'free'], #endif - ], $Asyncify: { // @@ -484,7 +475,7 @@ addToLibrary({ emscripten_sleep__async: 'auto', emscripten_sleep: (ms) => new Promise((resolve) => setTimeout(resolve, ms)), - emscripten_wget_data__deps: ['$asyncLoad', 'malloc'], + emscripten_wget_data__deps: ['malloc'], emscripten_wget_data__async: 'auto', emscripten_wget_data: async (url, pbuffer, pnum, perror) => { /* no need for run dependency, this is async but will not do any prepare etc. step */ @@ -501,7 +492,6 @@ addToLibrary({ } }, - emscripten_scan_registers__deps: ['$safeSetTimeout'], emscripten_scan_registers__async: true, emscripten_scan_registers: (func) => { return Asyncify.handleSleep((wakeUp) => { @@ -518,7 +508,7 @@ addToLibrary({ }); }, - $Fibers__deps: ['$Asyncify', 'emscripten_stack_set_limits', '$stackRestore'], + $Fibers__deps: ['emscripten_stack_set_limits'], $Fibers: { nextFiber: 0, trampolineRunning: false, @@ -578,7 +568,6 @@ addToLibrary({ }, }, - emscripten_fiber_swap__deps: ['$Asyncify', '$Fibers', '$stackSave'], emscripten_fiber_swap__async: true, emscripten_fiber_swap: (oldFiber, newFiber) => { if (ABORT) return; diff --git a/src/lib/libatomic.js b/src/lib/libatomic.js index a1914f0d54d6d..e13ae60f47b1a 100644 --- a/src/lib/libatomic.js +++ b/src/lib/libatomic.js @@ -69,7 +69,7 @@ addToLibrary({ }, #if ASYNCIFY - _emscripten_atomic_wait_promise__deps: ['$polyfillWaitAsync', '$atomicWaitStates', '$addPromise'], + _emscripten_atomic_wait_promise__deps: ['$polyfillWaitAsync'], _emscripten_atomic_wait_promise: (addr, val, maxWaitMilliseconds) => { var wait = Atomics.waitAsync(HEAP32, {{{ getHeapOffset('addr', 'i32') }}}, val, maxWaitMilliseconds); if (wait.async) { @@ -94,7 +94,7 @@ addToLibrary({ $liveAtomicWaitAsyncCounter: 0, $liveAtomicWaitAsyncCounter__internal: true, - emscripten_atomic_wait_async__deps: ['$atomicWaitStates', '$liveAtomicWaitAsyncs', '$liveAtomicWaitAsyncCounter', '$polyfillWaitAsync', '$callUserCallback'], + emscripten_atomic_wait_async__deps: ['$polyfillWaitAsync'], emscripten_atomic_wait_async: (addr, val, asyncWaitFinished, userData, maxWaitMilliseconds) => { let wait = Atomics.waitAsync(HEAP32, {{{ getHeapOffset('addr', 'i32') }}}, val, maxWaitMilliseconds); if (!wait.async) return atomicWaitStates.indexOf(wait.value); @@ -116,7 +116,6 @@ addToLibrary({ return -counter; }, - emscripten_atomic_cancel_wait_async__deps: ['$liveAtomicWaitAsyncs'], emscripten_atomic_cancel_wait_async: (waitToken) => { #if ASSERTIONS if (waitToken == {{{ cDefs.ATOMICS_WAIT_NOT_EQUAL }}}) { @@ -143,7 +142,6 @@ addToLibrary({ return {{{ cDefs.EMSCRIPTEN_RESULT_INVALID_PARAM }}}; }, - emscripten_atomic_cancel_all_wait_asyncs__deps: ['$liveAtomicWaitAsyncs'], emscripten_atomic_cancel_all_wait_asyncs: () => { let waitAsyncs = Object.values(liveAtomicWaitAsyncs); for (var address of waitAsyncs) { @@ -153,7 +151,6 @@ addToLibrary({ return waitAsyncs.length; }, - emscripten_atomic_cancel_all_wait_asyncs_at_address__deps: ['$liveAtomicWaitAsyncs'], emscripten_atomic_cancel_all_wait_asyncs_at_address: (address) => { let numCancelled = 0; for (var [waitToken, waitAddress] of Object.entries(liveAtomicWaitAsyncs)) { diff --git a/src/lib/libautodebug.js b/src/lib/libautodebug.js index 435e8a24be7e6..ab69e0cd5feae 100644 --- a/src/lib/libautodebug.js +++ b/src/lib/libautodebug.js @@ -15,7 +15,6 @@ const LibraryAutodebug = { dbg('get_i32 ' + [loc, index, value]); return value; }, - $get_i64__deps: ['setTempRet0'], $get_i64: (loc, index, low, high) => { dbg('get_i64 ' + [loc, index, low, high]); _setTempRet0(high); @@ -49,7 +48,6 @@ const LibraryAutodebug = { dbg('set_i32 ' + [loc, index, value]); return value; }, - $set_i64__deps: ['setTempRet0'], $set_i64: (loc, index, low, high) => { dbg('set_i64 ' + [loc, index, low, high]); _setTempRet0(high); @@ -87,7 +85,6 @@ const LibraryAutodebug = { dbg('load_val_i32 ' + [loc, value]); return value; }, - $load_val_i64__deps: ['setTempRet0'], $load_val_i64: (loc, low, high) => { dbg('load_val_i64 ' + [loc, low, high]); _setTempRet0(high); @@ -109,7 +106,6 @@ const LibraryAutodebug = { dbg('store_val_i32 ' + [loc, value]); return value; }, - $store_val_i64__deps: ['setTempRet0'], $store_val_i64: (loc, low, high) => { dbg('store_val_i64 ' + [loc, low, high]); _setTempRet0(high); diff --git a/src/lib/libbootstrap.js b/src/lib/libbootstrap.js index ff7a35ef35676..8de3e9c4c1286 100644 --- a/src/lib/libbootstrap.js +++ b/src/lib/libbootstrap.js @@ -38,7 +38,6 @@ addToLibrary({ } }, - $exitJS__deps: ['$ExitStatus'], $exitJS: (code) => quit_(code, new ExitStatus(code)), $handleException: (e) => { diff --git a/src/lib/libbrowser.js b/src/lib/libbrowser.js index f71483067993c..b89a2160b0e83 100644 --- a/src/lib/libbrowser.js +++ b/src/lib/libbrowser.js @@ -7,14 +7,10 @@ // Utilities for browser environments var LibraryBrowser = { $workerHandles__internal: true, - $workerHandles__deps: ['$HandleAllocator'], $workerHandles: 'new HandleAllocator();', $Browser__deps: [ - '$getFullscreenElement', #if FILESYSTEM - '$preloadPlugins', - '$safeSetTimeout', #if MAIN_MODULE '$preloadedWasm', #endif @@ -510,7 +506,7 @@ var LibraryBrowser = { $setCanvasSize: 'Browser.setCanvasSize', $createContext: 'Browser.createContext', - emscripten_run_preload_plugins__deps: ['$PATH'], + emscripten_run_preload_plugins__deps: ['$Browser'], emscripten_run_preload_plugins__proxy: 'sync', emscripten_run_preload_plugins: (file, onload, onerror) => { {{{ runtimeKeepalivePush() }}} @@ -545,7 +541,6 @@ var LibraryBrowser = { $Browser_asyncPrepareDataCounter: 0, emscripten_run_preload_plugins_data__proxy: 'sync', - emscripten_run_preload_plugins_data__deps: ['$stringToNewUTF8', '$Browser_asyncPrepareDataCounter'], emscripten_run_preload_plugins_data: (data, size, suffix, arg, onload, onerror) => { {{{ runtimeKeepalivePush() }}} @@ -570,21 +565,12 @@ var LibraryBrowser = { }, // Callable from pthread, executes in pthread context. - emscripten_async_run_script__deps: ['emscripten_run_script', '$safeSetTimeout'], emscripten_async_run_script: (script, millis) => { // TODO: cache these to avoid generating garbage safeSetTimeout(() => _emscripten_run_script(script), millis); }, // TODO: currently not callable from a pthread, but immediately calls onerror() if not on main thread. - emscripten_async_load_script__deps: [ - '$UTF8ToString', -#if ASSERTIONS - '$runDependencies', -#endif - '$resolveRunDependencies', - '$callUserCallback', - ], emscripten_async_load_script: async (url, onload, onerror) => { url = UTF8ToString(url); #if PTHREADS @@ -634,6 +620,7 @@ var LibraryBrowser = { document.body.appendChild(script); }, + emscripten_get_window_title__deps: ['malloc'], emscripten_get_window_title__proxy: 'sync', emscripten_get_window_title: () => { const buflen = 256; @@ -682,7 +669,7 @@ var LibraryBrowser = { // To avoid creating worker parent->child chains, always proxies to execute on the main thread. emscripten_create_worker__proxy: 'sync', - emscripten_create_worker__deps: ['$UTF8ToString', 'realloc', '$workerHandles'], + emscripten_create_worker__deps: ['realloc'], emscripten_create_worker: (url) => { url = UTF8ToString(url); var worker = new Worker(url); @@ -719,7 +706,7 @@ var LibraryBrowser = { return id; }, - emscripten_destroy_worker__deps: ['free', '$workerHandles'], + emscripten_destroy_worker__deps: ['free'], emscripten_destroy_worker__proxy: 'sync', emscripten_destroy_worker: (id) => { var info = workerHandles.get(id); @@ -728,7 +715,6 @@ var LibraryBrowser = { workerHandles.free(id); }, - emscripten_call_worker__deps: ['$workerHandles'], emscripten_call_worker__proxy: 'sync', emscripten_call_worker: (id, funcName, data, size, callback, arg) => { funcName = UTF8ToString(funcName); @@ -792,7 +778,6 @@ var LibraryBrowser = { }, #endif - emscripten_get_worker_queue_size__deps: ['$workerHandles'], emscripten_get_worker_queue_size__proxy: 'sync', emscripten_get_worker_queue_size: (id) => { if (!workerHandles.has(id)) return -1; @@ -800,12 +785,11 @@ var LibraryBrowser = { return info.awaited; }, - emscripten_get_preloaded_image_data__deps: ['$getPreloadedImageData', '$UTF8ToString'], emscripten_get_preloaded_image_data__proxy: 'sync', emscripten_get_preloaded_image_data: (path, w, h) => getPreloadedImageData(UTF8ToString(path), w, h), $getPreloadedImageData__internal: true, - $getPreloadedImageData__deps: ['$PATH_FS', 'malloc'], + $getPreloadedImageData__deps: ['malloc'], $getPreloadedImageData: (path, w, h) => { path = PATH_FS.resolve(path); @@ -824,7 +808,7 @@ var LibraryBrowser = { }, #if !WASMFS // WasmFS implements this in wasm - emscripten_get_preloaded_image_data_from_FILE__deps: ['$getPreloadedImageData', 'fileno'], + emscripten_get_preloaded_image_data_from_FILE__deps: ['fileno'], emscripten_get_preloaded_image_data_from_FILE__proxy: 'sync', emscripten_get_preloaded_image_data_from_FILE: (file, w, h) => { var fd = _fileno(file); @@ -838,6 +822,4 @@ var LibraryBrowser = { #endif }; -autoAddDeps(LibraryBrowser, '$Browser'); - addToLibrary(LibraryBrowser); diff --git a/src/lib/libc_preprocessor.js b/src/lib/libc_preprocessor.js index 8e7204d9bb66a..f0bcc7900e58b 100644 --- a/src/lib/libc_preprocessor.js +++ b/src/lib/libc_preprocessor.js @@ -35,7 +35,6 @@ addToLibrary({ // Runs C preprocessor algorithm on the given string 'code'. // Supported preprocessor directives: #if, #ifdef, #ifndef, #else, #elif, #endif, #define and #undef. // predefs: Specifies a dictionary of { 'key1': function(arg0, arg1) {...}, 'key2': ... } of predefined preprocessing variables - $preprocess_c_code__deps: ['$find_closing_parens_index'], $preprocess_c_code: function(code, defs = {}) { var i = 0, // iterator over the input string len = code.length, // cache input length diff --git a/src/lib/libccall.js b/src/lib/libccall.js index 492f8a74343ee..ec9c7d0fb0bf5 100644 --- a/src/lib/libccall.js +++ b/src/lib/libccall.js @@ -19,7 +19,6 @@ addToLibrary({ }, // C calling interface. - $ccall__deps: ['$getCFunc', '$writeArrayToMemory', '$stringToUTF8OnStack', '$stackSave', '$stackRestore', '$stackAlloc'], $ccall__docs: ` /** * @param {string|null=} returnType @@ -136,11 +135,6 @@ addToLibrary({ * @param {Array=} argTypes * @param {Object=} opts */`, - $cwrap__deps: [ '$ccall', -#if !ASSERTIONS - '$getCFunc', -#endif - ], $cwrap: (ident, returnType, argTypes, opts) => { #if !ASSERTIONS // When the function takes numbers and returns a number, we can just return diff --git a/src/lib/libcore.js b/src/lib/libcore.js index 73070bb830b2d..f40c8af242556 100644 --- a/src/lib/libcore.js +++ b/src/lib/libcore.js @@ -105,18 +105,6 @@ addToLibrary({ #if !MINIMAL_RUNTIME $exitJS__docs: '/** @param {boolean|number=} implicit */', - $exitJS__deps: [ - 'proc_exit', -#if ASSERTIONS || EXIT_RUNTIME - '$keepRuntimeAlive', -#endif -#if PTHREADS - '$exitOnMainThread', -#endif -#if PTHREADS_DEBUG || ASSERTIONS - '$runtimeKeepaliveCounter', -#endif - ], $exitJS: (status, implicit) => { EXITSTATUS = status; @@ -174,7 +162,6 @@ addToLibrary({ // Returns a pointer ('p'), which means an i32 on wasm32 and an i64 wasm64 // We have a separate JS version `getHeapMax()` which can be called directly // avoiding any wrapper added for wasm64. - emscripten_get_heap_max__deps: ['$getHeapMax'], emscripten_get_heap_max: () => getHeapMax(), $getHeapMax: () => @@ -235,19 +222,6 @@ addToLibrary({ // anyhow) }, - emscripten_resize_heap__deps: [ -#if ABORTING_MALLOC - '$abortOnCannotGrowMemory', -#endif -#if ALLOW_MEMORY_GROWTH -#if ASSERTIONS == 2 - 'emscripten_get_now', -#endif - '$getHeapMax', - '$alignMemory', - '$growMemory', -#endif - ], emscripten_resize_heap: 'ip', emscripten_resize_heap: (requestedSize) => { var oldSize = HEAPU8.length; @@ -442,9 +416,6 @@ addToLibrary({ #if STACK_OVERFLOW_CHECK >= 2 // Set stack limits used by binaryen's `StackCheck` pass. -#if MAIN_MODULE - $setStackLimits__deps: ['$setDylinkStackLimits'], -#endif $setStackLimits: () => { var stackLow = _emscripten_stack_get_base(); var stackHigh = _emscripten_stack_get_end(); @@ -461,7 +432,6 @@ addToLibrary({ }, #endif - $withStackSave__deps: ['$stackSave', '$stackRestore'], $withStackSave: (f) => { var stack = stackSave(); var ret = f(); @@ -648,7 +618,7 @@ addToLibrary({ #if PURE_WASI $strError: (errno) => errno + '', #else - $strError__deps: ['strerror', '$UTF8ToString'], + $strError__deps: ['strerror'], $strError: (errno) => UTF8ToString(_strerror(errno)), #endif @@ -724,7 +694,7 @@ addToLibrary({ (parts[7] << 16) | parts[6] ]; }, - $inetNtop6__deps: ['$inetNtop4', 'ntohs'], + $inetNtop6__deps: ['ntohs'], $inetNtop6: (ints) => { // ref: http://www.ietf.org/rfc/rfc2373.txt - section 2.5.4 // Format for IPv4 compatible and mapped 128-bit IPv6 Addresses @@ -825,10 +795,8 @@ addToLibrary({ return str; }, - $readSockaddr__deps: ['$inetNtop4', '$inetNtop6', 'ntohs' -#if NODERAWSOCKETS - , '$UTF8ToString' -#endif + $readSockaddr__deps: [ + 'ntohs' ], $readSockaddr: (sa, salen) => { // family / port offsets are common to both sockaddr_in and sockaddr_in6 @@ -883,12 +851,8 @@ addToLibrary({ return { family: family, addr: addr, port: port }; }, $writeSockaddr__docs: '/** @param {number=} addrlen */', - $writeSockaddr__deps: ['$inetPton4', '$inetPton6', '$zeroMemory', 'htons', -#if NODERAWSOCKETS - '$lengthBytesUTF8', '$stringToUTF8', -#else - '$DNS', -#endif + $writeSockaddr__deps: [ + 'htons', ], $writeSockaddr: (sa, family, addr, port, addrlen) => { switch (family) { @@ -954,7 +918,6 @@ addToLibrary({ // we're generating fake IP addresses with lookup_name that we can // resolve later on with lookup_addr. // We do the aliasing in 172.29.*.*, giving us 65536 possibilities. - $DNS__deps: ['$inetPton4', '$inetPton6'], $DNS: { address_map: { id: 1, @@ -1002,16 +965,7 @@ addToLibrary({ } }, - getaddrinfo__deps: ['$inetPton4', '$inetNtop4', '$inetPton6', '$inetNtop6', '$writeSockaddr', 'malloc', 'htonl', -#if NODERAWSOCKETS - '$nodeSockHelpers', -#else - '$DNS', -#endif -#if NODERAWSOCKETS && ASYNCIFY - '$Asyncify', -#endif - ], + getaddrinfo__deps: ['malloc', 'htonl'], getaddrinfo__proxy: 'sync', #if NODERAWSOCKETS && (PTHREADS || ASYNCIFY) // Returns an EAI_* code synchronously, or - for a hostname needing a real @@ -1231,16 +1185,6 @@ addToLibrary({ #endif }, - getnameinfo__deps: ['$readSockaddr', '$stringToUTF8', -#if NODERAWSOCKETS - '$nodeSockHelpers', -#else - '$DNS', -#endif -#if NODERAWSOCKETS && ASYNCIFY - '$Asyncify', -#endif - ], getnameinfo__proxy: 'sync', #if NODERAWSOCKETS && (PTHREADS || ASYNCIFY) // As getaddrinfo: a reverse lookup node:dns has to answer is a Promise, @@ -1323,7 +1267,7 @@ addToLibrary({ list: [], map: {} }, - setprotoent__deps: ['$Protocols', '$stringToAscii', 'malloc'], + setprotoent__deps: ['malloc'], setprotoent: (stayopen) => { // void setprotoent(int stayopen); @@ -1375,7 +1319,6 @@ addToLibrary({ // We're not using a real protocol database so we don't do a real close. }, - getprotoent__deps: ['setprotoent', '$Protocols'], getprotoent: (number) => { // struct protoent *getprotoent(void); // reads the next entry from the protocols 'database' or return NULL if 'eof' @@ -1386,7 +1329,6 @@ addToLibrary({ return result; }, - getprotobyname__deps: ['setprotoent', '$Protocols'], getprotobyname: (name) => { // struct protoent *getprotobyname(const char *); name = UTF8ToString(name); @@ -1395,7 +1337,6 @@ addToLibrary({ return result; }, - getprotobynumber__deps: ['setprotoent', '$Protocols'], getprotobynumber: (number) => { // struct protoent *getprotobynumber(int proto); _setprotoent(true); @@ -1408,7 +1349,6 @@ addToLibrary({ $timers: {}, $clearTimers__internal: true, - $clearTimers__deps: ['$timers'], $clearTimers: () => { for (var t of Object.values(timers)) { clearTimeout(t.id); @@ -1420,7 +1360,7 @@ addToLibrary({ // or when the main thread is busy waiting calling _emscripten_yield. _setitimer_js__postset: () => addAtExit('clearTimers();'), _setitimer_js__proxy: 'sync', - _setitimer_js__deps: ['$timers', '$clearTimers', '$callUserCallback', '_emscripten_timeout', 'emscripten_get_now'], + _setitimer_js__deps: ['$clearTimers', '_emscripten_timeout'], _setitimer_js: (which, timeout_ms) => { #if RUNTIME_DEBUG dbg(`setitimer_js ${which} timeout=${timeout_ms}`); @@ -1469,7 +1409,7 @@ addToLibrary({ // Mark as `noleakcheck` otherwise lsan will report the last returned string // as a leak. emscripten_run_script_string__noleakcheck: true, - emscripten_run_script_string__deps: ['$lengthBytesUTF8', '$stringToUTF8', 'realloc'], + emscripten_run_script_string__deps: ['realloc'], emscripten_run_script_string: (ptr) => { {{{ makeEval('var s = eval(UTF8ToString(ptr));') }}} if (s == null) { @@ -1547,7 +1487,6 @@ addToLibrary({ #endif _emscripten_get_now_is_monotonic__internal: true, - _emscripten_get_now_is_monotonic__deps: ['$nowIsMonotonic'], _emscripten_get_now_is_monotonic: () => nowIsMonotonic, $warnOnce: (text) => { @@ -1561,7 +1500,6 @@ addToLibrary({ } }, - _emscripten_log_formatted__deps: ['$getCallstack'], _emscripten_log_formatted: (flags, str) => { str = UTF8ToString(str); @@ -1593,7 +1531,6 @@ addToLibrary({ // using builtin_malloc to avoid LSan reporting these as leaks. #if RETAIN_COMPILER_SETTINGS emscripten_get_compiler_setting__noleakcheck: true, - emscripten_get_compiler_setting__deps: ['$stringToNewUTF8'], emscripten_get_compiler_setting: (name) => { name = UTF8ToString(name); @@ -1613,7 +1550,6 @@ addToLibrary({ emscripten_debugger: () => { debugger }, - emscripten_print_double__deps: ['$stringToUTF8', '$lengthBytesUTF8'], emscripten_print_double: (x, to, max) => { var str = x + ''; if (to) return stringToUTF8(str, to, max); @@ -1644,13 +1580,11 @@ addToLibrary({ return ENVIRONMENT_IS_NODE && process.stderr.isTTY; }, - _emscripten_sanitizer_get_option__deps: ['$stringToNewUTF8', '$UTF8ToString'], _emscripten_sanitizer_get_option__sig: 'pp', _emscripten_sanitizer_get_option: (name) => stringToNewUTF8(Module[UTF8ToString(name)] ?? ''), #endif $readEmAsmArgsArray: [], - $readEmAsmArgs__deps: ['$readEmAsmArgsArray'], $readEmAsmArgs: (sigPtr, buf) => { #if ASSERTIONS // Nobody should have mutated _readEmAsmArgsArray underneath us to be something else than an array. @@ -1695,7 +1629,6 @@ addToLibrary({ }, #if HAVE_EM_ASM - $runEmAsmFunction__deps: ['$readEmAsmArgs'], $runEmAsmFunction: (code, sigPtr, argbuf) => { var args = readEmAsmArgs(sigPtr, argbuf); #if ASSERTIONS @@ -1704,25 +1637,17 @@ addToLibrary({ return ASM_CONSTS[code](...args); }, - emscripten_asm_const_int__deps: ['$runEmAsmFunction'], emscripten_asm_const_int: (code, sigPtr, argbuf) => { return runEmAsmFunction(code, sigPtr, argbuf); }, - emscripten_asm_const_double__deps: ['$runEmAsmFunction'], emscripten_asm_const_double: (code, sigPtr, argbuf) => { return runEmAsmFunction(code, sigPtr, argbuf); }, - emscripten_asm_const_ptr__deps: ['$runEmAsmFunction'], emscripten_asm_const_ptr: (code, sigPtr, argbuf) => { return runEmAsmFunction(code, sigPtr, argbuf); }, - $runMainThreadEmAsm__deps: ['$readEmAsmArgs', -#if PTHREADS - '$proxyToMainThread' -#endif - ], $runMainThreadEmAsm: (emAsmAddr, sigPtr, argbuf, sync) => { var args = readEmAsmArgs(sigPtr, argbuf); #if PTHREADS @@ -1744,14 +1669,11 @@ addToLibrary({ #endif return ASM_CONSTS[emAsmAddr](...args); }, - emscripten_asm_const_int_sync_on_main_thread__deps: ['$runMainThreadEmAsm'], emscripten_asm_const_int_sync_on_main_thread: (emAsmAddr, sigPtr, argbuf) => runMainThreadEmAsm(emAsmAddr, sigPtr, argbuf, 1), - emscripten_asm_const_ptr_sync_on_main_thread__deps: ['$runMainThreadEmAsm'], emscripten_asm_const_ptr_sync_on_main_thread: (emAsmAddr, sigPtr, argbuf) => runMainThreadEmAsm(emAsmAddr, sigPtr, argbuf, 1), emscripten_asm_const_double_sync_on_main_thread: 'emscripten_asm_const_int_sync_on_main_thread', - emscripten_asm_const_async_on_main_thread__deps: ['$runMainThreadEmAsm'], emscripten_asm_const_async_on_main_thread: (emAsmAddr, sigPtr, argbuf) => runMainThreadEmAsm(emAsmAddr, sigPtr, argbuf, 0), #endif @@ -1760,11 +1682,6 @@ addToLibrary({ // created during linking. See `create_receiving` in `emscripten.py`. // When DECLARE_ASM_MODULE_EXPORTS=0 is set, `assignWasmExports` is instead // defined here as a normal JS library function. - $assignWasmExports__deps: ['$asmjsMangle', -#if DYNCALLS || !WASM_BIGINT - , '$dynCalls' -#endif - ], $assignWasmExports: (wasmExports) => { for (var [name, exportedSymbol] of Object.entries(wasmExports)) { name = asmjsMangle(name); @@ -1805,7 +1722,7 @@ addToLibrary({ #if STACK_OVERFLOW_CHECK // Used by wasm-emscripten-finalize to implement STACK_OVERFLOW_CHECK - __handle_stack_overflow__deps: ['emscripten_stack_get_base', 'emscripten_stack_get_end', '$ptrToString'], + __handle_stack_overflow__deps: ['emscripten_stack_get_base', 'emscripten_stack_get_end'], __handle_stack_overflow: (requested) => { var base = _emscripten_stack_get_base(); var end = _emscripten_stack_get_end(); @@ -1845,7 +1762,6 @@ addToLibrary({ #if DYNCALLS || !WASM_BIGINT $dynCalls__internal: true, $dynCalls: {}, - $dynCallLegacy__deps: ['$dynCalls'], $dynCallLegacy: (sig, ptr, args) => { sig = sig.replace(/p/g, {{{ MEMORY64 ? "'j'" : "'i'" }}}) #if ASSERTIONS @@ -1867,20 +1783,11 @@ addToLibrary({ var f = dynCalls[sig]; return f(ptr, ...args); }, - $dynCall__deps: [ -#if DYNCALLS || !WASM_BIGINT - '$dynCallLegacy', -#endif -#if !DYNCALLS - '$getWasmTableEntry', -#endif - ], #endif // Used in library code to get JS function from wasm function pointer. // All callers should use direct table access where possible and only fall // back to this function if needed. - $getDynCaller__deps: ['$dynCall'], $getDynCaller: (sig, ptr, promising = false) => { #if ASSERTIONS && !DYNCALLS assert(sig.includes('j') || sig.includes('p'), 'getDynCaller should only be called with i64 sigs') @@ -1960,7 +1867,6 @@ addToLibrary({ $wasmTableMirror: [], $setWasmTableEntry__internal: true, - $setWasmTableEntry__deps: ['$wasmTableMirror', '$wasmTable'], $setWasmTableEntry: (idx, func) => { /** @suppress {checkTypes} */ wasmTable.set({{{ toIndexType('idx') }}}, func); @@ -1972,7 +1878,6 @@ addToLibrary({ }, $getWasmTableEntry__internal: true, - $getWasmTableEntry__deps: ['$wasmTableMirror', '$wasmTable'], $getWasmTableEntry: (funcPtr) => { #if MEMORY64 // Function pointers should show up as numbers, even under wasm64, but @@ -2000,11 +1905,9 @@ addToLibrary({ #else $setWasmTableEntry__docs: '/** @suppress{checkTypes} */', - $setWasmTableEntry__deps: ['$wasmTable'], $setWasmTableEntry: (idx, func) => wasmTable.set({{{ toIndexType('idx') }}}, func), $getWasmTableEntry__docs: '/** @suppress{checkTypes} */', - $getWasmTableEntry__deps: ['$wasmTable'], $getWasmTableEntry: (funcPtr) => { // In -Os and -Oz builds, do not implement a JS side wasm table mirror for small // code size, but directly access wasmTable, which is a bit slower as uncached. @@ -2018,9 +1921,6 @@ addToLibrary({ throw 'unwind'; }, -#if !MINIMAL_RUNTIME - _emscripten_runtime_keepalive_clear__deps: ['$runtimeKeepaliveCounter'], -#endif _emscripten_runtime_keepalive_clear: () => { #if isSymbolNeeded('$noExitRuntime') noExitRuntime = false; @@ -2030,11 +1930,6 @@ addToLibrary({ #endif }, - emscripten_force_exit__deps: ['exit', '_emscripten_runtime_keepalive_clear', -#if !EXIT_RUNTIME && ASSERTIONS - '$warnOnce', -#endif - ], emscripten_force_exit__proxy: 'sync', emscripten_force_exit: (status) => { #if RUNTIME_DEBUG @@ -2064,7 +1959,6 @@ addToLibrary({ // Use program_invocation_short_name and program_invocation_name in compiled // programs. This function is for implementing them. - _emscripten_get_progname__deps: ['$getExecutableName', '$stringToUTF8'], _emscripten_get_progname: (str, len) => stringToUTF8(getExecutableName(), str, len), // These single-line arrow functions use curly braces since otherwise closure @@ -2080,12 +1974,9 @@ addToLibrary({ emscripten_throw_string: (str) => { throw UTF8ToString(str); }, #if !MINIMAL_RUNTIME - $handleException__deps: [ - '$ExitStatus', #if STACK_OVERFLOW_CHECK - 'emscripten_stack_get_current', + $handleException__deps: ['emscripten_stack_get_current'], #endif - ], $handleException: (e) => { // Certain exception types we do not treat as errors since they are used for // internal control flow. @@ -2119,7 +2010,6 @@ addToLibrary({ // If the `noExitRuntime` symbol is included in the build then // keepRuntimeAlive is always conditional since its state can change // at runtime. - $keepRuntimeAlive__deps: ['$runtimeKeepaliveCounter'], $keepRuntimeAlive: () => noExitRuntime || runtimeKeepaliveCounter > 0, #elif !EXIT_RUNTIME && !PTHREADS // When `noExitRuntime` is not included and EXIT_RUNTIME=0 then we know the @@ -2128,12 +2018,10 @@ addToLibrary({ // have to track `runtimeKeepaliveCounter` in that case. $keepRuntimeAlive: () => true, #else - $keepRuntimeAlive__deps: ['$runtimeKeepaliveCounter'], $keepRuntimeAlive: () => runtimeKeepaliveCounter > 0, #endif // Callable in pthread without __proxy needed. - $runtimeKeepalivePush__deps: ['$runtimeKeepaliveCounter'], $runtimeKeepalivePush__sig: 'v', $runtimeKeepalivePush: () => { runtimeKeepaliveCounter += 1; @@ -2142,7 +2030,6 @@ addToLibrary({ #endif }, - $runtimeKeepalivePop__deps: ['$runtimeKeepaliveCounter'], $runtimeKeepalivePop__sig: 'v', $runtimeKeepalivePop: () => { #if ASSERTIONS @@ -2165,7 +2052,6 @@ addToLibrary({ // The job of this wrapper is the handle emscripten-specific exceptions such // as ExitStatus and 'unwind' and prevent these from escaping to the top // level. - $callUserCallback__deps: ['$handleException', '$maybeExit'], $callUserCallback: (func, ...args) => { #if EXIT_RUNTIME if (runtimeExited || ABORT) { @@ -2186,12 +2072,9 @@ addToLibrary({ } }, - $maybeExit__deps: ['exit', '$handleException', '$keepRuntimeAlive', + $maybeExit__deps: [ #if PTHREADS '_emscripten_thread_exit', -#endif -#if RUNTIME_DEBUG >= 2 - '$runtimeKeepaliveCounter', #endif ], $maybeExit: () => { @@ -2268,9 +2151,6 @@ addToLibrary({ // Allocate memory for an mmap operation. This allocates space of the right // page-aligned size, and clears the allocated space. -#if hasExportedSymbol('emscripten_builtin_memalign') - $mmapAlloc__deps: ['$zeroMemory', '$alignMemory'], -#endif $mmapAlloc: (size) => { #if hasExportedSymbol('emscripten_builtin_memalign') size = alignMemory(size, {{{ WASM_PAGE_SIZE }}}); @@ -2284,7 +2164,6 @@ addToLibrary({ #endif }, - _emscripten_fs_load_embedded_files__deps: ['$FS', '$PATH'], _emscripten_fs_load_embedded_files: (ptr) => { #if RUNTIME_DEBUG dbg('preloading data files'); @@ -2380,7 +2259,6 @@ addToLibrary({ $dependenciesPromiseResolve__internal: true, $dependenciesPromiseResolve: null, $resolveRunDependencies__internal: true, - $resolveRunDependencies__deps: ['$dependenciesPromise'], $resolveRunDependencies: async () => dependenciesPromise, #if ASSERTIONS $runDependencyTracking__internal: true, @@ -2389,11 +2267,8 @@ addToLibrary({ $runDependencyWatcher: null, #endif - $addRunDependency__deps: ['$runDependencies', '$removeRunDependency', '$dependenciesPromise', '$dependenciesPromiseResolve', -#if ASSERTIONS - '$runDependencyTracking', - '$runDependencyWatcher', -#endif + $addRunDependency__deps: [ + '$removeRunDependency', ], $addRunDependency: (id) => { if (!runDependencies) { @@ -2441,12 +2316,6 @@ addToLibrary({ #endif }, - $removeRunDependency__deps: ['$runDependencies', '$dependenciesPromiseResolve', -#if ASSERTIONS - '$runDependencyTracking', - '$runDependencyWatcher', -#endif - ], $removeRunDependency: (id) => { runDependencies--; @@ -2488,7 +2357,6 @@ addToLibrary({ $onPreRuns__postset: () => { ATPRERUNS.unshift('callRuntimeCallbacks(onPreRuns);'); }, - $addOnPreRun__deps: ['$onPreRuns'], $addOnPreRun: (cb) => onPreRuns.push(cb), // See ATINITS in parseTools.mjs for more information. $onInits: [], @@ -2497,7 +2365,6 @@ addToLibrary({ $onInits__postset: () => { ATINITS.unshift('callRuntimeCallbacks(onInits);'); }, - $addOnInit__deps: ['$onInits'], $addOnInit: (cb) => onInits.push(cb), // See ATPOSTCTORS in parseTools.mjs for more information. $onPostCtors: [], @@ -2506,7 +2373,6 @@ addToLibrary({ $onPostCtors__postset: () => { ATPOSTCTORS.unshift('callRuntimeCallbacks(onPostCtors);'); }, - $addOnPostCtor__deps: ['$onPostCtors'], $addOnPostCtor: (cb) => { #if ASSERTIONS assert(!runtimeInitialized, 'addOnPostCtor called too late: ctors have already run'); @@ -2520,7 +2386,6 @@ addToLibrary({ $onMains__postset: () => { ATMAINS.unshift('callRuntimeCallbacks(onMains);'); }, - $addOnPreMain__deps: ['$onMains'], $addOnPreMain: (cb) => onMains.push(cb), // See ATEXITS in parseTools.mjs for more information. $onExits: [], @@ -2529,7 +2394,6 @@ addToLibrary({ $onExits__postset: () => { ATEXITS.unshift('callRuntimeCallbacks(onExits);'); }, - $addOnExit__deps: ['$onExits'], $addOnExit: (cb) => onExits.push(cb), // See ATPOSTRUNS in parseTools.mjs for more information. $onPostRuns: [], @@ -2538,7 +2402,6 @@ addToLibrary({ $onPostRuns__postset: () => { ATPOSTRUNS.unshift('callRuntimeCallbacks(onPostRuns);'); }, - $addOnPostRun__deps: ['$onPostRuns'], $addOnPostRun: (cb) => onPostRuns.push(cb), // We used to define these globals unconditionally in support code. @@ -2622,14 +2485,11 @@ function wrapSyscallFunction(x, library, isWasi) { var canThrow = false; #endif - library[x + '__deps'] ??= []; - #if PURE_WASI && GROWABLE_ARRAYBUFFERS != 2 // In PURE_WASI mode we can't assume the wasm binary was built by emscripten // and politely notify us on memory growth. Instead we have to check for // possible memory growth on each syscall. var pre = '\nif (!HEAPU8.byteLength) _emscripten_notify_memory_growth(0);\n' - library[x + '__deps'].push('emscripten_notify_memory_growth'); #else var pre = ''; #endif @@ -2655,8 +2515,6 @@ function wrapSyscallFunction(x, library, isWasi) { post += '}\n'; post += 'dbg(`syscall return: ${ret}`);\n'; post += 'return ret;\n'; - // Emit dependency to strError() since we added use of it above. - library[x + '__deps'].push('$strError'); #endif delete library[x + '__nothrow']; var handler = ''; @@ -2686,10 +2544,6 @@ function wrapSyscallFunction(x, library, isWasi) { } library[x] = t; - // Automatically add dependency on `$SYSCALLS` - if (!WASMFS && t.includes('SYSCALLS.')) { - library[x + '__deps'].push('$SYSCALLS'); - } #if PTHREADS // Most syscalls need to happen on the main JS thread (e.g. because the // filesystem is in JS and on that thread). Proxy synchronously to there. diff --git a/src/lib/libdylink.js b/src/lib/libdylink.js index f4fe51f2fc3d9..72e40e8ba3495 100644 --- a/src/lib/libdylink.js +++ b/src/lib/libdylink.js @@ -16,7 +16,6 @@ const UNDEFINED_ADDR = to64(-1); var LibraryDylink = { #if FILESYSTEM - $registerWasmPlugin__deps: ['$preloadPlugins', '$loadWebAssemblyModule', '$preloadedWasm'], $registerWasmPlugin: () => { // Use string keys here for public methods to avoid minification since the // plugin consumer also uses string keys. @@ -46,7 +45,6 @@ var LibraryDylink = { `, $preloadedWasm: {}, - $replaceORIGIN__deps: ['$PATH'], $replaceORIGIN: (parentLibName, rpath) => { if (rpath.startsWith('$ORIGIN')) { // TODO: what to do if we only know the relative path of the file? It will return '.' here. @@ -80,7 +78,7 @@ var LibraryDylink = { // generation time. #if !DISABLE_EXCEPTION_CATCHING || SUPPORT_LONGJMP == 'emscripten' $createInvokeFunction__internal: true, - $createInvokeFunction__deps: ['$dynCall', 'setThrew', '$stackSave', '$stackRestore'], + $createInvokeFunction__deps: ['setThrew'], $createInvokeFunction: (sig) => (ptr, ...args) => { var sp = stackSave(); try { @@ -108,12 +106,6 @@ var LibraryDylink = { // the canonical name of the symbol (in some cases modifying the symbol as // part of the loop process, so that actual symbol looked up has a different // name). - $resolveGlobalSymbol__deps: ['$isSymbolDefined', -#if !DISABLE_EXCEPTION_CATCHING || SUPPORT_LONGJMP == 'emscripten' - '$createNamedFunction', - '$createInvokeFunction', -#endif - ], $resolveGlobalSymbol__internal: true, $resolveGlobalSymbol: (symName, direct = false) => { var sym; @@ -159,7 +151,6 @@ var LibraryDylink = { // handler. We abuse the `target` of the Proxy in order to pass the set of // weak imports to the handler. $GOTHandler__internal: true, - $GOTHandler__deps: ['$GOT'], $GOTHandler: { get(weakImports, symName) { var rtn = GOT[symName]; @@ -211,7 +202,6 @@ var LibraryDylink = { }, $updateGOT__internal: true, - $updateGOT__deps: ['$GOT', '$isInternalSym', '$addFunction'], $updateGOT__docs: '/** @param {boolean=} replace */', $updateGOT: (exports, replace) => { #if DYLINK_DEBUG @@ -279,7 +269,6 @@ var LibraryDylink = { // Applies relocations to exported things. $relocateExports__internal: true, - $relocateExports__deps: ['$isImmutableGlobal'], $relocateExports: (exports, memoryBase = 0) => { #if DYLINK_DEBUG dbg(`relocateExports memoryBase=${memoryBase} count=${Object.keys(exports).length}`); @@ -310,7 +299,6 @@ var LibraryDylink = { }, $reportUndefinedSymbols__internal: true, - $reportUndefinedSymbols__deps: ['$GOT', '$resolveGlobalSymbol', '$addFunction'], $reportUndefinedSymbols: () => { #if DYLINK_DEBUG dbg('reportUndefinedSymbols'); @@ -356,7 +344,6 @@ var LibraryDylink = { }, // dynamic linker/loader (a-la ld.so on ELF systems) - $LDSO__deps: ['$newDSO'], $LDSO: { // name -> dso [refcount, name, module, global]; Used by dlopen loadedLibsByName: {}, @@ -373,7 +360,7 @@ var LibraryDylink = { }, $dlSetError__internal: true, - $dlSetError__deps: ['__dl_seterr', '$stringToUTF8OnStack', '$stackSave', '$stackRestore'], + $dlSetError__deps: ['__dl_seterr'], $dlSetError: (msg) => { #if DYLINK_DEBUG dbg('dlSetError:', msg); @@ -397,7 +384,7 @@ var LibraryDylink = { // `link.py` rather than `__deps` because `wasm-ld` processes stub library // dependencies before synthesizing optional symbols like `__heap_base`. // See https://github.com/llvm/llvm-project/issues/180632 - $getMemory__deps: ['emscripten_get_sbrk_ptr', '$alignMemory', 'calloc'], + $getMemory__deps: ['emscripten_get_sbrk_ptr', 'calloc'], $getMemory: (size) => { // After the runtime is initialized, we must only use sbrk() normally. #if DYLINK_DEBUG @@ -436,7 +423,6 @@ var LibraryDylink = { // returns the side module metadata as an object // { memorySize, memoryAlign, tableSize, tableAlign, neededDynlibs} - $getDylinkMetadata__deps: ['$UTF8ArrayToString'], $getDylinkMetadata__internal: true, $getDylinkMetadata: (binary) => { var offset = 0; @@ -579,7 +565,6 @@ var LibraryDylink = { #endif // Module.symbols <- libModule.symbols (flags.global handler) - $mergeLibSymbols__deps: ['$isSymbolDefined'], $mergeLibSymbols: (exports, libName) => { #if DYNCALLS || !WASM_BIGINT registerDynCallSymbols(exports); @@ -630,7 +615,6 @@ var LibraryDylink = { }, #if DYLINK_DEBUG - $dumpTable__deps: ['$wasmTable'], $dumpTable: () => { var len = wasmTable.length; for (var i = {{{ toIndexType(0) }}} ; i < len; i++) { @@ -684,14 +668,6 @@ var LibraryDylink = { * @param {Object=} localScope * @param {number=} handle */`, - $loadWebAssemblyModule__deps: [ - '$loadDynamicLibrary', - '$getDylinkMetadata', - '$instantiateModule', -#if FILESYSTEM - '$findLibraryFS', -#endif - ], $loadWebAssemblyModule: (binary, flags, libName, localScope, handle) => { #if DYLINK_DEBUG dbg('loadWebAssemblyModule:', libName, handle); @@ -726,14 +702,6 @@ var LibraryDylink = { // Instantiates a side module after all its dependencies have been loaded. // Can be called both sync and async. $instantiateModule__internal: true, - $instantiateModule__deps: [ - '$getMemory', '$updateGOT', - '$relocateExports', '$resolveGlobalSymbol', '$GOTHandler', - '$reportUndefinedSymbols', - '$alignMemory', '$updateTableMap', - '$wasmTable', '$addOnPostCtor', - '$addEmAsm', '$addEmJs', - ], $instantiateModule: (binary, metadata, flags, libName, localScope, handle) => { #if ASSERTIONS var originalTable = wasmTable; @@ -1004,7 +972,6 @@ var LibraryDylink = { }, #endif - $newDSO__deps: ['$LDSO'], $newDSO: (name, handle, syms) => { var dso = { refcount: Infinity, @@ -1021,13 +988,7 @@ var LibraryDylink = { #if FILESYSTEM $findLibraryFS__deps: [ - '$replaceORIGIN', '_emscripten_find_dylib', - '$withStackSave', - '$stackAlloc', - '$stringToUTF8OnStack', - '$FS', - '$PATH', #if WASMFS '_wasmfs_identify', '_wasmfs_read_file', @@ -1087,18 +1048,6 @@ var LibraryDylink = { // If a library was already loaded, it is not loaded a second time. However // flags.global and flags.nodelete are handled every time a load request is made. // Once a library becomes 'global' or 'nodelete', it cannot be removed or unloaded. - $loadDynamicLibrary__deps: ['$LDSO', '$loadWebAssemblyModule', - '$mergeLibSymbols', '$newDSO', - '$asyncLoad', -#if FILESYSTEM - '$FS', - '$preloadedWasm', - '$findLibraryFS', -#endif -#if DYNCALLS || !WASM_BIGINT - '$registerDynCallSymbols', -#endif - ], $loadDynamicLibrary__docs: ` /** * @param {number=} handle @@ -1244,7 +1193,6 @@ var LibraryDylink = { }, $loadDylibs__internal: true, - $loadDylibs__deps: ['$loadDynamicLibrary', '$reportUndefinedSymbols'], $loadDylibs: async () => { if (!dynamicLibraries.length) { #if DYLINK_DEBUG @@ -1271,7 +1219,6 @@ var LibraryDylink = { }, // void* dlopen(const char* filename, int flags); - $dlopenInternal__deps: ['$dlSetError', '$PATH'], $dlopenInternal: (handle, jsflags) => { // void *dlopen(const char *file, int mode); // http://pubs.opengroup.org/onlinepubs/009695399/functions/dlopen.html @@ -1308,7 +1255,6 @@ var LibraryDylink = { } }, - _dlopen_js__deps: ['$dlopenInternal'], _dlopen_js__async: 'auto', _dlopen_js: (handle) => #if ASYNCIFY @@ -1318,7 +1264,6 @@ var LibraryDylink = { #endif // Async version of dlopen. - _emscripten_dlopen_js__deps: ['$dlopenInternal', '$callUserCallback', '$dlSetError'], _emscripten_dlopen_js: (handle, onsuccess, onerror, user_data) => { /** @param {Object=} e */ function errorCallback(e) { @@ -1357,7 +1302,6 @@ var LibraryDylink = { }, // void* dlsym(void* handle, const char* symbol); - _dlsym_js__deps: ['$dlSetError', '$getFunctionAddress', '$addFunction'], _dlsym_js: (handle, symbol, symbolIndex) => { // void *dlsym(void *restrict handle, const char *restrict name); // http://pubs.opengroup.org/onlinepubs/009695399/functions/dlsym.html diff --git a/src/lib/libegl.js b/src/lib/libegl.js index 17c0b9a819864..d44692f1b49c2 100644 --- a/src/lib/libegl.js +++ b/src/lib/libegl.js @@ -311,7 +311,6 @@ var LibraryEGL = { return 1; /* Magic ID for Emscripten 'default surface' */ }, - eglCreateContext__deps: ['$GL'], // EGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list); eglCreateContext__proxy: 'sync', @@ -375,7 +374,6 @@ var LibraryEGL = { } }, - eglDestroyContext__deps: ['$GL'], // EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext context); eglDestroyContext__proxy: 'sync', @@ -509,7 +507,6 @@ var LibraryEGL = { // EGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name); // The allocated strings are cached and never freed. eglQueryString__noleakcheck: true, - eglQueryString__deps: ['$stringToNewUTF8'], eglQueryString__proxy: 'sync', eglQueryString: (display, name) => { if (display != {{{ eglDefaultDisplay }}}) { @@ -571,7 +568,6 @@ var LibraryEGL = { eglWaitGL: 'eglWaitClient', // EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval); - eglSwapInterval__deps: ['emscripten_set_main_loop_timing'], eglSwapInterval__proxy: 'sync', eglSwapInterval: (display, interval) => { if (display != {{{ eglDefaultDisplay }}}) { @@ -586,7 +582,6 @@ var LibraryEGL = { }, // EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); - eglMakeCurrent__deps: ['$GL'], eglMakeCurrent__proxy: 'sync', eglMakeCurrent: (display, draw, read, context) => { if (display != {{{ eglDefaultDisplay }}}) { @@ -634,7 +629,6 @@ var LibraryEGL = { eglGetCurrentDisplay: () => EGL.currentContext ? {{{ eglDefaultDisplay }}} : 0, // EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface); - eglSwapBuffers__deps: ['$GLctx'], eglSwapBuffers__proxy: 'sync', eglSwapBuffers: (dpy, surface) => { if (!EGL.defaultDisplayInitialized) { @@ -668,6 +662,4 @@ var LibraryEGL = { } }; -autoAddDeps(LibraryEGL, '$EGL'); - addToLibrary(LibraryEGL); diff --git a/src/lib/libembind.js b/src/lib/libembind.js index 64db12a06f26f..abc2e08986cfd 100644 --- a/src/lib/libembind.js +++ b/src/lib/libembind.js @@ -14,7 +14,6 @@ var LibraryEmbind = { // If register_type is used, emval will be registered multiple times for // different type ids, but only a single type object is needed on the JS side // for all of them. Store the type for reuse. - $EmValType__deps: ['_emval_decref', '$Emval', '$readPointer'], $EmValType: `{ name: 'emscripten::val', fromWireType: (handle) => { @@ -29,10 +28,8 @@ var LibraryEmbind = { // TODO: do we need a deleteObject here? write a test where // emval is passed into JS via an interface }`, - $EmValOptionalType__deps: ['$EmValType'], $EmValOptionalType: '=Object.assign({optional: true}, EmValType);', - $throwUnboundTypeError__deps: ['$registeredTypes', '$typeDependencies', '$UnboundTypeError', '$getTypeName'], $throwUnboundTypeError: (message, types) => { var unboundTypes = []; var seen = {}; @@ -57,7 +54,6 @@ var LibraryEmbind = { // Creates a function overload resolution table to the given method 'methodName' in the given prototype, // if the overload table doesn't yet exist. - $ensureOverloadTable__deps: ['$throwBindingError'], $ensureOverloadTable: (proto, methodName, humanName) => { if (undefined === proto[methodName].overloadTable) { var prevFunc = proto[methodName]; @@ -85,7 +81,6 @@ var LibraryEmbind = { To implement support for multiple overloads of a function, an 'overload selector' function is used. That selector function chooses the appropriate overload to call from an function overload table. This selector function is only used if multiple overloads are actually registered, since it carries a slight performance penalty. */ - $exposePublicSymbol__deps: ['$ensureOverloadTable', '$throwBindingError'], $exposePublicSymbol__docs: '/** @param {number=} numArguments */', $exposePublicSymbol: (name, value, numArguments) => { if (Module.hasOwnProperty(name)) { @@ -107,7 +102,6 @@ var LibraryEmbind = { } }, - $replacePublicSymbol__deps: ['$throwInternalError'], $replacePublicSymbol__docs: '/** @param {number=} numArguments */', $replacePublicSymbol: (name, value, numArguments) => { if (!Module.hasOwnProperty(name)) { @@ -137,7 +131,6 @@ var LibraryEmbind = { // raw pointer -> instance $registeredInstances: {}, - $getBasestPointer__deps: ['$throwBindingError'], $getBasestPointer: (class_, ptr) => { if (ptr === undefined) { throwBindingError('ptr should not be undefined'); @@ -149,7 +142,6 @@ var LibraryEmbind = { return ptr; }, - $registerInheritedInstance__deps: ['$registeredInstances', '$getBasestPointer', '$throwBindingError'], $registerInheritedInstance: (class_, ptr, instance) => { ptr = getBasestPointer(class_, ptr); if (registeredInstances.hasOwnProperty(ptr)) { @@ -159,7 +151,6 @@ var LibraryEmbind = { } }, - $unregisterInheritedInstance__deps: ['$registeredInstances', '$getBasestPointer', '$throwBindingError'], $unregisterInheritedInstance: (class_, ptr) => { ptr = getBasestPointer(class_, ptr); if (registeredInstances.hasOwnProperty(ptr)) { @@ -169,7 +160,6 @@ var LibraryEmbind = { } }, - $getInheritedInstance__deps: ['$registeredInstances', '$getBasestPointer'], $getInheritedInstance: (class_, ptr) => { ptr = getBasestPointer(class_, ptr); return registeredInstances[ptr]; @@ -178,13 +168,11 @@ var LibraryEmbind = { // class typeID -> {pointerType: ..., constPointerType: ...} $registeredPointers: {}, - $registerType__deps: ['$sharedRegisterType'], $registerType__docs: '/** @param {Object=} options */', $registerType: function(rawType, registeredInstance, options = {}) { return sharedRegisterType(rawType, registeredInstance, options); }, - _embind_register_void__deps: ['$AsciiToString', '$registerType'], _embind_register_void: (rawType, name) => { name = AsciiToString(name); registerType(rawType, { @@ -197,7 +185,6 @@ var LibraryEmbind = { }, _embind_register_bool__docs: '/** @suppress {globalThis} */', - _embind_register_bool__deps: ['$AsciiToString', '$registerType'], _embind_register_bool: (rawType, name, trueValue, falseValue) => { name = AsciiToString(name); registerType(rawType, { @@ -272,7 +259,6 @@ var LibraryEmbind = { }, #if ASSERTIONS - $assertIntegerRange__deps: ['$embindRepr'], $assertIntegerRange: (typeName, value, minRange, maxRange) => { if (value < minRange || value > maxRange) { throw new TypeError(`Passing a number "${embindRepr(value)}" from JS side to C/C++ side to an argument of type "${typeName}", which is outside the valid range [${minRange}, ${maxRange}]!`); @@ -283,13 +269,6 @@ var LibraryEmbind = { _embind_register_integer__docs: '/** @suppress {globalThis} */', // When converting a number from JS to C++ side, the valid range of the number is // [minRange, maxRange], inclusive. - _embind_register_integer__deps: [ - '$integerReadValueFromPointer', '$AsciiToString', '$registerType', -#if ASSERTIONS - '$embindRepr', - '$assertIntegerRange', -#endif - ], _embind_register_integer: (primitiveType, name, size, minRange, maxRange) => { name = AsciiToString(name); @@ -323,13 +302,6 @@ var LibraryEmbind = { #if WASM_BIGINT _embind_register_bigint__docs: '/** @suppress {globalThis} */', - _embind_register_bigint__deps: [ - '$AsciiToString', '$registerType', '$integerReadValueFromPointer', -#if ASSERTIONS - '$embindRepr', - '$assertIntegerRange', -#endif - ], _embind_register_bigint: (primitiveType, name, size, minRange, maxRange) => { name = AsciiToString(name); @@ -376,12 +348,6 @@ var LibraryEmbind = { _embind_register_bigint: (primitiveType, name, size, minRange, maxRange) => {}, #endif - _embind_register_float__deps: [ - '$floatReadValueFromPointer', '$AsciiToString', '$registerType', -#if ASSERTIONS - '$embindRepr', -#endif - ], _embind_register_float: (rawType, name, size) => { name = AsciiToString(name); registerType(rawType, { @@ -446,9 +412,8 @@ var LibraryEmbind = { }, _embind_register_std_string__deps: [ - '$AsciiToString', '$registerType', - '$readPointer', '$throwBindingError', - '$stringToUTF8', '$lengthBytesUTF8', 'malloc', 'free'], + 'malloc', 'free' + ], _embind_register_std_string: (rawType, name) => { name = AsciiToString(name); const stdStringIsUTF8 = {{{ EMBIND_STD_STRING_IS_UTF8 }}}; @@ -526,11 +491,6 @@ var LibraryEmbind = { }); }, - _embind_register_std_wstring__deps: [ - '$AsciiToString', '$registerType', '$readPointer', - '$UTF16ToString', '$stringToUTF16', '$lengthBytesUTF16', - '$UTF32ToString', '$stringToUTF32', '$lengthBytesUTF32', - ], _embind_register_std_wstring: (rawType, charSize, name) => { name = AsciiToString(name); var decodeString, encodeString, lengthBytesUTF; @@ -581,26 +541,20 @@ var LibraryEmbind = { }); }, - _embind_register_emval__deps: [ - '$registerType', '$EmValType'], _embind_register_emval: (rawType) => registerType(rawType, EmValType), - _embind_register_user_type__deps: ['_embind_register_emval'], _embind_register_user_type: (rawType, name) => { __embind_register_emval(rawType); }, - _embind_register_user_type_definition__deps: ['_embind_register_emval'], _embind_register_user_type_definition: (rawType, name, definition) => { __embind_register_emval(rawType); }, - _embind_register_optional__deps: ['$registerType', '$EmValOptionalType'], _embind_register_optional: (rawOptionalType, rawType) => { registerType(rawOptionalType, EmValOptionalType); }, - _embind_register_memory_view__deps: ['$AsciiToString', '$registerType'], _embind_register_memory_view: (rawType, dataTypeIndex, name) => { var typeMapping = [ Int8Array, @@ -646,24 +600,6 @@ var LibraryEmbind = { // The path to interop from JS code to C++ code: // (hand-written JS code) -> (autogenerated JS invoker) -> (template-generated C++ invoker) -> (target C++ function) // craftInvokerFunction generates the JS invoker function for each function exposed to JS through embind. - $craftInvokerFunction__deps: [ - '$createNamedFunction', '$runDestructors', '$throwBindingError', '$usesDestructorStack', - '$argsUseStackAlloc', '$stackSave', '$stackRestore', -#if DYNAMIC_EXECUTION && !EMBIND_AOT - '$createJsInvoker', -#endif -#if EMBIND_AOT - '$InvokerFunctions', - '$createJsInvokerSignature', -#endif -#if ASYNCIFY == 1 - '$Asyncify', -#endif -#if ASSERTIONS - '$getRequiredArgCount', - '$checkArgCount', -#endif - ], $craftInvokerFunction: function(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc, /** boolean= */ isAsync) { // humanName: a human-readable string name for the function to be generated. // argTypes: An array that contains the embind type objects for all types in the function signature. @@ -831,11 +767,6 @@ var LibraryEmbind = { return createNamedFunction(humanName, invokerFn); }, - $embind__requireFunction__deps: ['$AsciiToString', '$throwBindingError' -#if DYNCALLS || !WASM_BIGINT || MEMORY64 || CAN_ADDRESS_2GB - , '$getDynCaller' -#endif - ], $embind__requireFunction: (signature, rawFunction, isAsync = false) => { #if ASSERTIONS && ASYNCIFY != 2 assert(!isAsync, 'async bindings are only supported with JSPI'); @@ -874,10 +805,6 @@ var LibraryEmbind = { return fp; }, - _embind_register_function__deps: [ - '$craftInvokerFunction', '$exposePublicSymbol', '$heap32VectorToArray', - '$AsciiToString', '$replacePublicSymbol', '$embind__requireFunction', - '$throwUnboundTypeError', '$whenDependentTypesAreResolved', '$getFunctionName'], _embind_register_function: (name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync, isNonnullReturn) => { var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); name = AsciiToString(name); @@ -896,8 +823,6 @@ var LibraryEmbind = { }); }, - _embind_register_value_array__deps: [ - '$tupleRegistrations', '$AsciiToString', '$embind__requireFunction'], _embind_register_value_array: ( rawType, name, @@ -918,8 +843,6 @@ var LibraryEmbind = { }; }, - _embind_register_value_array_element__deps: [ - '$tupleRegistrations', '$embind__requireFunction'], _embind_register_value_array_element: ( rawTupleType, getterReturnType, @@ -941,9 +864,6 @@ var LibraryEmbind = { }); }, - _embind_finalize_value_array__deps: [ - '$tupleRegistrations', '$runDestructors', - '$readPointer', '$whenDependentTypesAreResolved', '$stackAlloc', '$zeroMemory'], _embind_finalize_value_array: (rawTupleType) => { var reg = tupleRegistrations[rawTupleType]; delete tupleRegistrations[rawTupleType]; @@ -1026,8 +946,6 @@ var LibraryEmbind = { }); }, - _embind_register_value_object__deps: [ - '$structRegistrations', '$AsciiToString', '$embind__requireFunction'], _embind_register_value_object: ( rawType, name, @@ -1048,8 +966,6 @@ var LibraryEmbind = { }; }, - _embind_register_value_object_field__deps: [ - '$structRegistrations', '$AsciiToString', '$embind__requireFunction'], _embind_register_value_object_field: ( structType, fieldName, @@ -1073,9 +989,6 @@ var LibraryEmbind = { }); }, - _embind_finalize_value_object__deps: [ - '$structRegistrations', '$runDestructors', - '$readPointer', '$whenDependentTypesAreResolved', '$stackAlloc', '$zeroMemory'], _embind_finalize_value_object: (structType) => { var reg = structRegistrations[structType]; delete structRegistrations[structType]; @@ -1159,7 +1072,6 @@ var LibraryEmbind = { }, $genericPointerToWireType__docs: '/** @suppress {globalThis} */', - $genericPointerToWireType__deps: ['$throwBindingError', '$upcastPointer'], $genericPointerToWireType: function(destructors, handle) { var ptr; if (handle === null) { @@ -1237,7 +1149,6 @@ var LibraryEmbind = { $constNoSmartPtrRawPointerToWireType__docs: '/** @suppress {globalThis} */', // If we know a pointer type is not going to have SmartPtr logic in it, we can // special-case optimize it a bit (compare to genericPointerToWireType) - $constNoSmartPtrRawPointerToWireType__deps: ['$throwBindingError', '$upcastPointer', '$embindRepr'], $constNoSmartPtrRawPointerToWireType: function(destructors, handle) { if (handle === null) { if (this.isReference) { @@ -1260,7 +1171,6 @@ var LibraryEmbind = { $nonConstNoSmartPtrRawPointerToWireType__docs: '/** @suppress {globalThis} */', // An optimized version for non-const method accesses - there we must additionally restrict that // the pointer is not a const-pointer. - $nonConstNoSmartPtrRawPointerToWireType__deps: ['$throwBindingError', '$upcastPointer', '$embindRepr'], $nonConstNoSmartPtrRawPointerToWireType: function(destructors, handle) { if (handle === null) { if (this.isReference) { @@ -1283,11 +1193,6 @@ var LibraryEmbind = { return ptr; }, - $init_RegisteredPointer__deps: [ - '$RegisteredPointer', - '$readPointer', - '$RegisteredPointer_fromWireType', - ], $init_RegisteredPointer: () => { Object.assign(RegisteredPointer.prototype, { getPointee(ptr) { @@ -1313,8 +1218,8 @@ var LibraryEmbind = { @param {*=} rawDestructor, */`, $RegisteredPointer__deps: [ - '$constNoSmartPtrRawPointerToWireType', '$genericPointerToWireType', - '$nonConstNoSmartPtrRawPointerToWireType', '$init_RegisteredPointer'], + '$init_RegisteredPointer' + ], $RegisteredPointer__postset: 'init_RegisteredPointer()', $RegisteredPointer: function( name, @@ -1363,13 +1268,6 @@ var LibraryEmbind = { }, $RegisteredPointer_fromWireType__docs: '/** @suppress {globalThis} */', - $RegisteredPointer_fromWireType__deps: [ - '$downcastPointer', '$registeredPointers', - '$getInheritedInstance', '$makeClassHandle', -#if MEMORY64 - '$bigintToI53Checked' -#endif - ], $RegisteredPointer_fromWireType: function(ptr) { // ptr is a raw pointer (or a raw smartpointer) #if MEMORY64 @@ -1460,7 +1358,6 @@ var LibraryEmbind = { } }, - $releaseClassHandle__deps: ['$runDestructor'], $releaseClassHandle: ($$) => { $$.count.value -= 1; var toDelete = 0 === $$.count.value; @@ -1474,12 +1371,6 @@ var LibraryEmbind = { $detachFinalizer__deps: ['$finalizationRegistry'], $detachFinalizer: (handle) => {}, - $attachFinalizer__deps: [ - '$finalizationRegistry', '$detachFinalizer', '$releaseClassHandle', -#if ASSERTIONS - '$RegisteredPointer_fromWireType' -#endif - ], $attachFinalizer: (handle) => { if (!globalThis.FinalizationRegistry) { attachFinalizer = (handle) => handle; @@ -1524,7 +1415,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence return attachFinalizer(handle); }, - $makeClassHandle__deps: ['$throwInternalError', '$attachFinalizer'], $makeClassHandle: (prototype, record) => { if (!record.ptrType || !record.ptr) { throwInternalError('makeClassHandle requires ptr and ptrType'); @@ -1543,17 +1433,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence })); }, - $init_ClassHandle__deps: [ - '$ClassHandle', - '$shallowCopyInternalPointer', - '$throwInstanceAlreadyDeleted', - '$attachFinalizer', - '$releaseClassHandle', - '$throwBindingError', - '$detachFinalizer', - '$flushPendingDeletes', - '$delayFunction', - ], $init_ClassHandle: () => { let proto = ClassHandle.prototype; @@ -1658,7 +1537,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence $ClassHandle: function() { }, - $throwInstanceAlreadyDeleted__deps: ['$throwBindingError'], $throwInstanceAlreadyDeleted: (obj) => { function getInstanceTypeName(handle) { return handle.$$.ptrType.registeredClass.name; @@ -1668,7 +1546,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence $deletionQueue: [], - $flushPendingDeletes__deps: ['$deletionQueue'], $flushPendingDeletes: () => { while (deletionQueue.length) { var obj = deletionQueue.pop(); @@ -1679,7 +1556,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence $delayFunction: undefined, - $setDelayFunction__deps: ['$delayFunction', '$deletionQueue', '$flushPendingDeletes'], $setDelayFunction: (fn) => { delayFunction = fn; if (deletionQueue.length && delayFunction) { @@ -1719,13 +1595,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence }; }, - _embind_register_class__deps: [ - '$BindingError', '$ClassHandle', '$createNamedFunction', - '$registeredPointers', '$exposePublicSymbol', - '$makeLegalFunctionName', '$AsciiToString', - '$RegisteredClass', '$RegisteredPointer', '$replacePublicSymbol', - '$embind__requireFunction', '$throwUnboundTypeError', - '$whenDependentTypesAreResolved'], _embind_register_class: (rawType, rawPointerType, rawConstPointerType, @@ -1832,9 +1701,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence ); }, - _embind_register_iterable__deps: [ - '$whenDependentTypesAreResolved', '$installIndexedIterator', '$AsciiToString', - ], _embind_register_iterable: (rawClassType, rawElementType, sizeMethodName, getMethodName) => { sizeMethodName = AsciiToString(sizeMethodName); getMethodName = AsciiToString(getMethodName); @@ -1845,10 +1711,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence }); }, - _embind_register_class_constructor__deps: [ - '$heap32VectorToArray', '$embind__requireFunction', - '$whenDependentTypesAreResolved', - '$craftInvokerFunction'], _embind_register_class_constructor: ( rawClassType, argCount, @@ -1904,7 +1766,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence return desiredClass.downcast(rv); }, - $upcastPointer__deps: ['$throwBindingError'], $upcastPointer: (ptr, ptrClass, desiredClass) => { while (ptrClass !== desiredClass) { if (!ptrClass.upcast) { @@ -1916,7 +1777,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence return ptr; }, - $validateThis__deps: ['$throwBindingError', '$upcastPointer'], $validateThis: (this_, classType, humanName) => { if (!(this_ instanceof Object)) { throwBindingError(`${humanName} with invalid "this": ${this_}`); @@ -1934,10 +1794,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence classType.registeredClass); }, - _embind_register_class_function__deps: [ - '$craftInvokerFunction', '$heap32VectorToArray', '$AsciiToString', - '$embind__requireFunction', '$throwUnboundTypeError', - '$whenDependentTypesAreResolved', '$getFunctionName'], _embind_register_class_function: (rawClassType, methodName, argCount, @@ -2005,10 +1861,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence }); }, - _embind_register_class_property__deps: [ - '$AsciiToString', '$embind__requireFunction', '$runDestructors', - '$throwBindingError', '$throwUnboundTypeError', - '$whenDependentTypesAreResolved', '$validateThis'], _embind_register_class_property: (classType, fieldName, getterReturnType, @@ -2072,10 +1924,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence }); }, - _embind_register_class_class_function__deps: [ - '$craftInvokerFunction', '$ensureOverloadTable', '$heap32VectorToArray', - '$AsciiToString', '$embind__requireFunction', '$throwUnboundTypeError', - '$whenDependentTypesAreResolved', '$getFunctionName'], _embind_register_class_class_function: (rawClassType, methodName, argCount, @@ -2141,10 +1989,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence }); }, - _embind_register_class_class_property__deps: [ - '$AsciiToString', '$embind__requireFunction', '$runDestructors', - '$throwBindingError', '$throwUnboundTypeError', - '$whenDependentTypesAreResolved'], _embind_register_class_class_property: (rawClassType, fieldName, rawFieldType, @@ -2204,12 +2048,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence }); }, - _embind_create_inheriting_constructor__deps: [ - '$createNamedFunction', '$Emval', - '$PureVirtualError', '$AsciiToString', - '$registerInheritedInstance', - '$requireRegisteredType', '$throwBindingError', - '$unregisterInheritedInstance', '$detachFinalizer', '$attachFinalizer'], _embind_create_inheriting_constructor: (constructorName, wrapperType, properties) => { constructorName = AsciiToString(constructorName); wrapperType = requireRegisteredType(wrapperType, 'wrapper'); @@ -2268,7 +2106,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence $char_0: '0'.charCodeAt(0), $char_9: '9'.charCodeAt(0), - $makeLegalFunctionName__deps: ['$char_0', '$char_9'], $makeLegalFunctionName: (name) => { #if ASSERTIONS assert(typeof name === 'string'); @@ -2281,7 +2118,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence return name; }, - _embind_register_smart_ptr__deps: ['$RegisteredPointer', '$embind__requireFunction', '$whenDependentTypesAreResolved'], _embind_register_smart_ptr: (rawType, rawPointeeType, name, @@ -2320,8 +2156,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence }, _embind_register_enum__docs: '/** @suppress {globalThis} */', - _embind_register_enum__deps: ['$exposePublicSymbol', '$enumReadValueFromPointer', - '$AsciiToString', '$registerType', '$getEnumValueType'], _embind_register_enum: (rawType, name, size, isSigned, rawValueType) => { name = AsciiToString(name); const valueType = getEnumValueType(rawValueType); @@ -2393,7 +2227,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence } }, - _embind_register_enum_value__deps: ['$createNamedFunction', '$AsciiToString', '$requireRegisteredType'], _embind_register_enum_value: (rawEnumType, name, enumValue) => { var enumType = requireRegisteredType(rawEnumType, 'enum'); name = AsciiToString(name); @@ -2422,7 +2255,6 @@ Originally allocated`); // `.stack` will add "at ..." after this sentence } }, - _embind_register_constant__deps: ['$AsciiToString', '$whenDependentTypesAreResolved'], _embind_register_constant: (name, type, value) => { name = AsciiToString(name); whenDependentTypesAreResolved([], [type], (type) => { diff --git a/src/lib/libembind_gen.js b/src/lib/libembind_gen.js index d35b76c80cd1f..82b3310a83cc0 100644 --- a/src/lib/libembind_gen.js +++ b/src/lib/libembind_gen.js @@ -54,7 +54,6 @@ var LibraryEmbind = { this.destructorType = 'none'; // Same as emval. } }, - $FunctionDefinition__deps: ['$createJsInvoker', '$createJsInvokerSignature', '$emittedFunctions'], $FunctionDefinition: class { hasPublicSymbol = true; constructor(name, returnType, argumentTypes, functionIndex, thisType = null, isNonnullReturn = false, isAsync = false) { @@ -405,7 +404,6 @@ var LibraryEmbind = { out.push('\n};\n\n'); } }, - $TsPrinter__deps: ['$OptionalType', '$ClassDefinition'], $TsPrinter: class { constructor(definitions) { this.definitions = definitions; @@ -529,20 +527,16 @@ var LibraryEmbind = { } }, - $registerType__deps: ['$sharedRegisterType'], $registerType: function(rawType, registeredInstance, options = {}) { return sharedRegisterType(rawType, registeredInstance, options); }, - $registerPrimitiveType__deps: ['$registerType', '$PrimitiveType'], $registerPrimitiveType: (id, name, destructorType) => { name = AsciiToString(name); registerType(id, new PrimitiveType(id, name, destructorType)); }, - $registerIntegerType__deps: ['$registerType', '$IntegerType'], $registerIntegerType: (id) => { registerType(id, new IntegerType(id)); }, - $createFunctionDefinition__deps: ['$FunctionDefinition', '$heap32VectorToArray', '$AsciiToString', '$Argument', '$whenDependentTypesAreResolved', '$getFunctionName', '$getFunctionArgsName', '$PointerDefinition', '$ClassDefinition'], $createFunctionDefinition: (name, argCount, rawArgTypesAddr, functionIndex, hasThis, isNonnullReturn, isAsync, cb) => { const argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); name = typeof name === 'string' ? name : AsciiToString(name); @@ -586,38 +580,31 @@ var LibraryEmbind = { voidType.isVoid = true; // Match the marker property from the non-AOT mode. registerType(rawType, voidType); }, - _embind_register_bool__deps: ['$registerPrimitiveType'], _embind_register_bool: (rawType, name, trueValue, falseValue) => { registerPrimitiveType(rawType, name, 'none'); }, - _embind_register_integer__deps: ['$registerIntegerType'], _embind_register_integer: (primitiveType, name, size, minRange, maxRange) => { registerIntegerType(primitiveType, name); }, _embind_register_bigint: (primitiveType, name, size, minRange, maxRange) => { registerPrimitiveType(primitiveType, name, 'none'); }, - _embind_register_float__deps: ['$registerPrimitiveType'], _embind_register_float: (rawType, name, size) => { registerPrimitiveType(rawType, name, 'none'); }, - _embind_register_std_string__deps: ['$registerPrimitiveType'], _embind_register_std_string: (rawType, name) => { registerPrimitiveType(rawType, name, 'function'); }, _embind_register_std_wstring: (rawType, charSize, name) => { registerPrimitiveType(rawType, name, 'function'); }, - _embind_register_emval__deps: ['$registerType', '$PrimitiveType'], _embind_register_emval: (rawType) => { registerType(rawType, new PrimitiveType(rawType, 'emscripten::val', 'none')); }, - _embind_register_user_type__deps: ['$registerType', '$AsciiToString', '$UserType'], _embind_register_user_type: (rawType, name) => { name = AsciiToString(name); registerType(rawType, new UserType(rawType, name)); }, - _embind_register_user_type_definition__deps: ['$registerType', '$AsciiToString', '$UserTypeDefinition'], _embind_register_user_type_definition: (rawType, name, definition) => { name = AsciiToString(name); definition = AsciiToString(definition); @@ -625,7 +612,6 @@ var LibraryEmbind = { registerType(rawType, userTypeDef); moduleDefinitions.push(userTypeDef); }, - _embind_register_optional__deps: ['$OptionalType'], _embind_register_optional: (rawOptionalType, rawType) => { whenDependentTypesAreResolved([rawOptionalType], [rawType], function(type) { type = type[0]; @@ -635,13 +621,11 @@ var LibraryEmbind = { _embind_register_memory_view: (rawType, dataTypeIndex, name) => { // TODO }, - _embind_register_function__deps: ['$moduleDefinitions', '$createFunctionDefinition'], _embind_register_function: (name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync, isNonnullReturn) => { createFunctionDefinition(name, argCount, rawArgTypesAddr, fn, false, isNonnullReturn, isAsync, (funcDef) => { moduleDefinitions.push(funcDef); }); }, - _embind_register_class__deps: ['$AsciiToString', '$ClassDefinition', '$whenDependentTypesAreResolved', '$moduleDefinitions', '$PointerDefinition'], _embind_register_class: function(rawType, rawPointerType, rawConstPointerType, @@ -671,7 +655,6 @@ var LibraryEmbind = { ); }, - _embind_register_iterable__deps: ['$whenDependentTypesAreResolved'], _embind_register_iterable: (rawClassType, rawElementType, sizeMethodName, getMethodName) => { whenDependentTypesAreResolved([], [rawClassType, rawElementType], (types) => { const classType = types[0]; @@ -680,7 +663,6 @@ var LibraryEmbind = { return []; }); }, - _embind_register_class_constructor__deps: ['$whenDependentTypesAreResolved', '$createFunctionDefinition'], _embind_register_class_constructor: function( rawClassType, argCount, @@ -697,7 +679,6 @@ var LibraryEmbind = { return []; }); }, - _embind_register_class_function__deps: ['$createFunctionDefinition'], _embind_register_class_function: function(rawClassType, methodName, argCount, @@ -713,8 +694,6 @@ var LibraryEmbind = { classDef.methods.push(funcDef); }); }, - _embind_register_class_property__deps: [ - '$AsciiToString', '$whenDependentTypesAreResolved', '$ClassProperty'], _embind_register_class_property: function(classType, fieldName, getterReturnType, @@ -741,7 +720,6 @@ var LibraryEmbind = { return []; }); }, - _embind_register_class_class_function__deps: ['$createFunctionDefinition'], _embind_register_class_class_function: function(rawClassType, methodName, argCount, @@ -759,8 +737,6 @@ var LibraryEmbind = { return []; }); }, - _embind_register_class_class_property__deps: [ - '$AsciiToString', '$whenDependentTypesAreResolved', '$ClassProperty'], _embind_register_class_class_property: (rawClassType, fieldName, rawFieldType, @@ -782,7 +758,6 @@ var LibraryEmbind = { }, // Stub function. This is called when extending an object and not needed for TS generation. _embind_create_inheriting_constructor: (constructorName, wrapperType, properties) => {}, - _embind_register_enum__deps: ['$AsciiToString', '$EnumDefinition', '$moduleDefinitions', '$getEnumValueType'], _embind_register_enum: function(rawType, name, size, isSigned, rawValueType) { name = AsciiToString(name); const valueType = getEnumValueType(rawValueType); @@ -790,13 +765,11 @@ var LibraryEmbind = { registerType(rawType, enumDef); moduleDefinitions.push(enumDef); }, - _embind_register_enum_value__deps: ['$AsciiToString', '$requireRegisteredType'], _embind_register_enum_value: function(rawEnumType, name, enumValue) { name = AsciiToString(name); const enumDef = requireRegisteredType(rawEnumType, name); enumDef.items.push([name, enumValue]); }, - _embind_register_constant__deps: ['$AsciiToString', '$ConstantDefinition', '$whenDependentTypesAreResolved', '$moduleDefinitions'], _embind_register_constant: function(name, typeId, value) { name = AsciiToString(name); whenDependentTypesAreResolved([], [typeId], function(types) { @@ -805,8 +778,6 @@ var LibraryEmbind = { return []; }); }, - _embind_register_value_array__deps: [ - '$AsciiToString', '$ValueArrayDefinition', '$tupleRegistrations'], _embind_register_value_array: function( rawType, name, @@ -821,7 +792,6 @@ var LibraryEmbind = { const valueArray = new ValueArrayDefinition(rawType, name, isTrivial); tupleRegistrations[rawType] = valueArray; }, - _embind_register_value_array_element__deps: ['$tupleRegistrations'], _embind_register_value_array_element: function( rawTupleType, getterReturnType, @@ -840,7 +810,6 @@ var LibraryEmbind = { valueArray.elementTypeIds.push(getterReturnType); }, - _embind_finalize_value_array__deps: ['$whenDependentTypesAreResolved', '$moduleDefinitions', '$tupleRegistrations'], _embind_finalize_value_array: function(rawTupleType) { const valueArray = tupleRegistrations[rawTupleType]; delete tupleRegistrations[rawTupleType]; @@ -850,7 +819,6 @@ var LibraryEmbind = { return [valueArray]; }); }, - _embind_register_value_object__deps: ['$AsciiToString', '$ValueObjectDefinition', '$structRegistrations'], _embind_register_value_object: function( rawType, name, @@ -865,8 +833,6 @@ var LibraryEmbind = { const valueObject = new ValueObjectDefinition(rawType, name, isTrivial); structRegistrations[rawType] = valueObject; }, - _embind_register_value_object_field__deps: [ - '$AsciiToString', '$structRegistrations'], _embind_register_value_object_field: function( structType, fieldName, @@ -887,7 +853,6 @@ var LibraryEmbind = { valueObject.fieldTypeIds.push(getterReturnType); valueObject.fieldNames.push(AsciiToString(fieldName)); }, - _embind_finalize_value_object__deps: ['$moduleDefinitions', '$whenDependentTypesAreResolved', '$structRegistrations'], _embind_finalize_value_object: function(structType) { const valueObject = structRegistrations[structType]; delete structRegistrations[structType]; @@ -902,7 +867,6 @@ var LibraryEmbind = { return [valueObject]; }); }, - _embind_register_smart_ptr__deps: ['$whenDependentTypesAreResolved'], _embind_register_smart_ptr: function(rawType, rawPointeeType, name, @@ -921,13 +885,6 @@ var LibraryEmbind = { }); }, - $emitOutput__deps: ['$awaitingDependencies', '$throwBindingError', '$getTypeName', '$moduleDefinitions', -#if EMBIND_AOT - '$JsPrinter', -#else - '$TsPrinter', -#endif - ], $emitOutput__postset: () => { addAtPostCtor('emitOutput()'); }, $emitOutput__force: true, $emitOutput: () => { diff --git a/src/lib/libembind_shared.js b/src/lib/libembind_shared.js index 5c1fd8881fbbb..e3ddca12b22c7 100644 --- a/src/lib/libembind_shared.js +++ b/src/lib/libembind_shared.js @@ -16,10 +16,8 @@ var LibraryEmbindShared = { } }, - $throwInternalError__deps: ['$InternalError'], $throwInternalError: (message) => { throw new InternalError(message); }, - $throwBindingError__deps: ['$BindingError'], $throwBindingError: (message) => { throw new BindingError(message); }, // typeID -> { toWireType: ..., fromWireType: ... } @@ -35,9 +33,6 @@ var LibraryEmbindShared = { $structRegistrations: {}, - $sharedRegisterType__deps: [ - '$awaitingDependencies', '$registeredTypes', - '$typeDependencies', '$throwBindingError' ], $sharedRegisterType__docs: '/** @param {Object=} options */', $sharedRegisterType: function(rawType, registeredInstance, options = {}) { var name = registeredInstance.name; @@ -62,9 +57,6 @@ var LibraryEmbindShared = { } }, - $whenDependentTypesAreResolved__deps: [ - '$awaitingDependencies', '$registeredTypes', - '$typeDependencies', '$throwInternalError'], $whenDependentTypesAreResolved: (myTypes, dependentTypes, getTypeConverters) => { myTypes.forEach((type) => typeDependencies[type] = dependentTypes); @@ -103,7 +95,7 @@ var LibraryEmbindShared = { } }, - $getTypeName__deps: ['$AsciiToString', '__getTypeName', 'free'], + $getTypeName__deps: ['__getTypeName', 'free'], $getTypeName: (type) => { var ptr = ___getTypeName(type); var rv = AsciiToString(ptr); @@ -140,8 +132,6 @@ var LibraryEmbindShared = { return array; }, - $requireRegisteredType__deps: [ - '$registeredTypes', '$getTypeName', '$throwBindingError'], $requireRegisteredType: (rawType, humanName) => { var impl = registeredTypes[rawType]; if (undefined === impl) { @@ -227,7 +217,7 @@ var LibraryEmbindShared = { return requiredArgCount; }, - $createJsInvoker__deps: ['$usesDestructorStack', '$argsUseStackAlloc', + $createJsInvoker__deps: [ #if ASSERTIONS '$checkArgCount', #endif diff --git a/src/lib/libemval.js b/src/lib/libemval.js index 6294552f8f464..498da14c3f578 100644 --- a/src/lib/libemval.js +++ b/src/lib/libemval.js @@ -28,17 +28,14 @@ var LibraryEmVal = { #endif $emval_symbols: {}, // address -> string - $count_emval_handles__deps: ['$emval_freelist', '$emval_handles'], $count_emval_handles: () => { return emval_handles.length / 2 - {{{ EMVAL_RESERVED_HANDLES }}} - emval_freelist.length; }, - _emval_register_symbol__deps: ['$emval_symbols', '$AsciiToString'], _emval_register_symbol: (address) => { emval_symbols[address] = AsciiToString(address); }, - $getStringOrSymbol__deps: ['$emval_symbols', '$AsciiToString'], $getStringOrSymbol: (address) => { var symbol = emval_symbols[address]; if (symbol === undefined) { @@ -47,7 +44,6 @@ var LibraryEmVal = { return symbol; }, - $Emval__deps: ['$emval_freelist', '$emval_handles', '$throwBindingError'], $Emval: { toValue: (handle) => { if (!handle) { @@ -76,18 +72,12 @@ var LibraryEmVal = { } }, - _emval_incref__deps: ['$emval_handles'], _emval_incref: (handle) => { if (handle > {{{ EMVAL_LAST_RESERVED_HANDLE }}}) { emval_handles[handle + 1] += 1; } }, - _emval_decref__deps: ['$emval_freelist', '$emval_handles', -#if !DISABLE_EXCEPTION_CATCHING || WASM_EXCEPTIONS - '$emval_exception_decrefs', -#endif - ], _emval_decref: (handle) => { if (handle > {{{ EMVAL_LAST_RESERVED_HANDLE }}} && 0 === --emval_handles[handle + 1]) { #if ASSERTIONS @@ -108,18 +98,15 @@ var LibraryEmVal = { } }, - _emval_run_destructors__deps: ['_emval_decref', '$Emval', '$runDestructors'], _emval_run_destructors: (handle) => { var destructors = Emval.toValue(handle); runDestructors(destructors); __emval_decref(handle); }, - _emval_new_array__deps: ['$Emval'], _emval_new_array: () => Emval.toHandle([]), #if !SUPPORT_BIG_ENDIAN - _emval_new_array_from_memory_view__deps: ['$Emval'], _emval_new_array_from_memory_view: (view) => { view = Emval.toValue(view); // using for..loop is faster than Array.from @@ -127,14 +114,12 @@ var LibraryEmVal = { for (var i = 0; i < view.length; i++) a[i] = view[i]; return Emval.toHandle(a); }, - _emval_array_to_memory_view__deps: ['$Emval'], _emval_array_to_memory_view: (dst, src) => { dst = Emval.toValue(dst); src = Emval.toValue(src); dst.set(src); }, #else - _emval_new_array_from_memory_view__deps: ['$Emval'], _emval_new_array_from_memory_view: (view) => { view = Emval.toValue(view); const dv = new DataView(view.buffer, view.byteOffset); @@ -154,7 +139,6 @@ var LibraryEmVal = { for (var i = 0; i < view.length; i++) a[i] = reader.call(dv, i * view.BYTES_PER_ELEMENT, true); return Emval.toHandle(a); }, - _emval_array_to_memory_view__deps: ['$Emval'], _emval_array_to_memory_view: (dst, src) => { dst = Emval.toValue(dst); src = Emval.toValue(src); @@ -175,19 +159,14 @@ var LibraryEmVal = { }, #endif - _emval_new_object__deps: ['$Emval'], _emval_new_object: () => Emval.toHandle({}), - _emval_new_cstring__deps: ['$getStringOrSymbol', '$Emval'], _emval_new_cstring: (v) => Emval.toHandle(getStringOrSymbol(v)), - _emval_new_u8string__deps: ['$Emval'], _emval_new_u8string: (v) => Emval.toHandle(UTF8ToString(v)), - _emval_new_u16string__deps: ['$Emval'], _emval_new_u16string: (v) => Emval.toHandle(UTF16ToString(v)), - _emval_get_global__deps: ['$Emval', '$getStringOrSymbol'], _emval_get_global: (name) => { if (!name) { return Emval.toHandle(globalThis); @@ -196,20 +175,17 @@ var LibraryEmVal = { return Emval.toHandle(globalThis[name]); }, - _emval_get_module_property__deps: ['$getStringOrSymbol', '$Emval'], _emval_get_module_property: (name) => { name = getStringOrSymbol(name); return Emval.toHandle(Module[name]); }, - _emval_get_property__deps: ['$Emval'], _emval_get_property: (handle, key) => { handle = Emval.toValue(handle); key = Emval.toValue(key); return Emval.toHandle(handle[key]); }, - _emval_set_property__deps: ['$Emval'], _emval_set_property: (handle, key, value) => { handle = Emval.toValue(handle); key = Emval.toValue(key); @@ -217,7 +193,6 @@ var LibraryEmVal = { handle[key] = value; }, - $emval_returnValue__deps: ['$Emval'], $emval_returnValue: (toReturnWire, destructorsRef, handle) => { var destructors = []; var result = toReturnWire(destructors, handle); @@ -228,41 +203,35 @@ var LibraryEmVal = { return result; }, - _emval_equals__deps: ['$Emval'], _emval_equals: (first, second) => { first = Emval.toValue(first); second = Emval.toValue(second); return first == second; }, - _emval_strictly_equals__deps: ['$Emval'], _emval_strictly_equals: (first, second) => { first = Emval.toValue(first); second = Emval.toValue(second); return first === second; }, - _emval_greater_than__deps: ['$Emval'], _emval_greater_than: (first, second) => { first = Emval.toValue(first); second = Emval.toValue(second); return first > second; }, - _emval_less_than__deps: ['$Emval'], _emval_less_than: (first, second) => { first = Emval.toValue(first); second = Emval.toValue(second); return first < second; }, - _emval_not__deps: ['$Emval'], _emval_not: (object) => { object = Emval.toValue(object); return !object; }, - $emval_lookupTypes__deps: ['$requireRegisteredType'], $emval_lookupTypes: (argCount, argTypes) => { var a = new Array(argCount); for (var i = 0; i < argCount; ++i) { @@ -276,18 +245,12 @@ var LibraryEmVal = { // to have null be a valid method caller. $emval_methodCallers: [undefined], - $emval_addMethodCaller__deps: ['$emval_methodCallers'], $emval_addMethodCaller: (caller) => { var id = emval_methodCallers.length; emval_methodCallers.push(caller); return id; }, - _emval_create_invoker__deps: [ - '$emval_addMethodCaller', '$emval_lookupTypes', - '$createNamedFunction', '$emval_returnValue', - '$Emval', '$getStringOrSymbol', - ], _emval_create_invoker: (argCount, argTypesPtr, kind) => { const GenericWireTypeSize = {{{ 2 * POINTER_SIZE }}}; @@ -361,7 +324,6 @@ ${functionBody} return emval_addMethodCaller(createNamedFunction(functionName, invokerFunction)); }, - _emval_invoke__deps: ['$emval_methodCallers'], _emval_invoke: (caller, handle, methodName, destructorsRef, args) => { return emval_methodCallers[caller](handle, methodName, destructorsRef, args); }, @@ -370,39 +332,33 @@ ${functionBody} // TODO: remove this if/when https://github.com/emscripten-core/emscripten/issues/20478 is fixed. _emval_invoke_i64: '_emval_invoke', - _emval_typeof__deps: ['$Emval'], _emval_typeof: (handle) => { handle = Emval.toValue(handle); return Emval.toHandle(typeof handle); }, - _emval_instanceof__deps: ['$Emval'], _emval_instanceof: (object, constructor) => { object = Emval.toValue(object); constructor = Emval.toValue(constructor); return object instanceof constructor; }, - _emval_is_number__deps: ['$Emval'], _emval_is_number: (handle) => { handle = Emval.toValue(handle); return typeof handle === 'number'; }, - _emval_is_string__deps: ['$Emval'], _emval_is_string: (handle) => { handle = Emval.toValue(handle); return typeof handle === 'string'; }, - _emval_in__deps: ['$Emval'], _emval_in: (item, object) => { item = Emval.toValue(item); object = Emval.toValue(object); return item in object; }, - _emval_delete__deps: ['$Emval'], _emval_delete: (object, property) => { object = Emval.toValue(object); property = Emval.toValue(property); @@ -419,12 +375,6 @@ ${functionBody} }, #endif -#if !DISABLE_EXCEPTION_CATCHING || WASM_EXCEPTIONS - _emval_is_catchable_cpp_exception_object__deps: [ - '$Emval', - '$isCppExceptionObject', - ], -#endif _emval_is_catchable_cpp_exception_object: (object) => { #if !DISABLE_EXCEPTION_CATCHING || WASM_EXCEPTIONS return isCppExceptionObject(Emval.toValue(object)); @@ -433,17 +383,6 @@ ${functionBody} #endif }, - _emval_throw__deps: ['$Emval', -#if !DISABLE_EXCEPTION_CATCHING || WASM_EXCEPTIONS -#if !DISABLE_EXCEPTION_CATCHING - '$exceptionLast', - '$ExceptionInfo', -#endif - '$incrementExceptionRefcount', - '$incrementUncaughtExceptionCount', - '$isCppExceptionObject', -#endif - ], _emval_throw: (object) => { object = Emval.toValue(object); #if !DISABLE_EXCEPTION_CATCHING || WASM_EXCEPTIONS @@ -462,7 +401,6 @@ ${functionBody} }, #if ASYNCIFY - _emval_await__deps: ['$Emval', '$Asyncify'], _emval_await__async: 'auto', _emval_await: async (promise) => { var value = await Emval.toValue(promise); @@ -470,27 +408,24 @@ ${functionBody} }, #endif - _emval_iter_begin__deps: ['$Emval'], _emval_iter_begin: (iterable) => { iterable = Emval.toValue(iterable); return Emval.toHandle(iterable[Symbol.iterator]()); }, - _emval_iter_next__deps: ['$Emval'], _emval_iter_next: (iterator) => { iterator = Emval.toValue(iterator); var result = iterator.next(); return result.done ? 0 : Emval.toHandle(result.value); }, - _emval_coro_suspend__deps: ['$Emval', '_emval_coro_resume', '_emval_coro_reject'], + _emval_coro_suspend__deps: ['_emval_coro_resume', '_emval_coro_reject'], _emval_coro_suspend: (promiseHandle, awaiterPtr) => { Emval.toValue(promiseHandle) .then((result) => __emval_coro_resume(awaiterPtr, Emval.toHandle(result)), (error) => __emval_coro_reject(awaiterPtr, Emval.toHandle(error))); }, - _emval_coro_make_promise__deps: ['$Emval'], _emval_coro_make_promise: (resolveHandlePtr, rejectHandlePtr) => { return Emval.toHandle(new Promise((resolve, reject) => { {{{ makeSetValue('resolveHandlePtr', '0', 'Emval.toHandle(resolve)', '*') }}}; @@ -498,15 +433,9 @@ ${functionBody} })); }, - _emval_from_current_cxa_exception__deps: ['$Emval', '__cxa_rethrow', -#if !DISABLE_EXCEPTION_THROWING || WASM_EXCEPTIONS - '$decrementUncaughtExceptionCount', -#endif -#if !DISABLE_EXCEPTION_CATCHING || WASM_EXCEPTIONS - '$decrementExceptionRefcount', - '$emval_exception_decrefs', +#if WASM_EXCEPTIONS + _emval_from_current_cxa_exception__deps: ['__cxa_rethrow'], #endif - ], _emval_from_current_cxa_exception: () => { try { // Use __cxa_rethrow which already has mechanism for generating diff --git a/src/lib/libepoll.js b/src/lib/libepoll.js index 107e756573bfe..474b65bb6738d 100644 --- a/src/lib/libepoll.js +++ b/src/lib/libepoll.js @@ -29,7 +29,6 @@ var EpollLibrary = { // one left after its fd was drained then closed) is not a ready event, so it // never reports one. $epollWouldBlock__internal: true, - $epollWouldBlock__deps: ['$FS', '$pollOne', '$epollEvict'], $epollWouldBlock: (ep) => { for (var reg = ep.rdlHead, next; reg; reg = next) { next = reg.rdlNext; @@ -45,7 +44,6 @@ var EpollLibrary = { }, $epollNewInstance__internal: true, - $epollNewInstance__deps: ['$FS', '$epollWouldBlock', '$epollClearListener'], $epollNewInstance: () => { // Its own (detached) node, so the epoll fd can be watched by a parent epoll // (nesting) and carry the readiness wait-queue methods. Shared across dups. @@ -127,7 +125,6 @@ var EpollLibrary = { // entry at ctl time, and a closed/reused fd seen at derive time (doEpollWait // or the nesting poll). $epollEvict__internal: true, - $epollEvict__deps: ['$readyListRemove'], $epollEvict: (ep, reg) => { readyListRemove(ep, reg); reg.listener?.listeners.delete(reg.listener.entry); @@ -139,7 +136,6 @@ var EpollLibrary = { // points stay in libsyscall.js (like every other syscall) and resolve the // epoll stream before calling in here, so `ep` is a known-valid epoll stream. $epollCtl__internal: true, - $epollCtl__deps: ['$FS', '$pollOne', '$readyListAdd', '$epollEvict'], $epollCtl: (ep, op, fd, ev) => { var target = FS.getStream(fd); if (!target) return -{{{ cDefs.EBADF }}}; @@ -249,7 +245,6 @@ var EpollLibrary = { // EPOLL_CTL_MOD; a no-longer-ready (spurious) edge is dropped; a closed/reused // fd is evicted. $doEpollWait__internal: true, - $doEpollWait__deps: ['$FS', '$pollOne', '$readyListAdd', '$epollEvict'], $doEpollWait: (ep, ev, maxevents) => { // Detach the list and drain from the head: re-armed level triggers and the // unprocessed remainder go back onto ep's now-empty list, so a single pass @@ -305,7 +300,6 @@ var EpollLibrary = { // The blocking wait behind __syscall_epoll_pwait; `ep` is a known-valid epoll // stream and `maxevents` already validated by the entry point. $epollPwait__internal: true, - $epollPwait__deps: ['$doEpollWait'], $epollPwait: (ep, ev, maxevents, timeout) => { #if PTHREADS || ASYNCIFY #if PTHREADS @@ -358,7 +352,7 @@ var EpollLibrary = { // See . A listener is keyed by (callback, userdata) and // signals the callback while the set has uncollected ready events. - emscripten_epoll_listener_add__deps: ['$FS', '$epollWouldBlock', '$epollClearListener', '$callUserCallback', '$emSetImmediate'], + emscripten_epoll_listener_add__deps: ['$epollClearListener'], emscripten_epoll_listener_add: (epfd, callback, userdata) => { #if PTHREADS // Readiness is tracked on the main thread and the callback runs there. @@ -389,7 +383,6 @@ var EpollLibrary = { return 0; }, - emscripten_epoll_listener_remove__deps: ['$FS', '$epollClearListener'], emscripten_epoll_listener_remove: (epfd, callback, userdata) => { #if PTHREADS if (ENVIRONMENT_IS_PTHREAD) return {{{ cDefs.ENOTSUP }}}; diff --git a/src/lib/libeventloop.js b/src/lib/libeventloop.js index ca324f22b5be4..029a625005edf 100644 --- a/src/lib/libeventloop.js +++ b/src/lib/libeventloop.js @@ -15,7 +15,6 @@ LibraryJSEventLoop = { // rather than a JS object, and holds a runtime keepalive while pending. // Ids are sequential and, like setTimeout's, never zero; the native handle // is retained only while pending. - $safeSetTimeout__deps: ['$callUserCallback'], $safeSetTimeout__docs: '/** @param {number=} timeout */', $safeSetTimeout__postset: 'safeSetTimeout.pending = new Map(); safeSetTimeout.nextId = 1;', $safeSetTimeout: (func, timeout) => { @@ -31,7 +30,6 @@ LibraryJSEventLoop = { // Clears a pending safeSetTimeout and releases its keepalive. No-op if the // timeout has already fired or been cleared. - $safeClearTimeout__deps: ['$safeSetTimeout'], $safeClearTimeout: (id) => { var handle = safeSetTimeout.pending.get(id); if (!handle) return; @@ -52,7 +50,6 @@ LibraryJSEventLoop = { return id; }, - $safeRequestAnimationFrame__deps: ['$MainLoop'], $safeRequestAnimationFrame: (func) => { {{{ runtimeKeepalivePush() }}} return MainLoop.requestAnimationFrame(() => { @@ -111,7 +108,6 @@ LibraryJSEventLoop = { $emClearImmediate__deps: ['$emSetImmediate'], $emClearImmediate: undefined, - emscripten_set_immediate__deps: ['$emSetImmediate', '$callUserCallback'], emscripten_set_immediate: (cb, userData) => { {{{ runtimeKeepalivePush(); }}} return emSetImmediate(() => { @@ -120,14 +116,12 @@ LibraryJSEventLoop = { }); }, - emscripten_clear_immediate__deps: ['$emClearImmediate'], emscripten_clear_immediate: (id) => { if (emClearImmediate(id)) { {{{ runtimeKeepalivePop(); }}} } }, - emscripten_set_immediate_loop__deps: ['$emSetImmediate', '$callUserCallback'], emscripten_set_immediate_loop: (cb, userData) => { function tick() { callUserCallback(() => { @@ -142,13 +136,11 @@ LibraryJSEventLoop = { emSetImmediate(tick); }, - emscripten_set_timeout__deps: ['$safeSetTimeout'], emscripten_set_timeout: (cb, msecs, userData) => safeSetTimeout(() => {{{ makeDynCall('vp', 'cb') }}}(userData), msecs), emscripten_clear_timeout: '$safeClearTimeout', - emscripten_set_timeout_loop__deps: ['$callUserCallback', 'emscripten_get_now'], emscripten_set_timeout_loop: (cb, msecs, userData) => { function tick() { var t = _emscripten_get_now(); @@ -173,7 +165,6 @@ LibraryJSEventLoop = { return setTimeout(tick, 0); }, - emscripten_set_interval__deps: ['$callUserCallback'], emscripten_set_interval: (cb, msecs, userData) => { {{{ runtimeKeepalivePush() }}} return setInterval(() => callUserCallback({{{ makeDynCall('vp', 'cb') }}}, userData), msecs); @@ -184,7 +175,6 @@ LibraryJSEventLoop = { clearInterval(id); }, - emscripten_async_call__deps: ['$safeSetTimeout', '$safeRequestAnimationFrame'], emscripten_async_call: (func, arg, millis) => { var wrapper = () => {{{ makeDynCall('vp', 'func') }}}(arg); @@ -211,7 +201,6 @@ LibraryJSEventLoop = { }, $MainLoop__internal: true, - $MainLoop__deps: ['$setMainLoop', '$callUserCallback', 'emscripten_set_main_loop_timing'], $MainLoop__postset: ` Module['requestAnimationFrame'] = MainLoop.requestAnimationFrame; Module['pauseMainLoop'] = MainLoop.pause; @@ -329,13 +318,11 @@ LibraryJSEventLoop = { }, }, - emscripten_get_main_loop_timing__deps: ['$MainLoop'], emscripten_get_main_loop_timing: (mode, value) => { if (mode) {{{ makeSetValue('mode', 0, 'MainLoop.timingMode', 'i32') }}}; if (value) {{{ makeSetValue('value', 0, 'MainLoop.timingValue', 'i32') }}}; }, - emscripten_set_main_loop_timing__deps: ['$MainLoop'], emscripten_set_main_loop_timing: (mode, value) => { MainLoop.timingMode = mode; MainLoop.timingValue = value; @@ -412,20 +399,12 @@ LibraryJSEventLoop = { return 0; }, - emscripten_set_main_loop__deps: ['$setMainLoop'], emscripten_set_main_loop: (func, fps, simulateInfiniteLoop) => { var iterFunc = {{{ makeDynCall('v', 'func') }}}; setMainLoop(iterFunc, fps, simulateInfiniteLoop); }, $setMainLoop__internal: true, - $setMainLoop__deps: [ - '$MainLoop', - 'emscripten_set_main_loop_timing', 'emscripten_get_now', -#if !MINIMAL_RUNTIME - '$maybeExit', -#endif - ], $setMainLoop__docs: ` /** * @param {number=} arg @@ -526,25 +505,20 @@ LibraryJSEventLoop = { } }, - emscripten_set_main_loop_arg__deps: ['$setMainLoop'], emscripten_set_main_loop_arg: (func, arg, fps, simulateInfiniteLoop) => { var iterFunc = () => {{{ makeDynCall('vp', 'func') }}}(arg); setMainLoop(iterFunc, fps, simulateInfiniteLoop, arg); }, - emscripten_cancel_main_loop__deps: ['$MainLoop'], emscripten_cancel_main_loop: () => { MainLoop.pause(); MainLoop.func = null; }, - emscripten_pause_main_loop__deps: ['$MainLoop'], emscripten_pause_main_loop: () => MainLoop.pause(), - emscripten_resume_main_loop__deps: ['$MainLoop'], emscripten_resume_main_loop: () => MainLoop.resume(), - _emscripten_push_main_loop_blocker__deps: ['$MainLoop'], _emscripten_push_main_loop_blocker: (func, arg, name) => { MainLoop.queue.push({ func: () => { {{{ makeDynCall('vp', 'func') }}}(arg); @@ -552,7 +526,6 @@ LibraryJSEventLoop = { MainLoop.updateStatus(); }, - _emscripten_push_uncounted_main_loop_blocker__deps: ['$MainLoop'], _emscripten_push_uncounted_main_loop_blocker: (func, arg, name) => { MainLoop.queue.push({ func: () => { {{{ makeDynCall('vp', 'func') }}}(arg); @@ -560,7 +533,6 @@ LibraryJSEventLoop = { MainLoop.updateStatus(); }, - emscripten_set_main_loop_expected_blockers__deps: ['$MainLoop'], emscripten_set_main_loop_expected_blockers: (num) => { MainLoop.expectedBlockers = num; MainLoop.remainingBlockers = num; diff --git a/src/lib/libexceptions.js b/src/lib/libexceptions.js index 2bc614264fbfc..a9c8be6cafed6 100644 --- a/src/lib/libexceptions.js +++ b/src/lib/libexceptions.js @@ -84,9 +84,8 @@ var LibraryExceptions = { // Here, we throw an exception after recording a couple of values that we need to remember // We also remember that it was the last exception thrown as we need to know that later. - __cxa_throw__deps: ['$ExceptionInfo', '$uncaughtExceptionCount', + __cxa_throw__deps: [ #if !DISABLE_EXCEPTION_CATCHING - '$exceptionLast', '__cxa_increment_exception_refcount', #endif #if EXCEPTION_STACK_TRACES @@ -99,7 +98,6 @@ var LibraryExceptions = { // 'throw' is used here. '$decrementExceptionRefcount', '$incrementExceptionRefcount', #endif - '_Unwind_RaiseException', ], __cxa_throw: (ptr, type, destructor) => { #if EXCEPTION_DEBUG @@ -119,12 +117,10 @@ var LibraryExceptions = { // This exception will be caught twice, but while begin_catch runs twice, // we early-exit from end_catch when the exception has been rethrown, so // pop that here from the caught exceptions. - __cxa_rethrow__deps: ['$exceptionCaught', '$uncaughtExceptionCount', + __cxa_rethrow__deps: [ #if !DISABLE_EXCEPTION_CATCHING - '$exceptionLast', '__cxa_increment_exception_refcount', #endif - '_Unwind_RaiseException', ], __cxa_rethrow: () => { if (!exceptionCaught.length) { @@ -148,8 +144,9 @@ var LibraryExceptions = { llvm_eh_typeid_for: (type) => type, - __cxa_begin_catch__deps: ['$exceptionCaught', '__cxa_get_exception_ptr', - '$uncaughtExceptionCount', '$ExceptionInfo'], + __cxa_begin_catch__deps: [ + '__cxa_get_exception_ptr', + ], __cxa_begin_catch: (ptr) => { var info = new ExceptionInfo(ptr); if (!info.get_caught()) { @@ -168,10 +165,8 @@ var LibraryExceptions = { // and free the exception. Note that if the dynCall on the destructor fails // due to calling apply on undefined, that means that the destructor is // an invalid index into the FUNCTION_TABLE, so something has gone wrong. - __cxa_end_catch__deps: ['$exceptionCaught', '__cxa_decrement_exception_refcount', 'setThrew', -#if !DISABLE_EXCEPTION_CATCHING - '$exceptionLast', -#endif + __cxa_end_catch__deps: [ + '__cxa_decrement_exception_refcount', 'setThrew', ], __cxa_end_catch: () => { // Clear state flag. @@ -191,12 +186,11 @@ var LibraryExceptions = { #endif }, - __cxa_uncaught_exceptions__deps: ['$uncaughtExceptionCount'], __cxa_uncaught_exceptions: () => uncaughtExceptionCount, __cxa_call_unexpected: (exception) => abort('Unexpected exception thrown, this is not properly supported - aborting'), - __cxa_current_primary_exception__deps: ['$exceptionCaught', '__cxa_increment_exception_refcount'], + __cxa_current_primary_exception__deps: ['__cxa_increment_exception_refcount'], __cxa_current_primary_exception: () => { if (!exceptionCaught.length) { return 0; @@ -214,12 +208,10 @@ var LibraryExceptions = { return info.get_type(); }, - __cxa_rethrow_primary_exception__deps: ['$ExceptionInfo', '$uncaughtExceptionCount', + __cxa_rethrow_primary_exception__deps: [ #if !DISABLE_EXCEPTION_CATCHING - '$exceptionLast', '__cxa_increment_exception_refcount', #endif - '_Unwind_RaiseException', ], __cxa_rethrow_primary_exception: (ptr) => { if (!ptr) return; @@ -246,9 +238,9 @@ var LibraryExceptions = { // unwinding using 'if' blocks around each function, so the remaining // functionality boils down to picking a suitable 'catch' block. // We'll do that here, instead, to keep things simpler. - $findMatchingCatch__deps: ['$setTempRet0', + $findMatchingCatch__deps: [ #if !DISABLE_EXCEPTION_CATCHING - '$exceptionLast', '$ExceptionInfo', '__cxa_can_catch', + '__cxa_can_catch', #endif ], $findMatchingCatch: (args) => { @@ -298,12 +290,6 @@ var LibraryExceptions = { #endif }, - __resumeException__deps: [ -#if !DISABLE_EXCEPTION_CATCHING - '$exceptionLast', -#endif - '_Unwind_Resume', - ], __resumeException: (ptr) => { #if !DISABLE_EXCEPTION_CATCHING #if EXCEPTION_DEBUG @@ -316,7 +302,7 @@ var LibraryExceptions = { #endif #if WASM_EXCEPTIONS || !DISABLE_EXCEPTION_CATCHING - $getExceptionMessageCommon__deps: ['__get_exception_message', 'free', '$stackSave', '$stackRestore', '$stackAlloc'], + $getExceptionMessageCommon__deps: ['__get_exception_message', 'free'], $getExceptionMessageCommon: (ptr) => { var sp = stackSave(); var type_addr_addr = stackAlloc({{{ POINTER_SIZE }}}); @@ -350,11 +336,11 @@ var LibraryExceptions = { // In release builds, this function is not needed and the native // _Unwind_RaiseException in libunwind is used instead. __throw_exception_with_stack_trace__deps: [ - '$getCppExceptionTag', '$getExceptionMessage', // These functions can be necessary to prevent memory leaks from the JS // side. Even though they are not used it here directly, we export them // when 'throw' is used here. - '$decrementExceptionRefcount', '$incrementExceptionRefcount'], + '$decrementExceptionRefcount', '$incrementExceptionRefcount' + ], __throw_exception_with_stack_trace: (ex) => { var e = new WebAssembly.Exception(getCppExceptionTag(), [ex], {traceStack: true}); e.message = getExceptionMessage(e); @@ -364,7 +350,7 @@ var LibraryExceptions = { // Given an WebAssembly.Exception object, returns the actual user-thrown // C++ object address in the Wasm memory. - $getCppExceptionThrownObjectFromWebAssemblyException__deps: ['$getCppExceptionTag', '__thrown_object_from_unwind_exception'], + $getCppExceptionThrownObjectFromWebAssemblyException__deps: ['__thrown_object_from_unwind_exception'], $getCppExceptionThrownObjectFromWebAssemblyException: (ex) => { // In Wasm EH, the value extracted from WebAssembly.Exception is a pointer // to the unwind header. Convert it to the actual thrown value. @@ -378,19 +364,18 @@ var LibraryExceptions = { $decrementUncaughtExceptionCount__deps: ['__decrement_uncaught_exception'], $decrementUncaughtExceptionCount: '__decrement_uncaught_exception', - $incrementExceptionRefcount__deps: ['__cxa_increment_exception_refcount', '$getCppExceptionThrownObjectFromWebAssemblyException'], + $incrementExceptionRefcount__deps: ['__cxa_increment_exception_refcount'], $incrementExceptionRefcount: (ex) => { var ptr = getCppExceptionThrownObjectFromWebAssemblyException(ex); ___cxa_increment_exception_refcount(ptr); }, - $decrementExceptionRefcount__deps: ['__cxa_decrement_exception_refcount', '$getCppExceptionThrownObjectFromWebAssemblyException'], + $decrementExceptionRefcount__deps: ['__cxa_decrement_exception_refcount'], $decrementExceptionRefcount: (ex) => { var ptr = getCppExceptionThrownObjectFromWebAssemblyException(ex); ___cxa_decrement_exception_refcount(ptr); }, - $getExceptionMessage__deps: ['$getCppExceptionThrownObjectFromWebAssemblyException', '$getExceptionMessageCommon'], $getExceptionMessage: (ex) => { var ptr = getCppExceptionThrownObjectFromWebAssemblyException(ex); return getExceptionMessageCommon(ptr); @@ -398,12 +383,10 @@ var LibraryExceptions = { #else #if !DISABLE_EXCEPTION_THROWING - $incrementUncaughtExceptionCount__deps: ['$uncaughtExceptionCount'], $incrementUncaughtExceptionCount: () => { uncaughtExceptionCount++; }, - $decrementUncaughtExceptionCount__deps: ['$uncaughtExceptionCount'], $decrementUncaughtExceptionCount: () => { uncaughtExceptionCount--; }, @@ -416,7 +399,6 @@ var LibraryExceptions = { $decrementExceptionRefcount__deps: ['__cxa_decrement_exception_refcount'], $decrementExceptionRefcount: (exn) => ___cxa_decrement_exception_refcount(exn.excPtr), - $getExceptionMessage__deps: ['$getExceptionMessageCommon'], $getExceptionMessage: (exn) => getExceptionMessageCommon(exn.excPtr), #endif @@ -444,7 +426,6 @@ addCxaCatch = (n) => { } const argString = args.join(); LibraryManager.library[`__cxa_find_matching_catch_${n}__sig`] = sig; - LibraryManager.library[`__cxa_find_matching_catch_${n}__deps`] = ['$findMatchingCatch']; LibraryManager.library[`__cxa_find_matching_catch_${n}`] = eval(`(${args}) => findMatchingCatch([${argString}])`); }; diff --git a/src/lib/libexports.js b/src/lib/libexports.js index 0ccf93e436249..b70faee01d682 100644 --- a/src/lib/libexports.js +++ b/src/lib/libexports.js @@ -5,7 +5,6 @@ */ addToLibrary({ - emscripten_get_exported_function__deps: ['$addFunction', '$UTF8ToString'], emscripten_get_exported_function: (name) => { name = UTF8ToString(name); // Wasm backend does not use C name mangling on exports, diff --git a/src/lib/libfetch.js b/src/lib/libfetch.js index a0781f2ef2779..f8172aaf207e1 100644 --- a/src/lib/libfetch.js +++ b/src/lib/libfetch.js @@ -8,17 +8,8 @@ var LibraryFetch = { $Fetch__postset: 'Fetch.init();', - $Fetch__deps: [ - '$HandleAllocator', -#if FETCH_SUPPORT_INDEXEDDB - '$addRunDependency', - '$removeRunDependency', -#endif - ], $Fetch: Fetch, - _emscripten_fetch_get_response_headers_length__deps: ['$lengthBytesUTF8'], _emscripten_fetch_get_response_headers_length: fetchGetResponseHeadersLength, - _emscripten_fetch_get_response_headers__deps: ['$stringToUTF8'], _emscripten_fetch_get_response_headers: fetchGetResponseHeaders, emscripten_fetch_free: fetchFree, @@ -36,17 +27,9 @@ var LibraryFetch = { emscripten_start_fetch__deps: [ 'malloc', 'realloc', - '$Fetch', - '$fetchXHR', - '$callUserCallback', '$writeI53ToI64', '$stringToUTF8', '$stringToNewUTF8', -#if FETCH_SUPPORT_INDEXEDDB - '$fetchCacheData', - '$fetchLoadCachedData', - '$fetchDeleteCachedData', -#endif #if FETCH_STREAMING '$FetchXHR', #endif diff --git a/src/lib/libfetchfs.js b/src/lib/libfetchfs.js index 26d14d295ed19..ada91b2ec3860 100644 --- a/src/lib/libfetchfs.js +++ b/src/lib/libfetchfs.js @@ -5,7 +5,7 @@ */ addToLibrary({ - $FETCHFS__deps: ['$stringToUTF8OnStack', 'wasmfs_create_fetch_backend'], + $FETCHFS__deps: ['wasmfs_create_fetch_backend'], $FETCHFS: { createBackend(opts) { return withStackSave( diff --git a/src/lib/libfs.js b/src/lib/libfs.js index 1948600068321..af6f6f6728d43 100644 --- a/src/lib/libfs.js +++ b/src/lib/libfs.js @@ -9,11 +9,7 @@ var LibraryFS = { // Include FS even when it is not referenced by compiled code. $FS__force: true, #endif - $FS__deps: ['$randomFill', '$PATH', '$PATH_FS', '$TTY', '$MEMFS', - '$FS_modeStringToFlags', - '$FS_fileDataToTypedArray', - '$FS_getMode', - '$intArrayFromString', + $FS__deps: [ #if LibraryManager.has('libidbfs.js') '$IDBFS', #endif @@ -29,12 +25,6 @@ var LibraryFS = { #if LibraryManager.has('libproxyfs.js') '$PROXYFS', #endif -#if ASSERTIONS - '$strError', '$ERRNO_CODES', -#if !STRICT - '$warnOnce', -#endif -#endif #if !MINIMAL_RUNTIME '$FS_createPreloadedFile', #endif @@ -1957,7 +1947,6 @@ FS.staticInit();`; * @param {number=} mode Optionally, the mode to create in. Uses mkdir's * default if not set. */`, - $FS_mkdirTree__deps: ['$FS'], $FS_mkdirTree: (path, mode) => FS.mkdirTree(path, mode), }; @@ -1969,6 +1958,5 @@ for (let key in LibraryFS.$FS) { continue; } LibraryFS[alias] = `(...args) => FS.${key}(...args)`; - LibraryFS[`${alias}__deps`] = ['$FS']; } addToLibrary(LibraryFS); diff --git a/src/lib/libfs_shared.js b/src/lib/libfs_shared.js index 75dbcda876240..d180823641296 100644 --- a/src/lib/libfs_shared.js +++ b/src/lib/libfs_shared.js @@ -12,7 +12,6 @@ addToLibrary({ // Tries to handle an input byteArray using preload plugins. Returns true if // it was handled. $FS_handledByPreloadPlugin__internal: true, - $FS_handledByPreloadPlugin__deps: ['$preloadPlugins'], $FS_handledByPreloadPlugin: async (byteArray, fullname) => { #if LibraryManager.has('libbrowser.js') // Ensure plugins are ready. @@ -33,7 +32,6 @@ addToLibrary({ }, // Legacy version of FS_preloadFile that uses callback rather than async - $FS_createPreloadedFile__deps: ['$FS_preloadFile'], $FS_createPreloadedFile: (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { FS_preloadFile(parent, name, url, canRead, canWrite, dontCreateFile, canOwn, preFinish).then(onload).catch(onerror); }, @@ -50,15 +48,6 @@ addToLibrary({ // You can also call this with a typed array instead of a url. It will then // do preloading for the Image/Audio part, as if the typed array were the // result of an XHR that you did manually. - $FS_preloadFile__deps: [ - '$asyncLoad', - '$PATH_FS', - '$FS_createDataFile', - '$getUniqueRunDependency', - '$addRunDependency', - '$removeRunDependency', - '$FS_handledByPreloadPlugin', - ], $FS_preloadFile: async (parent, name, url, canRead, canWrite, dontCreateFile, canOwn, preFinish) => { // TODO we should allow people to just pass in a complete filename instead // of parent and name being that we just join them anyways @@ -107,7 +96,6 @@ addToLibrary({ return mode; }, - $FS_fileDataToTypedArray__deps: ['$intArrayFromString'], $FS_fileDataToTypedArray: (data) => { if (typeof data === 'string') { data = intArrayFromString(data, true); @@ -124,10 +112,6 @@ addToLibrary({ // a.) the next character represented as an integer // b.) undefined to signal that no data is currently available // c.) null to signal an EOF - $FS_stdin_getChar__deps: [ - '$FS_stdin_getChar_buffer', - '$intArrayFromString', - ], $FS_stdin_getChar: () => { if (!FS_stdin_getChar_buffer.length) { var result = null; @@ -180,15 +164,11 @@ addToLibrary({ return FS_stdin_getChar_buffer.shift(); }, - $FS_unlink__deps: ['$FS'], $FS_unlink: 'FS.unlink', - $FS_createPath__deps: ['$FS'], $FS_createPath: 'FS.createPath', - $FS_createDevice__deps: ['$FS'], $FS_createDevice: 'FS.createDevice', - $FS_readFile__deps: ['$FS'], $FS_readFile: 'FS.readFile', }); diff --git a/src/lib/libglemu.js b/src/lib/libglemu.js index 626d91c6a0dee..341fe560dd3d5 100644 --- a/src/lib/libglemu.js +++ b/src/lib/libglemu.js @@ -25,15 +25,7 @@ assert(!FULL_ES3, 'cannot emulate both ES3 and legacy GL'); var LibraryGLEmulation = { // GL emulation: provides misc. functionality not present in OpenGL ES 2.0 or WebGL - $GLEmulation__deps: ['$GLImmediateSetup', 'glEnable', 'glDisable', - 'glIsEnabled', 'glGetBooleanv', 'glGetIntegerv', 'glGetString', - 'glCreateShader', 'glShaderSource', 'glCompileShader', 'glAttachShader', - 'glDetachShader', 'glUseProgram', 'glDeleteProgram', 'glBindAttribLocation', - 'glLinkProgram', 'glBindBuffer', 'glGetFloatv', 'glHint', - 'glEnableVertexAttribArray', 'glDisableVertexAttribArray', - 'glVertexAttribPointer', 'glActiveTexture', '$stringToNewUTF8', - '$ptrToString', '$getEmscriptenSupportedExtensions', - ], + $GLEmulation__deps: ['$GLImmediateSetup'], $GLEmulation__force: true, $GLEmulation__postset: ` // Forward declare GL functions that are overridden by GLEmulation. @@ -772,7 +764,6 @@ var LibraryGLEmulation = { }, }, - glDeleteObject__deps: ['glDeleteProgram', 'glDeleteShader'], glDeleteObject: (id) => { if (GL.programs[id]) { _glDeleteProgram(id); @@ -784,7 +775,6 @@ var LibraryGLEmulation = { }, glDeleteObjectARB: 'glDeleteObject', - glGetObjectParameteriv__deps: ['glGetProgramiv', 'glGetShaderiv'], glGetObjectParameteriv: (id, type, result) => { if (GL.programs[id]) { if (type == 0x8B84) { // GL_OBJECT_INFO_LOG_LENGTH_ARB @@ -813,7 +803,6 @@ var LibraryGLEmulation = { }, glGetObjectParameterivARB: 'glGetObjectParameteriv', - glGetInfoLog__deps: ['glGetProgramInfoLog', 'glGetShaderInfoLog'], glGetInfoLog: (id, maxLength, length, infoLog) => { if (GL.programs[id]) { _glGetProgramInfoLog(id, maxLength, length, infoLog); @@ -857,7 +846,6 @@ var LibraryGLEmulation = { #if !FULL_ES2 $GLImmediate__postset: 'GLImmediate.setupFuncs(); Browser.moduleContextCreatedCallbacks.push(() => GLImmediate.init());', #endif - $GLImmediate__deps: ['$Browser', '$GL', '$GLEmulation', '$webglBufferSubData'], $GLImmediate: { MapTreeLib: null, spawnMapTreeLib: () => { @@ -3174,16 +3162,13 @@ var LibraryGLEmulation = { GLImmediate.addRendererComponent(GLImmediate.VERTEX, 4, GLctx.FLOAT); }, - glVertex2fv__deps: ['glVertex2f'], glVertex2fv: (p) => _glVertex2f({{{ makeGetValue('p', '0', 'float') }}}, {{{ makeGetValue('p', '4', 'float') }}}), - glVertex3fv__deps: ['glVertex3f'], glVertex3fv: (p) => _glVertex3f({{{ makeGetValue('p', '0', 'float') }}}, {{{ makeGetValue('p', '4', 'float') }}}, {{{ makeGetValue('p', '8', 'float') }}}), - glVertex4fv__deps: ['glVertex4f'], glVertex4fv: (p) => _glVertex4f({{{ makeGetValue('p', '0', 'float') }}}, {{{ makeGetValue('p', '4', 'float') }}}, {{{ makeGetValue('p', '8', 'float') }}}, @@ -3205,7 +3190,6 @@ var LibraryGLEmulation = { }, glTexCoord2f: 'glTexCoord2i', - glTexCoord2fv__deps: ['glTexCoord2i'], glTexCoord2fv: (v) => _glTexCoord2i({{{ makeGetValue('v', '0', 'float') }}}, {{{ makeGetValue('v', '4', 'float') }}}), @@ -3239,56 +3223,43 @@ var LibraryGLEmulation = { glColor4d: 'glColor4f', - glColor4ub__deps: ['glColor4f'], glColor4ub: (r, g, b, a) => _glColor4f((r&255)/255, (g&255)/255, (b&255)/255, (a&255)/255), - glColor4us__deps: ['glColor4f'], glColor4us: (r, g, b, a) => _glColor4f((r&65535)/65535, (g&65535)/65535, (b&65535)/65535, (a&65535)/65535), - glColor4ui__deps: ['glColor4f'], glColor4ui: (r, g, b, a) => _glColor4f((r>>>0)/4294967295, (g>>>0)/4294967295, (b>>>0)/4294967295, (a>>>0)/4294967295), - glColor3f__deps: ['glColor4f'], glColor3f: (r, g, b) => _glColor4f(r, g, b, 1), glColor3d: 'glColor3f', - glColor3ub__deps: ['glColor4ub'], glColor3ub: (r, g, b) => _glColor4ub(r, g, b, 255), - glColor3us__deps: ['glColor4us'], glColor3us: (r, g, b) => _glColor4us(r, g, b, 65535), - glColor3ui__deps: ['glColor4ui'], glColor3ui: (r, g, b) => _glColor4ui(r, g, b, 4294967295), - glColor3ubv__deps: ['glColor3ub'], glColor3ubv: (p) => _glColor3ub({{{ makeGetValue('p', '0', 'i8') }}}, {{{ makeGetValue('p', '1', 'i8') }}}, {{{ makeGetValue('p', '2', 'i8') }}}), - glColor3usv__deps: ['glColor3us'], glColor3usv: (p) => _glColor3us({{{ makeGetValue('p', '0', 'i16') }}}, {{{ makeGetValue('p', '2', 'i16') }}}, {{{ makeGetValue('p', '4', 'i16') }}}), - glColor3uiv__deps: ['glColor3ui'], glColor3uiv: (p) => _glColor3ui({{{ makeGetValue('p', '0', 'i32') }}}, {{{ makeGetValue('p', '4', 'i32') }}}, {{{ makeGetValue('p', '8', 'i32') }}}), - glColor3fv__deps: ['glColor3f'], glColor3fv: (p) => _glColor3f({{{ makeGetValue('p', '0', 'float') }}}, {{{ makeGetValue('p', '4', 'float') }}}, {{{ makeGetValue('p', '8', 'float') }}}), - glColor4fv__deps: ['glColor4f'], glColor4fv: (p) => _glColor4f({{{ makeGetValue('p', '0', 'float') }}}, {{{ makeGetValue('p', '4', 'float') }}}, {{{ makeGetValue('p', '8', 'float') }}}, {{{ makeGetValue('p', '12', 'float') }}}), - glColor4ubv__deps: ['glColor4ub'], glColor4ubv: (p) => _glColor4ub({{{ makeGetValue('p', '0', 'i8') }}}, {{{ makeGetValue('p', '1', 'i8') }}}, {{{ makeGetValue('p', '2', 'i8') }}}, @@ -3321,11 +3292,9 @@ var LibraryGLEmulation = { break; } }, - glFogi__deps: ['glFogf'], glFogi: (pname, param) => { return _glFogf(pname, param); }, - glFogfv__deps: ['glFogf'], glFogfv: (pname, param) => { // partial support, TODO switch (pname) { case 0xB66: // GL_FOG_COLOR @@ -3339,7 +3308,6 @@ var LibraryGLEmulation = { _glFogf(pname, {{{ makeGetValue('param', '0', 'float') }}}); break; } }, - glFogiv__deps: ['glFogf'], glFogiv: (pname, param) => { switch (pname) { case 0xB66: // GL_FOG_COLOR @@ -3398,7 +3366,6 @@ var LibraryGLEmulation = { GLImmediate.addRendererComponent(GLImmediate.NORMAL, 3, GLctx.FLOAT); }, - glNormal3fv__deps: ['glNormal3f'], glNormal3fv: (p) => { _glNormal3f({{{ makeGetValue('p', '0', 'float') }}}, {{{ makeGetValue('p', '4', 'float') }}}, {{{ makeGetValue('p', '8', 'float') }}}); }, @@ -3406,7 +3373,6 @@ var LibraryGLEmulation = { // Additional non-GLES rendering calls - glDrawRangeElements__deps: ['glDrawElements'], glDrawRangeElements: (mode, start, end, count, type, indices) => { _glDrawElements(mode, count, type, indices, start, end); }, @@ -3544,7 +3510,6 @@ var LibraryGLEmulation = { // Vertex array object (VAO) support. TODO: when the WebGL extension is // popular, use that and remove this code and GL.vaos - $emulGlGenVertexArrays__deps: ['$GLEmulation'], $emulGlGenVertexArrays: (n, vaos) => { for (var i = 0; i < n; i++) { var id = GL.getNewId(GLEmulation.vaos); @@ -3571,7 +3536,6 @@ var LibraryGLEmulation = { if (!vao) return 0; return 1; }, - $emulGlBindVertexArray__deps: ['glBindBuffer', 'glEnableVertexAttribArray', 'glVertexAttribPointer', 'glEnableClientState'], $emulGlBindVertexArray: (vao) => { // undo vao-related things, wipe the slate clean, both for vao of 0 or an actual vao GLEmulation.currentVao = null; // make sure the commands we run here are not recorded @@ -3933,7 +3897,6 @@ var LibraryGLEmulation = { return 1 /* GL_TRUE */; }, - gluOrtho2D__deps: ['glOrtho'], gluOrtho2D: (left, right, bottom, top) => _glOrtho(left, right, bottom, top, -1, 1), }; diff --git a/src/lib/libglew.js b/src/lib/libglew.js index 054528dfdfff5..f0b48361f3c0c 100644 --- a/src/lib/libglew.js +++ b/src/lib/libglew.js @@ -20,7 +20,7 @@ */ var LibraryGLEW = { - $GLEW__deps: ['glGetString', '$stringToNewUTF8', '$webglGetExtensions'], + $GLEW__deps: ['glGetString'], $GLEW: { isLinaroFork: 1, extensions: null, @@ -128,5 +128,4 @@ var LibraryGLEW = { }; -autoAddDeps(LibraryGLEW, '$GLEW'); addToLibrary(LibraryGLEW); diff --git a/src/lib/libglfw.js b/src/lib/libglfw.js index 7af81dcecfa34..3e72a43f43dcd 100644 --- a/src/lib/libglfw.js +++ b/src/lib/libglfw.js @@ -83,15 +83,11 @@ var LibraryGLFW = { this.userptr = 0; }, - $GLFW__deps: ['emscripten_get_now', '$GL', '$Browser', '$GLFW_Window', - 'malloc', 'free', - '$MainLoop', - '$stringToNewUTF8', - '$getFullscreenElement', - 'emscripten_set_window_title', -#if FILESYSTEM - '$FS', + $GLFW__deps: [ +#if !OFFSCREEN_FRAMEBUFFER + '$GL', #endif + 'malloc', 'free', ], $GLFW: { WindowFromId: (id) => { @@ -1529,7 +1525,7 @@ var LibraryGLFW = { GLFW.initialTime = GLFW.getTime() - time; }, - glfwExtensionSupported__deps: ['glGetString', '$webglGetExtensions'], + glfwExtensionSupported__deps: ['glGetString'], glfwExtensionSupported: (extension) => { GLFW.extensions ||= webglGetExtensions(); @@ -1540,7 +1536,6 @@ var LibraryGLFW = { return (GLFW.extensions.includes('GL_' + extension)); }, - glfwSwapInterval__deps: ['emscripten_set_main_loop_timing'], glfwSwapInterval: (interval) => { interval = Math.abs(interval); // GLFW uses negative values to enable GLX_EXT_swap_control_tear, which we don't have, so just treat negative and positive the same. if (interval == 0) _emscripten_set_main_loop_timing({{{ cDefs.EM_TIMING_SETTIMEOUT }}}, 0); @@ -2104,5 +2099,4 @@ var LibraryGLFW = { #endif // GLFW2 }; -autoAddDeps(LibraryGLFW, '$GLFW'); addToLibrary(LibraryGLFW); diff --git a/src/lib/libglut.js b/src/lib/libglut.js index 4c3cc1449ce78..49ebc55dc8842 100644 --- a/src/lib/libglut.js +++ b/src/lib/libglut.js @@ -5,7 +5,6 @@ */ var LibraryGLUT = { - $GLUT__deps: ['$Browser', '$getFullscreenElement', 'glutPostRedisplay'], $GLUT: { initTime: null, idleFunc: null, @@ -309,7 +308,6 @@ var LibraryGLUT = { glutGetModifiers__proxy: 'sync', glutGetModifiers: () => GLUT.modifiers, - glutInit__deps: ['$Browser', '$addOnExit'], glutInit__proxy: 'sync', glutInit: (argcp, argv) => { // Ignore arguments @@ -422,7 +420,6 @@ var LibraryGLUT = { }, glutIdleFunc__proxy: 'sync', - glutIdleFunc__deps: ['$safeSetTimeout'], glutIdleFunc: (func) => { function callback() { if (GLUT.idleFunc) { @@ -437,7 +434,6 @@ var LibraryGLUT = { }, glutTimerFunc__proxy: 'sync', - glutTimerFunc__deps: ['$safeSetTimeout'], glutTimerFunc: (msec, func, value) => safeSetTimeout(() => {{{ makeDynCall('vi', 'func') }}}(value), msec), @@ -563,7 +559,6 @@ var LibraryGLUT = { }, glutCreateWindow__proxy: 'sync', - glutCreateWindow__deps: ['$Browser'], glutCreateWindow: (name) => { var contextAttributes = { antialias: ((GLUT.initDisplayMode & 0x0080 /*GLUT_MULTISAMPLE*/) != 0), @@ -588,7 +583,6 @@ var LibraryGLUT = { }, glutReshapeWindow__proxy: 'sync', - glutReshapeWindow__deps: ['$GLUT', 'glutPostRedisplay'], glutReshapeWindow: (width, height) => { Browser.exitFullscreen(); Browser.setCanvasSize(width, height, true); // N.B. GLUT.reshapeFunc is also registered as a canvas resize callback. @@ -600,7 +594,6 @@ var LibraryGLUT = { }, glutPositionWindow__proxy: 'sync', - glutPositionWindow__deps: ['$Browser', 'glutPostRedisplay'], glutPositionWindow: (x, y) => { Browser.exitFullscreen(); /* TODO */ @@ -608,7 +601,6 @@ var LibraryGLUT = { }, glutFullScreen__proxy: 'sync', - glutFullScreen__deps: ['$GLUT'], glutFullScreen: () => { var canvas = Browser.getCanvas(); GLUT.windowWidth = canvas.width; @@ -627,7 +619,6 @@ var LibraryGLUT = { glutSwapBuffers: () => {}, glutPostRedisplay__proxy: 'sync', - glutPostRedisplay__deps: ['$MainLoop'], glutPostRedisplay: () => { if (GLUT.displayFunc && !GLUT.requestedAnimationFrame) { GLUT.requestedAnimationFrame = true; @@ -639,7 +630,6 @@ var LibraryGLUT = { }, glutMainLoop__proxy: 'sync', - glutMainLoop__deps: ['$GLUT', 'glutPostRedisplay'], glutMainLoop: () => { // Do an initial resize, since there's no window resize event on startup GLUT.onResize(); @@ -649,5 +639,4 @@ var LibraryGLUT = { }; -autoAddDeps(LibraryGLUT, '$GLUT'); addToLibrary(LibraryGLUT); diff --git a/src/lib/libhtml5.js b/src/lib/libhtml5.js index f9512c5ee56a0..2d7b932f390b1 100644 --- a/src/lib/libhtml5.js +++ b/src/lib/libhtml5.js @@ -8,9 +8,6 @@ var LibraryHTML5 = { $JSEvents__deps: [ #if PTHREADS '_emscripten_run_callback_on_thread', -#endif -#if EXIT_RUNTIME - '$addOnExit', #endif ], $JSEvents: { @@ -273,7 +270,7 @@ var LibraryHTML5 = { }, $registerKeyEventCallback__noleakcheck: true, - $registerKeyEventCallback__deps: ['$JSEvents', '$findEventTarget', '$stringToUTF8', 'malloc'], + $registerKeyEventCallback__deps: ['malloc'], $registerKeyEventCallback: (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) => { #if PTHREADS targetThread = JSEvents.getTargetThreadForEventCallback(targetThread); @@ -349,7 +346,6 @@ var LibraryHTML5 = { }, // Find a DOM element with the given ID, or null if none is found. - $findEventTarget__deps: ['$maybeCStringToJsString', '$specialHTMLTargets'], $findEventTarget: (target) => { target = maybeCStringToJsString(target); #if ENVIRONMENT_MAY_BE_WORKER || ENVIRONMENT_MAY_BE_NODE @@ -361,7 +357,6 @@ var LibraryHTML5 = { }, #if OFFSCREENCANVAS_SUPPORT - $findCanvasEventTarget__deps: ['$GL', '$maybeCStringToJsString', '$specialHTMLTargets'], $findCanvasEventTarget: (target) => { target = maybeCStringToJsString(target); @@ -395,7 +390,6 @@ var LibraryHTML5 = { #else // Find a DOM element with the given ID, or null if none is found. - $findEventTarget__deps: ['$specialHTMLTargets'], $findEventTarget: (target) => { #if ASSERTIONS warnOnce('Rules for selecting event targets in HTML5 API are changing: instead of using document.getElementById() that only can refer to elements by their DOM ID, new event target selection mechanism uses the more flexible function document.querySelector() that can look up element names, classes, and complex CSS selectors. Build with -sDISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR to change to the new lookup rules. See https://github.com/emscripten-core/emscripten/pull/7977 for more details.'); @@ -419,7 +413,6 @@ var LibraryHTML5 = { }, // Like findEventTarget, but looks for OffscreenCanvas elements first - $findCanvasEventTarget__deps: ['$findEventTarget'], $findCanvasEventTarget: (target) => { if (typeof target === 'number') target = UTF8ToString(target); if (!target || target === '#canvas') { @@ -432,7 +425,6 @@ var LibraryHTML5 = { #endif emscripten_html5_remove_event_listener__proxy: 'sync', - emscripten_html5_remove_event_listener__deps: ['$JSEvents', '$findEventTarget'], emscripten_html5_remove_event_listener: (target, userData, eventTypeId, callback) => { var eventHandler = { target: findEventTarget(target), @@ -444,30 +436,25 @@ var LibraryHTML5 = { }, emscripten_set_keypress_callback_on_thread__proxy: 'sync', - emscripten_set_keypress_callback_on_thread__deps: ['$registerKeyEventCallback'], emscripten_set_keypress_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerKeyEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_KEYPRESS }}}, 'keypress', targetThread), emscripten_set_keydown_callback_on_thread__proxy: 'sync', - emscripten_set_keydown_callback_on_thread__deps: ['$registerKeyEventCallback'], emscripten_set_keydown_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerKeyEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_KEYDOWN }}}, 'keydown', targetThread), emscripten_set_keyup_callback_on_thread__proxy: 'sync', - emscripten_set_keyup_callback_on_thread__deps: ['$registerKeyEventCallback'], emscripten_set_keyup_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerKeyEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_KEYUP }}}, 'keyup', targetThread), // Outline access to function .getBoundingClientRect() since it is a long string. Closure compiler does not outline access to it by itself, but it can inline access if // there is only one caller to this function. - $getBoundingClientRect__deps: ['$specialHTMLTargets'], $getBoundingClientRect: (e) => specialHTMLTargets.indexOf(e) < 0 ? e.getBoundingClientRect() : {'left':0,'top':0}, // Copies mouse event data from the given JS mouse event 'e' to the specified Emscripten mouse event structure in the HEAP. // eventStruct: the structure to populate. // e: The JS mouse event to read data from. // target: Specifies a target DOM element that will be used as the reference to populate targetX and targetY parameters. - $fillMouseEventData__deps: ['$getBoundingClientRect'], $fillMouseEventData: (eventStruct, e, target) => { #if ASSERTIONS assert(eventStruct % 4 == 0); @@ -504,7 +491,7 @@ var LibraryHTML5 = { }, $registerMouseEventCallback__noleakcheck: true, - $registerMouseEventCallback__deps: ['$JSEvents', '$fillMouseEventData', '$findEventTarget', 'malloc'], + $registerMouseEventCallback__deps: ['malloc'], $registerMouseEventCallback: (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) => { #if PTHREADS targetThread = JSEvents.getTargetThreadForEventCallback(targetThread); @@ -541,52 +528,42 @@ var LibraryHTML5 = { }, emscripten_set_click_callback_on_thread__proxy: 'sync', - emscripten_set_click_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_click_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_CLICK }}}, 'click', targetThread), emscripten_set_mousedown_callback_on_thread__proxy: 'sync', - emscripten_set_mousedown_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_mousedown_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSEDOWN }}}, 'mousedown', targetThread), emscripten_set_mouseup_callback_on_thread__proxy: 'sync', - emscripten_set_mouseup_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_mouseup_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSEUP }}}, 'mouseup', targetThread), emscripten_set_dblclick_callback_on_thread__proxy: 'sync', - emscripten_set_dblclick_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_dblclick_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_DBLCLICK }}}, 'dblclick', targetThread), emscripten_set_mousemove_callback_on_thread__proxy: 'sync', - emscripten_set_mousemove_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_mousemove_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSEMOVE }}}, 'mousemove', targetThread), emscripten_set_mouseenter_callback_on_thread__proxy: 'sync', - emscripten_set_mouseenter_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_mouseenter_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSEENTER }}}, 'mouseenter', targetThread), emscripten_set_mouseleave_callback_on_thread__proxy: 'sync', - emscripten_set_mouseleave_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_mouseleave_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSELEAVE }}}, 'mouseleave', targetThread), emscripten_set_mouseover_callback_on_thread__proxy: 'sync', - emscripten_set_mouseover_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_mouseover_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSEOVER }}}, 'mouseover', targetThread), emscripten_set_mouseout_callback_on_thread__proxy: 'sync', - emscripten_set_mouseout_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_mouseout_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_MOUSEOUT }}}, 'mouseout', targetThread), emscripten_set_contextmenu_callback_on_thread__proxy: 'sync', - emscripten_set_contextmenu_callback_on_thread__deps: ['$registerMouseEventCallback'], emscripten_set_contextmenu_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerMouseEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_CONTEXTMENU }}}, 'contextmenu', targetThread), @@ -596,11 +573,10 @@ var LibraryHTML5 = { // handler to any of the mouse function. _emscripten_get_last_mouse_event__proxy: 'sync', _emscripten_get_last_mouse_event__internal: true, - _emscripten_get_last_mouse_event__deps: ['$JSEvents'], _emscripten_get_last_mouse_event: () => JSEvents.mouseEvent, $registerWheelEventCallback__noleakcheck: true, - $registerWheelEventCallback__deps: ['$JSEvents', '$fillMouseEventData', 'malloc'], + $registerWheelEventCallback__deps: ['malloc'], $registerWheelEventCallback: (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) => { #if PTHREADS targetThread = JSEvents.getTargetThreadForEventCallback(targetThread); @@ -639,7 +615,6 @@ var LibraryHTML5 = { }, emscripten_set_wheel_callback_on_thread__proxy: 'sync', - emscripten_set_wheel_callback_on_thread__deps: ['$registerWheelEventCallback', '$findEventTarget'], emscripten_set_wheel_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => { target = findEventTarget(target); if (!target) return {{{ cDefs.EMSCRIPTEN_RESULT_UNKNOWN_TARGET }}}; @@ -651,7 +626,7 @@ var LibraryHTML5 = { }, $registerUiEventCallback__noleakcheck: true, - $registerUiEventCallback__deps: ['$JSEvents', '$findEventTarget', 'malloc'], + $registerUiEventCallback__deps: ['malloc'], $registerUiEventCallback: (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) => { #if PTHREADS targetThread = JSEvents.getTargetThreadForEventCallback(targetThread); @@ -713,17 +688,15 @@ var LibraryHTML5 = { }, emscripten_set_resize_callback_on_thread__proxy: 'sync', - emscripten_set_resize_callback_on_thread__deps: ['$registerUiEventCallback'], emscripten_set_resize_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerUiEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_RESIZE }}}, 'resize', targetThread), emscripten_set_scroll_callback_on_thread__proxy: 'sync', - emscripten_set_scroll_callback_on_thread__deps: ['$registerUiEventCallback'], emscripten_set_scroll_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerUiEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_SCROLL }}}, 'scroll', targetThread), $registerFocusEventCallback__noleakcheck: true, - $registerFocusEventCallback__deps: ['$JSEvents', '$findEventTarget', 'malloc', '$stringToUTF8'], + $registerFocusEventCallback__deps: ['malloc'], $registerFocusEventCallback: (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) => { #if PTHREADS targetThread = JSEvents.getTargetThreadForEventCallback(targetThread); @@ -759,22 +732,18 @@ var LibraryHTML5 = { }, emscripten_set_blur_callback_on_thread__proxy: 'sync', - emscripten_set_blur_callback_on_thread__deps: ['$registerFocusEventCallback'], emscripten_set_blur_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerFocusEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_BLUR }}}, 'blur', targetThread), emscripten_set_focus_callback_on_thread__proxy: 'sync', - emscripten_set_focus_callback_on_thread__deps: ['$registerFocusEventCallback'], emscripten_set_focus_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerFocusEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_FOCUS }}}, 'focus', targetThread), emscripten_set_focusin_callback_on_thread__proxy: 'sync', - emscripten_set_focusin_callback_on_thread__deps: ['$registerFocusEventCallback'], emscripten_set_focusin_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerFocusEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_FOCUSIN }}}, 'focusin', targetThread), emscripten_set_focusout_callback_on_thread__proxy: 'sync', - emscripten_set_focusout_callback_on_thread__deps: ['$registerFocusEventCallback'], emscripten_set_focusout_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerFocusEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_FOCUSOUT }}}, 'focusout', targetThread), @@ -786,7 +755,6 @@ var LibraryHTML5 = { }, $registerDeviceOrientationEventCallback__noleakcheck: true, - $registerDeviceOrientationEventCallback__deps: ['$JSEvents', '$fillDeviceOrientationEventData', '$findEventTarget'], $registerDeviceOrientationEventCallback: (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) => { #if PTHREADS targetThread = JSEvents.getTargetThreadForEventCallback(targetThread); @@ -818,7 +786,6 @@ var LibraryHTML5 = { }, emscripten_set_deviceorientation_callback_on_thread__proxy: 'sync', - emscripten_set_deviceorientation_callback_on_thread__deps: ['$registerDeviceOrientationEventCallback'], emscripten_set_deviceorientation_callback_on_thread: (userData, useCapture, callbackfunc, targetThread) => { return registerDeviceOrientationEventCallback({{{ cDefs.EMSCRIPTEN_EVENT_TARGET_WINDOW }}}, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_DEVICEORIENTATION }}}, 'deviceorientation', targetThread); }, @@ -829,7 +796,6 @@ var LibraryHTML5 = { // no-op function as an event handler. _emscripten_get_last_deviceorientation_event__proxy: 'sync', _emscripten_get_last_deviceorientation_event__internal: true, - _emscripten_get_last_deviceorientation_event__deps: ['$JSEvents'], _emscripten_get_last_deviceorientation_event: () => JSEvents.deviceOrientationEvent, $fillDeviceMotionEventData: (eventStruct, e, target) => { @@ -853,7 +819,7 @@ var LibraryHTML5 = { }, $registerDeviceMotionEventCallback__noleakcheck: true, - $registerDeviceMotionEventCallback__deps: ['$JSEvents', '$fillDeviceMotionEventData', '$findEventTarget', 'malloc'], + $registerDeviceMotionEventCallback__deps: ['malloc'], $registerDeviceMotionEventCallback: (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) => { #if PTHREADS targetThread = JSEvents.getTargetThreadForEventCallback(targetThread); @@ -885,7 +851,6 @@ var LibraryHTML5 = { }, emscripten_set_devicemotion_callback_on_thread__proxy: 'sync', - emscripten_set_devicemotion_callback_on_thread__deps: ['$registerDeviceMotionEventCallback'], emscripten_set_devicemotion_callback_on_thread: (userData, useCapture, callbackfunc, targetThread) => registerDeviceMotionEventCallback({{{ cDefs.EMSCRIPTEN_EVENT_TARGET_WINDOW }}}, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_DEVICEMOTION }}}, 'devicemotion', targetThread), @@ -895,12 +860,10 @@ var LibraryHTML5 = { // no-op function as an event handler. _emscripten_get_last_devicemotion_event__proxy: 'sync', _emscripten_get_last_devicemotion_event__internal: true, - _emscripten_get_last_devicemotion_event__deps: ['$JSEvents'], _emscripten_get_last_devicemotion_event: () => JSEvents.deviceMotionEvent, $screenOrientation: () => window.screen?.orientation, - $fillOrientationChangeEventData__deps: ['$screenOrientation'], $fillOrientationChangeEventData: (eventStruct) => { // OrientationType enum var orientationsType1 = ['portrait-primary', 'portrait-secondary', 'landscape-primary', 'landscape-secondary']; @@ -932,7 +895,7 @@ var LibraryHTML5 = { }, $registerOrientationChangeEventCallback__noleakcheck: true, - $registerOrientationChangeEventCallback__deps: ['$JSEvents', '$fillOrientationChangeEventData', 'malloc'], + $registerOrientationChangeEventCallback__deps: ['malloc'], $registerOrientationChangeEventCallback: (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) => { #if PTHREADS targetThread = JSEvents.getTargetThreadForEventCallback(targetThread); @@ -964,14 +927,12 @@ var LibraryHTML5 = { }, emscripten_set_orientationchange_callback_on_thread__proxy: 'sync', - emscripten_set_orientationchange_callback_on_thread__deps: ['$registerOrientationChangeEventCallback'], emscripten_set_orientationchange_callback_on_thread: (userData, useCapture, callbackfunc, targetThread) => { if (!window.screen || !screen.orientation) return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; return registerOrientationChangeEventCallback(screen.orientation, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_ORIENTATIONCHANGE }}}, 'change', targetThread); }, emscripten_get_orientation_status__proxy: 'sync', - emscripten_get_orientation_status__deps: ['$fillOrientationChangeEventData', '$screenOrientation'], emscripten_get_orientation_status: (orientationChangeEvent) => { if (!screenOrientation()) { return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; @@ -1009,7 +970,6 @@ var LibraryHTML5 = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - $fillFullscreenChangeEventData__deps: ['$JSEvents', '$stringToUTF8', '$getFullscreenElement'], $fillFullscreenChangeEventData: (eventStruct) => { var fullscreenElement = getFullscreenElement(); var isFullscreen = !!fullscreenElement; @@ -1034,7 +994,7 @@ var LibraryHTML5 = { }, $registerFullscreenChangeEventCallback__noleakcheck: true, - $registerFullscreenChangeEventCallback__deps: ['$JSEvents', '$fillFullscreenChangeEventData', 'malloc'], + $registerFullscreenChangeEventCallback__deps: ['malloc'], $registerFullscreenChangeEventCallback: (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) => { #if PTHREADS targetThread = JSEvents.getTargetThreadForEventCallback(targetThread); @@ -1066,11 +1026,6 @@ var LibraryHTML5 = { }, emscripten_set_fullscreenchange_callback_on_thread__proxy: 'sync', - emscripten_set_fullscreenchange_callback_on_thread__deps: ['$JSEvents', '$registerFullscreenChangeEventCallback', '$findEventTarget', -#if !DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR - '$specialHTMLTargets' -#endif - ], emscripten_set_fullscreenchange_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => { if (!JSEvents.fullscreenEnabled()) return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; #if DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR @@ -1089,7 +1044,6 @@ var LibraryHTML5 = { }, emscripten_get_fullscreen_status__proxy: 'sync', - emscripten_get_fullscreen_status__deps: ['$JSEvents', '$fillFullscreenChangeEventData'], emscripten_get_fullscreen_status: (fullscreenStatus) => { if (!JSEvents.fullscreenEnabled()) return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; fillFullscreenChangeEventData(fullscreenStatus); @@ -1109,7 +1063,6 @@ var LibraryHTML5 = { } }, - $JSEvents_requestFullscreen__deps: ['$JSEvents', '$JSEvents_resizeCanvasForFullscreen', '$callCanvasResizedCallback'], $JSEvents_requestFullscreen: (target, strategy) => { // EMSCRIPTEN_FULLSCREEN_SCALE_DEFAULT + EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_NONE is a mode where no extra logic is performed to the DOM elements. if (strategy.scaleMode != {{{ cDefs.EMSCRIPTEN_FULLSCREEN_SCALE_DEFAULT }}} || strategy.canvasResolutionScaleMode != {{{ cDefs.EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_NONE }}}) { @@ -1133,7 +1086,6 @@ var LibraryHTML5 = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - $JSEvents_resizeCanvasForFullscreen__deps: ['$registerRestoreOldStyle', '$getCanvasElementSize', '$setLetterbox', '$setCanvasElementSize', '$getBoundingClientRect'], $JSEvents_resizeCanvasForFullscreen: (target, strategy) => { var restoreOldStyle = registerRestoreOldStyle(target); var cssWidth = strategy.softFullscreen ? innerWidth : screen.width; @@ -1191,7 +1143,6 @@ var LibraryHTML5 = { return restoreOldStyle; }, - $registerRestoreOldStyle__deps: ['$getCanvasElementSize', '$setCanvasElementSize', '$currentFullscreenStrategy', '$callCanvasResizedCallback'], $registerRestoreOldStyle: (canvas) => { var canvasSize = getCanvasElementSize(canvas); var oldWidth = canvasSize[0]; @@ -1294,7 +1245,6 @@ var LibraryHTML5 = { $currentFullscreenStrategy: 0, $restoreOldWindowedStyle: null, - $softFullscreenResizeWebGLRenderTarget__deps: ['$setLetterbox', '$currentFullscreenStrategy', '$getCanvasElementSize', '$setCanvasElementSize', '$jstoi_q', '$callCanvasResizedCallback'], $softFullscreenResizeWebGLRenderTarget: () => { var dpr = devicePixelRatio; var inHiDPIFullscreenMode = currentFullscreenStrategy.canvasResolutionScaleMode == {{{ cDefs.EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_HIDEF }}}; @@ -1350,7 +1300,6 @@ var LibraryHTML5 = { }, // https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode - $doRequestFullscreen__deps: ['$JSEvents', '$JSEvents_requestFullscreen', '$findEventTarget'], $doRequestFullscreen: (target, strategy) => { if (!JSEvents.fullscreenEnabled()) return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; #if !DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR @@ -1384,7 +1333,6 @@ var LibraryHTML5 = { return JSEvents_requestFullscreen(target, strategy); }, - emscripten_request_fullscreen__deps: ['$doRequestFullscreen'], emscripten_request_fullscreen__proxy: 'sync', emscripten_request_fullscreen: (target, deferUntilInEventHandler) => { var strategy = { @@ -1400,7 +1348,6 @@ var LibraryHTML5 = { return doRequestFullscreen(target, strategy); }, - emscripten_request_fullscreen_strategy__deps: ['$doRequestFullscreen'], emscripten_request_fullscreen_strategy__proxy: 'sync', emscripten_request_fullscreen_strategy: (target, deferUntilInEventHandler, fullscreenStrategy) => { var strategy = { @@ -1420,11 +1367,6 @@ var LibraryHTML5 = { return doRequestFullscreen(target, strategy); }, - emscripten_enter_soft_fullscreen__deps: [ -#if PTHREADS - '$JSEvents', -#endif - '$hideEverythingExceptGivenElement', '$restoreOldWindowedStyle', '$restoreHiddenElements', '$currentFullscreenStrategy', '$softFullscreenResizeWebGLRenderTarget', '$JSEvents_resizeCanvasForFullscreen', '$findEventTarget', '$callCanvasResizedCallback'], emscripten_enter_soft_fullscreen__proxy: 'sync', emscripten_enter_soft_fullscreen: (target, fullscreenStrategy) => { #if !DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR @@ -1470,7 +1412,6 @@ var LibraryHTML5 = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - emscripten_exit_soft_fullscreen__deps: ['$restoreOldWindowedStyle'], emscripten_exit_soft_fullscreen__proxy: 'sync', emscripten_exit_soft_fullscreen: () => { restoreOldWindowedStyle?.(); @@ -1479,13 +1420,6 @@ var LibraryHTML5 = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - emscripten_exit_fullscreen__deps: [ - '$JSEvents', - '$specialHTMLTargets', -#if HTML5_SUPPORT_DEFERRING_USER_SENSITIVE_REQUESTS - '$JSEvents_requestFullscreen', -#endif - ], emscripten_exit_fullscreen__proxy: 'sync', emscripten_exit_fullscreen: () => { if (!JSEvents.fullscreenEnabled()) return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; @@ -1508,7 +1442,6 @@ var LibraryHTML5 = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - $fillPointerlockChangeEventData__deps: ['$JSEvents', '$stringToUTF8'], $fillPointerlockChangeEventData: (eventStruct) => { var pointerLockElement = document.pointerLockElement; var isPointerlocked = !!pointerLockElement; @@ -1522,7 +1455,7 @@ var LibraryHTML5 = { }, $registerPointerlockChangeEventCallback__noleakcheck: true, - $registerPointerlockChangeEventCallback__deps: ['$JSEvents', '$fillPointerlockChangeEventData', 'malloc'], + $registerPointerlockChangeEventCallback__deps: ['malloc'], $registerPointerlockChangeEventCallback: (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) => { #if PTHREADS targetThread = JSEvents.getTargetThreadForEventCallback(targetThread); @@ -1554,11 +1487,6 @@ var LibraryHTML5 = { }, emscripten_set_pointerlockchange_callback_on_thread__proxy: 'sync', - emscripten_set_pointerlockchange_callback_on_thread__deps: ['$registerPointerlockChangeEventCallback', '$findEventTarget', -#if !DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR - '$specialHTMLTargets' -#endif - ], emscripten_set_pointerlockchange_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => { if (!document.body?.requestPointerLock) { return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; @@ -1573,7 +1501,6 @@ var LibraryHTML5 = { return registerPointerlockChangeEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_POINTERLOCKCHANGE }}}, 'pointerlockchange', targetThread); }, - $registerPointerlockErrorEventCallback__deps: ['$JSEvents'], $registerPointerlockErrorEventCallback: (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) => { #if PTHREADS targetThread = JSEvents.getTargetThreadForEventCallback(targetThread); @@ -1600,11 +1527,6 @@ var LibraryHTML5 = { }, emscripten_set_pointerlockerror_callback_on_thread__proxy: 'sync', - emscripten_set_pointerlockerror_callback_on_thread__deps: ['$registerPointerlockErrorEventCallback', '$findEventTarget', -#if !DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR - '$specialHTMLTargets' -#endif - ], emscripten_set_pointerlockerror_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => { if (!document.body?.requestPointerLock) { return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; @@ -1621,7 +1543,6 @@ var LibraryHTML5 = { }, emscripten_get_pointerlock_status__proxy: 'sync', - emscripten_get_pointerlock_status__deps: ['$fillPointerlockChangeEventData'], emscripten_get_pointerlock_status: (pointerlockStatus) => { if (pointerlockStatus) fillPointerlockChangeEventData(pointerlockStatus); if (!document.body?.requestPointerLock) { @@ -1645,11 +1566,6 @@ var LibraryHTML5 = { }, emscripten_request_pointerlock__proxy: 'sync', - emscripten_request_pointerlock__deps: ['$requestPointerLock', '$findEventTarget', -#if HTML5_SUPPORT_DEFERRING_USER_SENSITIVE_REQUESTS - '$JSEvents', -#endif - ], emscripten_request_pointerlock: (target, deferUntilInEventHandler) => { #if !DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR target ||= '#canvas'; @@ -1675,9 +1591,6 @@ var LibraryHTML5 = { return requestPointerLock(target); }, -#if HTML5_SUPPORT_DEFERRING_USER_SENSITIVE_REQUESTS - emscripten_exit_pointerlock__deps: ['$JSEvents', '$requestPointerLock'], -#endif emscripten_exit_pointerlock__proxy: 'sync', emscripten_exit_pointerlock: () => { #if HTML5_SUPPORT_DEFERRING_USER_SENSITIVE_REQUESTS @@ -1720,7 +1633,7 @@ var LibraryHTML5 = { }, $registerVisibilityChangeEventCallback__noleakcheck: true, - $registerVisibilityChangeEventCallback__deps: ['$JSEvents', '$fillVisibilityChangeEventData', 'malloc'], + $registerVisibilityChangeEventCallback__deps: ['malloc'], $registerVisibilityChangeEventCallback: (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) => { #if PTHREADS targetThread = JSEvents.getTargetThreadForEventCallback(targetThread); @@ -1752,7 +1665,6 @@ var LibraryHTML5 = { }, emscripten_set_visibilitychange_callback_on_thread__proxy: 'sync', - emscripten_set_visibilitychange_callback_on_thread__deps: ['$registerVisibilityChangeEventCallback', '$specialHTMLTargets'], emscripten_set_visibilitychange_callback_on_thread: (userData, useCapture, callbackfunc, targetThread) => { #if ENVIRONMENT_MAY_BE_WORKER || ENVIRONMENT_MAY_BE_NODE || ENVIRONMENT_MAY_BE_SHELL if (!specialHTMLTargets[{{{ cDefs.EMSCRIPTEN_EVENT_TARGET_DOCUMENT }}}]) { @@ -1763,7 +1675,6 @@ var LibraryHTML5 = { }, emscripten_get_visibility_status__proxy: 'sync', - emscripten_get_visibility_status__deps: ['$fillVisibilityChangeEventData'], emscripten_get_visibility_status: (visibilityStatus) => { if (typeof document.visibilityState === 'undefined' && typeof document.hidden === 'undefined') { return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; @@ -1773,7 +1684,7 @@ var LibraryHTML5 = { }, $registerTouchEventCallback__noleakcheck: true, - $registerTouchEventCallback__deps: ['$JSEvents', '$findEventTarget', '$getBoundingClientRect', 'malloc'], + $registerTouchEventCallback__deps: ['malloc'], $registerTouchEventCallback: (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) => { #if PTHREADS targetThread = JSEvents.getTargetThreadForEventCallback(targetThread); @@ -1869,26 +1780,21 @@ var LibraryHTML5 = { }, emscripten_set_touchstart_callback_on_thread__proxy: 'sync', - emscripten_set_touchstart_callback_on_thread__deps: ['$registerTouchEventCallback'], emscripten_set_touchstart_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerTouchEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_TOUCHSTART }}}, 'touchstart', targetThread), emscripten_set_touchend_callback_on_thread__proxy: 'sync', - emscripten_set_touchend_callback_on_thread__deps: ['$registerTouchEventCallback'], emscripten_set_touchend_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerTouchEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_TOUCHEND }}}, 'touchend', targetThread), emscripten_set_touchmove_callback_on_thread__proxy: 'sync', - emscripten_set_touchmove_callback_on_thread__deps: ['$registerTouchEventCallback'], emscripten_set_touchmove_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerTouchEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_TOUCHMOVE }}}, 'touchmove', targetThread), emscripten_set_touchcancel_callback_on_thread__proxy: 'sync', - emscripten_set_touchcancel_callback_on_thread__deps: ['$registerTouchEventCallback'], emscripten_set_touchcancel_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => registerTouchEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_TOUCHCANCEL }}}, 'touchcancel', targetThread), - $fillGamepadEventData__deps: ['$stringToUTF8'], $fillGamepadEventData: (eventStruct, e) => { {{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenGamepadEvent.timestamp, 'e.timestamp', 'double') }}}; for (var i = 0; i < e.axes.length; ++i) { @@ -1907,7 +1813,7 @@ var LibraryHTML5 = { }, $registerGamepadEventCallback__noleakcheck: true, - $registerGamepadEventCallback__deps: ['$JSEvents', '$fillGamepadEventData', '$findEventTarget', 'malloc'], + $registerGamepadEventCallback__deps: ['malloc'], $registerGamepadEventCallback: (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) => { #if PTHREADS targetThread = JSEvents.getTargetThreadForEventCallback(targetThread); @@ -1942,14 +1848,12 @@ var LibraryHTML5 = { }, emscripten_set_gamepadconnected_callback_on_thread__proxy: 'sync', - emscripten_set_gamepadconnected_callback_on_thread__deps: ['$registerGamepadEventCallback', 'emscripten_sample_gamepad_data'], emscripten_set_gamepadconnected_callback_on_thread: (userData, useCapture, callbackfunc, targetThread) => { if (_emscripten_sample_gamepad_data()) return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; return registerGamepadEventCallback({{{ cDefs.EMSCRIPTEN_EVENT_TARGET_WINDOW }}}, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_GAMEPADCONNECTED }}}, 'gamepadconnected', targetThread); }, emscripten_set_gamepaddisconnected_callback_on_thread__proxy: 'sync', - emscripten_set_gamepaddisconnected_callback_on_thread__deps: ['$registerGamepadEventCallback', 'emscripten_sample_gamepad_data'], emscripten_set_gamepaddisconnected_callback_on_thread: (userData, useCapture, callbackfunc, targetThread) => { if (_emscripten_sample_gamepad_data()) return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; return registerGamepadEventCallback({{{ cDefs.EMSCRIPTEN_EVENT_TARGET_WINDOW }}}, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_GAMEPADDISCONNECTED }}}, 'gamepaddisconnected', targetThread); @@ -1957,7 +1861,6 @@ var LibraryHTML5 = { emscripten_sample_gamepad_data__docs: '/** @suppress {checkTypes} */', // We assign null to navigator.getGamepads, which Closure would like to complain about. emscripten_sample_gamepad_data__proxy: 'sync', - emscripten_sample_gamepad_data__deps: ['$JSEvents'], emscripten_sample_gamepad_data: () => { try { if (navigator.getGamepads) return (JSEvents.lastGamepadState = navigator.getGamepads()) @@ -1972,7 +1875,6 @@ var LibraryHTML5 = { }, emscripten_get_num_gamepads__proxy: 'sync', - emscripten_get_num_gamepads__deps: ['$JSEvents'], emscripten_get_num_gamepads: () => { #if ASSERTIONS assert(JSEvents.lastGamepadState, 'emscripten_get_num_gamepads() called before emscripten_sample_gamepad_data()'); @@ -1983,7 +1885,6 @@ var LibraryHTML5 = { }, emscripten_get_gamepad_status__proxy: 'sync', - emscripten_get_gamepad_status__deps: ['$JSEvents', '$fillGamepadEventData'], emscripten_get_gamepad_status: (index, gamepadState) => { #if ASSERTIONS assert(JSEvents.lastGamepadState, 'emscripten_get_gamepad_status() called before emscripten_sample_gamepad_data()'); @@ -2001,7 +1902,6 @@ var LibraryHTML5 = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - $registerBeforeUnloadEventCallback__deps: ['$JSEvents', '$findEventTarget'], $registerBeforeUnloadEventCallback: (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) => { var beforeUnloadEventHandlerFunc = (e) => { // Note: This is always called on the main browser thread, since it needs synchronously return a value! @@ -2030,7 +1930,6 @@ var LibraryHTML5 = { }, emscripten_set_beforeunload_callback_on_thread__proxy: 'sync', - emscripten_set_beforeunload_callback_on_thread__deps: ['$registerBeforeUnloadEventCallback'], emscripten_set_beforeunload_callback_on_thread: (userData, callbackfunc, targetThread) => { if (typeof onbeforeunload === 'undefined') return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; // beforeunload callback can only be registered on the main browser thread, because the page will go away immediately after returning from the handler, @@ -2050,7 +1949,7 @@ var LibraryHTML5 = { $hasBatteryAPI: () => globalThis.navigator?.getBattery, $registerBatteryEventCallback__noleakcheck: true, - $registerBatteryEventCallback__deps: ['$JSEvents', '$fillBatteryEventData', 'malloc'], + $registerBatteryEventCallback__deps: ['malloc'], $registerBatteryEventCallback: (battery, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) => { #if PTHREADS targetThread = JSEvents.getTargetThreadForEventCallback(targetThread); @@ -2082,7 +1981,6 @@ var LibraryHTML5 = { }, emscripten_set_batterychargingchange_callback_on_thread__proxy: 'sync', - emscripten_set_batterychargingchange_callback_on_thread__deps: ['$registerBatteryEventCallback', '$hasBatteryAPI'], emscripten_set_batterychargingchange_callback_on_thread: (userData, callbackfunc, targetThread) => { if (!hasBatteryAPI()) return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; navigator.getBattery().then((b) => { @@ -2091,7 +1989,6 @@ var LibraryHTML5 = { }, emscripten_set_batterylevelchange_callback_on_thread__proxy: 'sync', - emscripten_set_batterylevelchange_callback_on_thread__deps: ['$registerBatteryEventCallback', '$hasBatteryAPI'], emscripten_set_batterylevelchange_callback_on_thread: (userData, callbackfunc, targetThread) => { if (!hasBatteryAPI()) return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; navigator.getBattery().then((b) => { @@ -2103,7 +2000,6 @@ var LibraryHTML5 = { $batteryManager__internal: true, emscripten_get_battery_status__proxy: 'sync', - emscripten_get_battery_status__deps: ['$fillBatteryEventData', '$hasBatteryAPI', '$batteryManager'], emscripten_get_battery_status: (batteryState) => { if (!hasBatteryAPI()) return {{{ cDefs.EMSCRIPTEN_RESULT_NOT_SUPPORTED }}}; if (!batteryManager) { @@ -2117,11 +2013,6 @@ var LibraryHTML5 = { }, #if PTHREADS - $setCanvasElementSizeCallingThread__deps: [ -#if OFFSCREENCANVAS_SUPPORT - '$setOffscreenCanvasSizeOnTargetThread', -#endif - '$findCanvasEventTarget'], $setCanvasElementSizeCallingThread: (target, width, height) => { var canvas = findCanvasEventTarget(target); if (!canvas) return {{{ cDefs.EMSCRIPTEN_RESULT_UNKNOWN_TARGET }}}; @@ -2180,7 +2071,7 @@ var LibraryHTML5 = { }, #if OFFSCREENCANVAS_SUPPORT - $setOffscreenCanvasSizeOnTargetThread__deps: ['$stringToNewUTF8', '_emscripten_set_offscreencanvas_size_on_thread'], + $setOffscreenCanvasSizeOnTargetThread__deps: ['_emscripten_set_offscreencanvas_size_on_thread'], $setOffscreenCanvasSizeOnTargetThread: (targetThread, targetCanvas, width, height) => { targetCanvas = targetCanvas ? UTF8ToString(targetCanvas) : ''; var targetCanvasPtr = 0; @@ -2192,10 +2083,8 @@ var LibraryHTML5 = { #endif $setCanvasElementSizeMainThread__proxy: 'sync', - $setCanvasElementSizeMainThread__deps: ['$setCanvasElementSizeCallingThread'], $setCanvasElementSizeMainThread: (target, width, height) => setCanvasElementSizeCallingThread(target, width, height), - emscripten_set_canvas_element_size__deps: ['$setCanvasElementSizeCallingThread', '$setCanvasElementSizeMainThread', '$findCanvasEventTarget'], emscripten_set_canvas_element_size: (target, width, height) => { #if GL_DEBUG dbg(`emscripten_set_canvas_element_size(target=${target},width=${width},height=${height}`); @@ -2207,7 +2096,6 @@ var LibraryHTML5 = { return setCanvasElementSizeMainThread(target, width, height); }, #else - emscripten_set_canvas_element_size__deps: ['$findCanvasEventTarget'], emscripten_set_canvas_element_size: (target, width, height) => { #if GL_DEBUG dbg(`emscripten_set_canvas_element_size(target=${target},width=${width},height=${height}`); @@ -2223,7 +2111,6 @@ var LibraryHTML5 = { }, #endif - $setCanvasElementSize__deps: ['emscripten_set_canvas_element_size', '$stackSave', '$stackRestore', '$stringToUTF8OnStack'], $setCanvasElementSize: (target, width, height) => { #if GL_DEBUG dbg(`setCanvasElementSize(target=${target},width=${width},height=${height}`); @@ -2242,7 +2129,6 @@ var LibraryHTML5 = { }, #if PTHREADS - $getCanvasSizeCallingThread__deps: ['$findCanvasEventTarget'], $getCanvasSizeCallingThread: (target, width, height) => { var canvas = findCanvasEventTarget(target); if (!canvas) return {{{ cDefs.EMSCRIPTEN_RESULT_UNKNOWN_TARGET }}}; @@ -2274,10 +2160,8 @@ var LibraryHTML5 = { }, $getCanvasSizeMainThread__proxy: 'sync', - $getCanvasSizeMainThread__deps: ['$getCanvasSizeCallingThread'], $getCanvasSizeMainThread: (target, width, height) => getCanvasSizeCallingThread(target, width, height), - emscripten_get_canvas_element_size__deps: ['$getCanvasSizeCallingThread', '$getCanvasSizeMainThread', '$findCanvasEventTarget'], emscripten_get_canvas_element_size: (target, width, height) => { var canvas = findCanvasEventTarget(target); if (canvas) { @@ -2286,7 +2170,6 @@ var LibraryHTML5 = { return getCanvasSizeMainThread(target, width, height); }, #else - emscripten_get_canvas_element_size__deps: ['$findCanvasEventTarget'], emscripten_get_canvas_element_size: (target, width, height) => { var canvas = findCanvasEventTarget(target); if (!canvas) return {{{ cDefs.EMSCRIPTEN_RESULT_UNKNOWN_TARGET }}}; @@ -2296,7 +2179,6 @@ var LibraryHTML5 = { #endif // JavaScript-friendly API, returns pair [width, height] - $getCanvasElementSize__deps: ['emscripten_get_canvas_element_size', '$stackSave', '$stackRestore', '$stringToUTF8OnStack'], $getCanvasElementSize: (target) => { var sp = stackSave(); var w = stackAlloc(8); @@ -2310,7 +2192,6 @@ var LibraryHTML5 = { }, emscripten_set_element_css_size__proxy: 'sync', - emscripten_set_element_css_size__deps: ['$findEventTarget'], emscripten_set_element_css_size: (target, width, height) => { #if DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR target = findEventTarget(target); @@ -2326,7 +2207,6 @@ var LibraryHTML5 = { }, emscripten_get_element_css_size__proxy: 'sync', - emscripten_get_element_css_size__deps: ['$findEventTarget', '$getBoundingClientRect'], emscripten_get_element_css_size: (target, width, height) => { #if DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR target = findEventTarget(target); @@ -2342,7 +2222,6 @@ var LibraryHTML5 = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - emscripten_html5_remove_all_event_listeners__deps: ['$JSEvents'], emscripten_html5_remove_all_event_listeners: () => JSEvents.removeAllEventListeners(), emscripten_request_animation_frame: (cb, userData) => diff --git a/src/lib/libhtml5_webgl.js b/src/lib/libhtml5_webgl.js index b3958e482b002..69d47ecfdc5e2 100644 --- a/src/lib/libhtml5_webgl.js +++ b/src/lib/libhtml5_webgl.js @@ -29,7 +29,6 @@ var LibraryHtml5WebGL = { // In offscreen framebuffer mode, we implement a proxied version of the // emscripten_webgl_create_context() function in JS. _emscripten_webgl_create_context_proxied__proxy: 'sync', - _emscripten_webgl_create_context_proxied__deps: ['_emscripten_webgl_do_create_context'], _emscripten_webgl_create_context_proxied: (target, attributes) => __emscripten_webgl_do_create_context(target, attributes), @@ -58,16 +57,9 @@ var LibraryHtml5WebGL = { });`, #endif - _emscripten_webgl_do_create_context__deps: [ #if OFFSCREENCANVAS_SUPPORT - '$registerPreMainLoop', - 'malloc', - 'emscripten_supports_offscreencanvas', + _emscripten_webgl_do_create_context__deps: ['$registerPreMainLoop', 'malloc'], #endif -#if PTHREADS && OFFSCREEN_FRAMEBUFFER - '_emscripten_webgl_create_context_proxied', -#endif - '$webglPowerPreferences', '$findCanvasEventTarget'], // This function performs proxying manually, depending on the style of context that is to be created. _emscripten_webgl_do_create_context: (target, attributes) => { #if ASSERTIONS @@ -304,7 +296,6 @@ var LibraryHtml5WebGL = { }, emscripten_webgl_get_context_attributes__proxy: 'sync_on_webgl_context_handle_thread', - emscripten_webgl_get_context_attributes__deps: ['$webglPowerPreferences'], emscripten_webgl_get_context_attributes: (c, a) => { if (!a) return {{{ cDefs.EMSCRIPTEN_RESULT_INVALID_PARAM }}}; c = GL.contexts[c]; @@ -339,23 +330,6 @@ var LibraryHtml5WebGL = { GL.deleteContext(contextHandle); }, - emscripten_webgl_enable_extension__deps: [ -#if GL_SUPPORT_SIMPLE_ENABLE_EXTENSIONS -#if MIN_WEBGL_VERSION == 1 - '$webgl_enable_ANGLE_instanced_arrays', - '$webgl_enable_OES_vertex_array_object', - '$webgl_enable_WEBGL_draw_buffers', -#endif -#if MAX_WEBGL_VERSION >= 2 - '$webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance', - '$webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance', -#endif - '$webgl_enable_EXT_polygon_offset_clamp', - '$webgl_enable_EXT_clip_control', - '$webgl_enable_WEBGL_polygon_mode', - '$webgl_enable_WEBGL_multi_draw', -#endif - ], emscripten_webgl_enable_extension__proxy: 'sync_on_webgl_context_handle_thread', emscripten_webgl_enable_extension: (contextHandle, extension) => { var context = GL.getContext(contextHandle); @@ -414,7 +388,6 @@ var LibraryHtml5WebGL = { #endif , - $registerWebGlEventCallback__deps: ['$JSEvents', '$findEventTarget'], $registerWebGlEventCallback: (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString, targetThread) => { #if PTHREADS targetThread = JSEvents.getTargetThreadForEventCallback(targetThread); @@ -445,14 +418,12 @@ var LibraryHtml5WebGL = { }, emscripten_set_webglcontextlost_callback_on_thread__proxy: 'sync', - emscripten_set_webglcontextlost_callback_on_thread__deps: ['$registerWebGlEventCallback'], emscripten_set_webglcontextlost_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => { registerWebGlEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_WEBGLCONTEXTLOST }}}, 'webglcontextlost', targetThread); return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, emscripten_set_webglcontextrestored_callback_on_thread__proxy: 'sync', - emscripten_set_webglcontextrestored_callback_on_thread__deps: ['$registerWebGlEventCallback'], emscripten_set_webglcontextrestored_callback_on_thread: (target, userData, useCapture, callbackfunc, targetThread) => { registerWebGlEventCallback(target, userData, useCapture, callbackfunc, {{{ cDefs.EMSCRIPTEN_EVENT_WEBGLCONTEXTRESTORED }}}, 'webglcontextrestored', targetThread); return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; @@ -463,7 +434,6 @@ var LibraryHtml5WebGL = { !GL.contexts[contextHandle] || GL.contexts[contextHandle].GLctx.isContextLost(), // No context ~> lost context. emscripten_webgl_get_supported_extensions__proxy: 'sync_on_current_webgl_context_thread', - emscripten_webgl_get_supported_extensions__deps: ['$stringToNewUTF8'], // Here we report the full list of extensions supported by WebGL rather than // using getEmscriptenSupportedExtensions which filters the list based on // what is has explicit support in. @@ -475,7 +445,6 @@ var LibraryHtml5WebGL = { GLctx.getProgramParameter(GL.programs[program], param), emscripten_webgl_get_program_info_log_utf8__proxy: 'sync_on_current_webgl_context_thread', - emscripten_webgl_get_program_info_log_utf8__deps: ['$stringToNewUTF8'], emscripten_webgl_get_program_info_log_utf8: (program) => stringToNewUTF8(GLctx.getProgramInfoLog(GL.programs[program])), @@ -484,12 +453,10 @@ var LibraryHtml5WebGL = { GLctx.getShaderParameter(GL.shaders[shader], param), emscripten_webgl_get_shader_info_log_utf8__proxy: 'sync_on_current_webgl_context_thread', - emscripten_webgl_get_shader_info_log_utf8__deps: ['$stringToNewUTF8'], emscripten_webgl_get_shader_info_log_utf8: (shader) => stringToNewUTF8(GLctx.getShaderInfoLog(GL.shaders[shader])), emscripten_webgl_get_shader_source_utf8__proxy: 'sync_on_current_webgl_context_thread', - emscripten_webgl_get_shader_source_utf8__deps: ['$stringToNewUTF8'], emscripten_webgl_get_shader_source_utf8: (shader) => stringToNewUTF8(GLctx.getShaderSource(GL.shaders[shader])), @@ -504,22 +471,18 @@ var LibraryHtml5WebGL = { }, emscripten_webgl_get_vertex_attrib_v__proxy: 'sync_on_current_webgl_context_thread', - emscripten_webgl_get_vertex_attrib_v__deps: ['$writeGLArray'], emscripten_webgl_get_vertex_attrib_v: (index, param, dst, dstLength, dstType) => writeGLArray(GLctx.getVertexAttrib(index, param), dst, dstLength, dstType), emscripten_webgl_get_uniform_d__proxy: 'sync_on_current_webgl_context_thread', - emscripten_webgl_get_uniform_d__deps: ['$webglGetProgramUniformLocation'], emscripten_webgl_get_uniform_d: (program, location) => GLctx.getUniform(GL.programs[program], webglGetProgramUniformLocation(GL.programs[program], location)), emscripten_webgl_get_uniform_v__proxy: 'sync_on_current_webgl_context_thread', - emscripten_webgl_get_uniform_v__deps: ['$writeGLArray', '$webglGetProgramUniformLocation'], emscripten_webgl_get_uniform_v: (program, location, dst, dstLength, dstType) => writeGLArray(GLctx.getUniform(GL.programs[program], webglGetProgramUniformLocation(GL.programs[program], location)), dst, dstLength, dstType), emscripten_webgl_get_parameter_v__proxy: 'sync_on_current_webgl_context_thread', - emscripten_webgl_get_parameter_v__deps: ['$writeGLArray'], emscripten_webgl_get_parameter_v: (param, dst, dstLength, dstType) => writeGLArray(GLctx.getParameter(param), dst, dstLength, dstType), @@ -532,12 +495,10 @@ var LibraryHtml5WebGL = { return obj?.name; }, - emscripten_webgl_get_parameter_utf8__deps: ['$stringToNewUTF8'], emscripten_webgl_get_parameter_utf8__proxy: 'sync_on_current_webgl_context_thread', emscripten_webgl_get_parameter_utf8: (param) => stringToNewUTF8(GLctx.getParameter(param)), emscripten_webgl_get_parameter_i64v__proxy: 'sync_on_current_webgl_context_thread', - emscripten_webgl_get_parameter_i64v__deps: ['$writeI53ToI64'], emscripten_webgl_get_parameter_i64v: (param, dst) => writeI53ToI64(dst, GLctx.getParameter(param)), }; @@ -586,9 +547,6 @@ function handleWebGLProxying(funcs) { funcs[i + '_main_thread'] = i + '_calling_thread'; funcs[i + '_main_thread__proxy'] = 'sync'; funcs[i + '_main_thread__sig'] = sig; - funcs[i + '__deps'] ??= []; - funcs[i + '__deps'].push(i + '_calling_thread'); - funcs[i + '__deps'].push(i + '_main_thread'); delete funcs[i + '__proxy']; const funcArgs = listOfNFunctionArgs(funcs[i]); const funcArgsString = funcArgs.join(); @@ -619,8 +577,4 @@ function handleWebGLProxying(funcs) { handleWebGLProxying(LibraryHtml5WebGL); -#if LibraryManager.has('libwebgl.js') -autoAddDeps(LibraryHtml5WebGL, '$GL'); -#endif - addToLibrary(LibraryHtml5WebGL); diff --git a/src/lib/libidbfs.js b/src/lib/libidbfs.js index 000f08899e711..1b2c15d4f5a78 100644 --- a/src/lib/libidbfs.js +++ b/src/lib/libidbfs.js @@ -5,7 +5,6 @@ */ addToLibrary({ - $IDBFS__deps: ['$FS', '$MEMFS', '$PATH'], $IDBFS__postset: () => addAtExit('IDBFS.quit();'), $IDBFS: { dbs: {}, diff --git a/src/lib/libidbstore.js b/src/lib/libidbstore.js index b2a9f058e5b13..724ffa08b6a56 100644 --- a/src/lib/libidbstore.js +++ b/src/lib/libidbstore.js @@ -15,7 +15,7 @@ var LibraryIDBStore = { // extra code; or you could implement a file b-tree using posix-compliant // filesystem on top. $IDBStore: IDBStore, - emscripten_idb_async_load__deps: ['$UTF8ToString', '$callUserCallback', 'malloc', 'free'], + emscripten_idb_async_load__deps: ['malloc', 'free'], emscripten_idb_async_load: (db, id, arg, onload, onerror) => { {{{ runtimeKeepalivePush() }}}; IDBStore.getFile(UTF8ToString(db), UTF8ToString(id), (error, byteArray) => { @@ -32,7 +32,6 @@ var LibraryIDBStore = { }); }); }, - emscripten_idb_async_store__deps: ['$UTF8ToString', '$callUserCallback'], emscripten_idb_async_store: (db, id, ptr, num, arg, onstore, onerror) => { // note that we copy the data here, as these are async operations - changes // to HEAPU8 meanwhile should not affect us! @@ -48,7 +47,6 @@ var LibraryIDBStore = { }); }); }, - emscripten_idb_async_delete__deps: ['$UTF8ToString', '$callUserCallback'], emscripten_idb_async_delete: (db, id, arg, ondelete, onerror) => { {{{ runtimeKeepalivePush() }}}; IDBStore.deleteFile(UTF8ToString(db), UTF8ToString(id), (error) => { @@ -62,7 +60,6 @@ var LibraryIDBStore = { }); }); }, - emscripten_idb_async_exists__deps: ['$UTF8ToString', '$callUserCallback'], emscripten_idb_async_exists: (db, id, arg, oncheck, onerror) => { {{{ runtimeKeepalivePush() }}}; IDBStore.existsFile(UTF8ToString(db), UTF8ToString(id), (error, exists) => { @@ -76,7 +73,6 @@ var LibraryIDBStore = { }); }); }, - emscripten_idb_async_clear__deps: ['$UTF8ToString', '$callUserCallback'], emscripten_idb_async_clear: (db, arg, onclear, onerror) => { {{{ runtimeKeepalivePush() }}}; IDBStore.clearStore(UTF8ToString(db), (error) => { @@ -163,5 +159,4 @@ var LibraryIDBStore = { #endif // ASYNCIFY }; -autoAddDeps(LibraryIDBStore, '$IDBStore'); addToLibrary(LibraryIDBStore); diff --git a/src/lib/libint53.js b/src/lib/libint53.js index 9c366711a9cc8..ee06b3eab08de 100644 --- a/src/lib/libint53.js +++ b/src/lib/libint53.js @@ -5,13 +5,6 @@ */ addToLibrary({ -#if ASSERTIONS - $writeI53ToI64__deps: ['$readI53FromI64', '$readI53FromU64' -#if MINIMAL_RUNTIME - , '$warnOnce' -#endif - ], -#endif // Writes the given JavaScript Number to the WebAssembly heap as a 64-bit integer variable. // If the given number is not in the range [-2^53, 2^53] (inclusive), then an unexpectedly // rounded or incorrect number can be written to the heap. ('garbage in, garbage out') @@ -31,7 +24,6 @@ addToLibrary({ // Same as writeI53ToI64, but if the double precision number does not fit within the // 64-bit number, the number is clamped to range [-2^63, 2^63-1]. - $writeI53ToI64Clamped__deps: ['$writeI53ToI64'], $writeI53ToI64Clamped: (ptr, num) => { if (num > 0x7FFFFFFFFFFFFFFF) { {{{ makeSetValue('ptr', 0, 0xFFFFFFFF, 'u32') }}}; @@ -45,7 +37,6 @@ addToLibrary({ }, // Like writeI53ToI64, but throws if the passed number is out of range of int64. - $writeI53ToI64Signaling__deps: ['$writeI53ToI64'], $writeI53ToI64Signaling: (ptr, num) => { if (num > 0x7FFFFFFFFFFFFFFF || num < -0x8000000000000000) { #if ASSERTIONS @@ -59,7 +50,6 @@ addToLibrary({ // Uint64 variant of writeI53ToI64Clamped. Writes the Number to a Uint64 variable on // the heap, clamping out of range values to range [0, 2^64-1]. - $writeI53ToU64Clamped__deps: ['$writeI53ToI64'], $writeI53ToU64Clamped: (ptr, num) => { if (num > 0xFFFFFFFFFFFFFFFF) { {{{ makeSetValue('ptr', 0, 0xFFFFFFFF, 'u32') }}}; @@ -73,7 +63,6 @@ addToLibrary({ }, // Like writeI53ToI64, but throws if the passed number is out of range of uint64. - $writeI53ToU64Signaling__deps: ['$writeI53ToI64'], $writeI53ToU64Signaling: (ptr, num) => { if (num < 0 || num > 0xFFFFFFFFFFFFFFFF) { #if ASSERTIONS @@ -136,7 +125,6 @@ addToLibrary({ // JS Number. This is used when we have an incoming i64 that we know is a // pointer or size_t and is expected to be within the int53 range. // Returns NaN if the incoming bigint is outside the range. - $bigintToI53Checked__deps: ['$INT53_MAX', '$INT53_MIN'], $bigintToI53Checked: (num) => (num < INT53_MIN || num > INT53_MAX) ? NaN : Number(num), #endif }); diff --git a/src/lib/liblegacy.js b/src/lib/liblegacy.js index f5b6a236c8d83..dc4f6e3dfdcca 100644 --- a/src/lib/liblegacy.js +++ b/src/lib/liblegacy.js @@ -22,7 +22,6 @@ legacyFuncs = { // in a maximum length that can be used to be secure from out of bounds // writes. $writeStringToMemory__docs: '/** @deprecated @param {boolean=} dontAddNull */', - $writeStringToMemory__deps: ['$lengthBytesUTF8', '$stringToUTF8'], $writeStringToMemory: (string, buffer, dontAddNull) => { warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!'); @@ -51,13 +50,11 @@ legacyFuncs = { if (!dontAddNull) {{{ makeSetValue('buffer', 0, 0, 'i8') }}}; }, - $allocateUTF8__deps: ['$stringToNewUTF8'], $allocateUTF8: (...args) => stringToNewUTF8(...args), - $allocateUTF8OnStack__deps: ['$stringToUTF8OnStack'], $allocateUTF8OnStack: (...args) => stringToUTF8OnStack(...args), #if LINK_AS_CXX - $demangle__deps: ['$withStackSave', '__cxa_demangle', 'free', '$stringToUTF8OnStack'], + $demangle__deps: ['__cxa_demangle', 'free'], $demangle: (func) => { // If demangle has failed before, stop demangling any further function names // This avoids an infinite recursion with malloc()->abort()->stackTrace()->demangle()->malloc()->... @@ -86,7 +83,6 @@ legacyFuncs = { }, #endif - $stackTrace__deps: ['$jsStackTrace'], $stackTrace: () => { var js = jsStackTrace(); #if expectToReceiveOnModule('extraStackTrace') @@ -105,14 +101,11 @@ legacyFuncs = { // to avoid breakage.) $jstoi_s: 'Number', - $getNativeTypeSize__deps: ['$POINTER_SIZE'], $getNativeTypeSize: {{{ getNativeTypeSize }}}, #if EMBIND - $getInheritedInstanceCount__deps: ['$registeredInstances'], $getInheritedInstanceCount: () => Object.keys(registeredInstances).length, - $getLiveInheritedInstances__deps: ['$registeredInstances'], $getLiveInheritedInstances: () => { var rv = []; for (var k in registeredInstances) { diff --git a/src/lib/liblz4.js b/src/lib/liblz4.js index 9b2a5e5c5f553..e90c20b60eb21 100644 --- a/src/lib/liblz4.js +++ b/src/lib/liblz4.js @@ -6,7 +6,6 @@ #if LZ4 addToLibrary({ - $LZ4__deps: ['$FS', '$preloadPlugins'], $LZ4: { DIR_MODE: {{{ cDefs.S_IFDIR | 0o777 }}}, FILE_MODE: {{{ cDefs.S_IFREG | 0o777 }}}, diff --git a/src/lib/libmemfs.js b/src/lib/libmemfs.js index fb12b64de0b17..62c5c51ca66ab 100644 --- a/src/lib/libmemfs.js +++ b/src/lib/libmemfs.js @@ -5,7 +5,6 @@ */ addToLibrary({ - $MEMFS__deps: ['$FS', '$mmapAlloc'], $MEMFS: { ops_table: null, mount(mount) { diff --git a/src/lib/libnodefs.js b/src/lib/libnodefs.js index 8c0fd7967bce5..58ce342c45414 100644 --- a/src/lib/libnodefs.js +++ b/src/lib/libnodefs.js @@ -6,14 +6,13 @@ addToLibrary({ #if WASMFS - $NODEFS__deps: ['$stringToUTF8OnStack', 'wasmfs_create_node_backend'], + $NODEFS__deps: ['wasmfs_create_node_backend'], $NODEFS: { createBackend(opts) { return _wasmfs_create_node_backend(stringToUTF8OnStack(opts.root)); } } #else - $NODEFS__deps: ['$FS', '$PATH', '$ERRNO_CODES', '$mmapAlloc'], $NODEFS__postset: 'if (ENVIRONMENT_IS_NODE) { NODEFS.staticInit(); }', $NODEFS: { isWindows: false, diff --git a/src/lib/libnodepath.js b/src/lib/libnodepath.js index d891bf7339662..4017807952378 100644 --- a/src/lib/libnodepath.js +++ b/src/lib/libnodepath.js @@ -13,7 +13,6 @@ addToLibrary({ $nodePath: "require('node:path')", - $PATH__deps: ['$nodePath'], $PATH: `{ isAbs: nodePath.isAbsolute, normalize: nodePath.normalize, @@ -24,7 +23,6 @@ addToLibrary({ }`, // The FS-using parts are split out into a separate object, so simple path // usage does not require the FS. - $PATH_FS__deps: ['$FS', '$nodePath'], $PATH_FS__docs: '/** @type{{resolve: function(...*)}} */', $PATH_FS: { resolve: (...paths) => { diff --git a/src/lib/libnoderawfs.js b/src/lib/libnoderawfs.js index 9bfd566a2ee70..41218d4e168db 100644 --- a/src/lib/libnoderawfs.js +++ b/src/lib/libnoderawfs.js @@ -5,7 +5,7 @@ */ addToLibrary({ - $NODERAWFS__deps: ['$ERRNO_CODES', '$FS', '$NODEFS', '$TTY', '$FS_modeStringToFlags', '$NODERAWFS_stream_funcs'], + $NODERAWFS__deps: ['$NODERAWFS_stream_funcs'], $NODERAWFS__postset: ` if (!ENVIRONMENT_IS_NODE) { throw new Error('NODERAWFS is currently only supported on Node.js environment.') @@ -220,7 +220,6 @@ addToLibrary({ * could either be a stream created by NODERAWFS itself, or, for example * one created by PIPEFS. We wrap all these function in an extra check. */ - $NODERAWFS_stream_funcs__deps: ['$mmapAlloc'], $NODERAWFS_stream_funcs: { close(stream) { VFS.closeStream(stream.fd); diff --git a/src/lib/libopenal.js b/src/lib/libopenal.js index 64902650f6afc..bab7e7936d5da 100644 --- a/src/lib/libopenal.js +++ b/src/lib/libopenal.js @@ -11,7 +11,6 @@ var LibraryOpenAL = { // ** INTERNALS // ************************************************************************ - $AL__deps: ['$MainLoop'], $AL: { // ------------------------------------------------------ // -- Constants @@ -1601,7 +1600,6 @@ var LibraryOpenAL = { // bufferSize is actually 'number of sample frames', so was renamed // bufferFrameCapacity here for clarity. - alcCaptureOpenDevice__deps: ['$autoResumeAudioContext'], alcCaptureOpenDevice__proxy: 'sync', alcCaptureOpenDevice: (pDeviceName, requestedSampleRate, format, bufferFrameCapacity) => { @@ -2058,7 +2056,6 @@ var LibraryOpenAL = { return {{{ cDefs.ALC_TRUE }}}; }, - alcCreateContext__deps: ['$autoResumeAudioContext'], alcCreateContext__proxy: 'sync', alcCreateContext: (deviceId, pAttrList) => { if (!(deviceId in AL.deviceRefCounts)) { @@ -2327,7 +2324,6 @@ var LibraryOpenAL = { }, alcGetString__proxy: 'sync', - alcGetString__deps: ['$stringToNewUTF8'], alcGetString: (deviceId, param) => { if (AL.alcStringCache[param]) { return AL.alcStringCache[param]; @@ -2575,7 +2571,6 @@ var LibraryOpenAL = { emscripten_alcGetStringiSOFT__proxy: 'sync', emscripten_alcGetStringiSOFT__sig: 'iiii', - emscripten_alcGetStringiSOFT__deps: ['alcGetString', '$stringToNewUTF8'], emscripten_alcGetStringiSOFT: (deviceId, param, index) => { if (!(deviceId in AL.deviceRefCounts)) { #if OPENAL_DEBUG @@ -2798,7 +2793,6 @@ var LibraryOpenAL = { } }, - alDeleteSources__deps: ['alSourcei'], alDeleteSources__proxy: 'sync', alDeleteSources: (count, pSourceIds) => { if (!AL.currentCtx) { @@ -2962,7 +2956,6 @@ var LibraryOpenAL = { }, alGetString__proxy: 'sync', - alGetString__deps: ['$stringToNewUTF8'], alGetString: (param) => { if (AL.stringCache[param]) { return AL.stringCache[param]; @@ -3274,7 +3267,6 @@ var LibraryOpenAL = { // alDopplerVelocity() sets a multiplier for the speed of sound. // It's deprecated since it's equivalent to directly calling // alSpeedOfSound() with an appropriately premultiplied value. - alDopplerVelocity__deps: ['$warnOnce'], alDopplerVelocity__proxy: 'sync', alDopplerVelocity: (value) => { warnOnce('alDopplerVelocity() is deprecated, and only kept for compatibility with OpenAL 1.0. Use alSpeedOfSound() instead.'); @@ -4734,5 +4726,4 @@ var LibraryOpenAL = { } }; -autoAddDeps(LibraryOpenAL, '$AL'); addToLibrary(LibraryOpenAL); diff --git a/src/lib/libpath.js b/src/lib/libpath.js index 8fc1374f38b33..9977cd36f7c56 100644 --- a/src/lib/libpath.js +++ b/src/lib/libpath.js @@ -72,8 +72,6 @@ addToLibrary({ // The FS-using parts are split out into a separate object, so simple path // usage does not require the FS. $PATH_FS__deps: [ - '$PATH', - '$FS', #if WASMFS // In WasmFS, FS.cwd() is implemented via a call into wasm, so we need to // add a dependency on that. diff --git a/src/lib/libpipefs.js b/src/lib/libpipefs.js index 5285f05f26fcc..2db6ff7ad9085 100644 --- a/src/lib/libpipefs.js +++ b/src/lib/libpipefs.js @@ -6,7 +6,6 @@ addToLibrary({ $PIPEFS__postset: () => addAtInit('PIPEFS.root = FS.mount(PIPEFS, {}, null);'), - $PIPEFS__deps: ['$FS'], $PIPEFS: { BUCKET_BUFFER_SIZE: 1024 * 8, // 8KiB Buffer mount(mount) { diff --git a/src/lib/libpromise.js b/src/lib/libpromise.js index e99071d424834..5c00a2b35c7f3 100644 --- a/src/lib/libpromise.js +++ b/src/lib/libpromise.js @@ -5,13 +5,10 @@ */ addToLibrary({ - $promiseMap__deps: ['$HandleAllocator'], $promiseMap: 'new HandleAllocator();', - $getPromise__deps: ['$promiseMap'], $getPromise: (id) => promiseMap.get(id).promise, - $makePromise__deps: ['$promiseMap'], $makePromise: () => { var promiseInfo = {}; promiseInfo.promise = new Promise((resolve, reject) => { @@ -25,10 +22,8 @@ addToLibrary({ return promiseInfo; }, - $addPromise__deps: ['$promiseMap'], $addPromise: (promise) => promiseMap.allocate({promise}), - $idsToPromises__deps: ['$getPromise'], $idsToPromises: (idBuf, size) => { var promises = []; for (var i = 0; i < size; i++) { @@ -38,10 +33,8 @@ addToLibrary({ return promises; }, - emscripten_promise_create__deps: ['$makePromise'], emscripten_promise_create: () => makePromise().id, - emscripten_promise_destroy__deps: ['$promiseMap'], emscripten_promise_destroy: (id) => { #if RUNTIME_DEBUG dbg(`emscripten_promise_destroy: ${id}`); @@ -49,9 +42,6 @@ addToLibrary({ promiseMap.free(id); }, - emscripten_promise_resolve__deps: ['$promiseMap', - '$getPromise', - 'emscripten_promise_destroy'], emscripten_promise_resolve: (id, result, value) => { #if RUNTIME_DEBUG dbg(`emscripten_promise_resolve: ${id}`); @@ -77,12 +67,6 @@ addToLibrary({ #endif }, - $makePromiseCallback__deps: ['$getPromise', - '$POINTER_SIZE', - 'emscripten_promise_destroy', - '$stackAlloc', - '$stackRestore', - '$stackSave'], $makePromiseCallback: (callback, userData) => { if (!callback) return; return (value) => { @@ -137,9 +121,6 @@ addToLibrary({ }; }, - emscripten_promise_then__deps: ['$addPromise', - '$getPromise', - '$makePromiseCallback'], emscripten_promise_then: (id, onFulfilled, onRejected, userData) => { #if RUNTIME_DEBUG dbg(`emscripten_promise_then: ${id}`); @@ -155,7 +136,6 @@ addToLibrary({ return newId; }, - emscripten_promise_all__deps: ['$addPromise', '$idsToPromises'], emscripten_promise_all: (idBuf, resultBuf, size) => { var promises = idsToPromises(idBuf, size); #if RUNTIME_DEBUG @@ -186,7 +166,6 @@ addToLibrary({ {{{ makeSetValue('ptr', C_STRUCTS.em_settled_result_t.value, 'value', '*') }}}; }, - emscripten_promise_all_settled__deps: ['$addPromise', '$idsToPromises', '$setPromiseResult'], emscripten_promise_all_settled: (idBuf, resultBuf, size) => { var promises = idsToPromises(idBuf, size); #if RUNTIME_DEBUG @@ -211,7 +190,6 @@ addToLibrary({ return id; }, - emscripten_promise_any__deps: ['$addPromise', '$idsToPromises'], emscripten_promise_any: (idBuf, errorBuf, size) => { var promises = idsToPromises(idBuf, size); #if RUNTIME_DEBUG @@ -234,7 +212,6 @@ addToLibrary({ return id; }, - emscripten_promise_race__deps: ['$addPromise', '$idsToPromises'], emscripten_promise_race: (idBuf, size) => { var promises = idsToPromises(idBuf, size); #if RUNTIME_DEBUG @@ -249,7 +226,6 @@ addToLibrary({ #if ASYNCIFY emscripten_promise_await__async: 'auto', - emscripten_promise_await__deps: ['$getPromise', '$setPromiseResult'], emscripten_promise_await: (returnValuePtr, id) => { #if RUNTIME_DEBUG dbg(`emscripten_promise_await: ${id}`); @@ -261,7 +237,6 @@ addToLibrary({ }, emscripten_promise_await_unchecked__async: 'auto', - emscripten_promise_await_unchecked__deps: ['$getPromise'], emscripten_promise_await_unchecked: (id) => { #if RUNTIME_DEBUG dbg(`emscripten_promise_await_unchecked: ${id}`); diff --git a/src/lib/libproxyfs.js b/src/lib/libproxyfs.js index 5e78d6105819c..9e43484eb25dc 100644 --- a/src/lib/libproxyfs.js +++ b/src/lib/libproxyfs.js @@ -5,7 +5,6 @@ */ addToLibrary({ - $PROXYFS__deps: ['$FS', '$PATH', '$ERRNO_CODES'], $PROXYFS: { mount(mount) { return PROXYFS.createNode(null, '/', mount.opts.fs.lstat(mount.opts.root).mode, 0); diff --git a/src/lib/libpthread.js b/src/lib/libpthread.js index df4687930deaa..e591406c375fc 100644 --- a/src/lib/libpthread.js +++ b/src/lib/libpthread.js @@ -80,34 +80,13 @@ const pthreadWorkerOptions = `{ var LibraryPThread = { $PThread__postset: 'PThread.init();', - $PThread__deps: ['_emscripten_thread_init', - '$callUserCallback', - '$checkMailbox', - '$terminateWorker', - '$cleanupThread', -#if !MINIMAL_RUNTIME - '$wasmMemory', -#if PTHREAD_POOL_SIZE - '$addOnPreRun', -#if !PTHREAD_POOL_DELAY_LOAD - '$addRunDependency', - '$removeRunDependency', -#endif -#endif -#endif -#if MAIN_MODULE - '$markAsFinished', -#endif - '$spawnThread', - '_emscripten_thread_free_data', - 'exit', - 'pthread_self', - '__set_thread_state', - '$waitAsyncPolyfilled', -#if PTHREADS_DEBUG || ASSERTIONS - '$ptrToString', -#endif - ], + $PThread__deps: [ + '_emscripten_thread_init', + '_emscripten_thread_free_data', + 'exit', + 'pthread_self', + '__set_thread_state', + ], $PThread: { // Contains all Workers that are idle/unused and not currently hosting an // executing pthread. Unused Workers can either be pooled up before page @@ -776,7 +755,6 @@ var LibraryPThread = { $pthreadCreateProxied__internal: true, $pthreadCreateProxied__proxy: 'sync', - $pthreadCreateProxied__deps: ['__pthread_create_js'], $pthreadCreateProxied: (pthread_ptr, attr, startRoutine, arg) => ___pthread_create_js(pthread_ptr, attr, startRoutine, arg), #if OFFSCREENCANVAS_SUPPORT @@ -789,8 +767,7 @@ var LibraryPThread = { // allocations from __pthread_create_js we could also remove this. __pthread_create_js__noleakcheck: true, #endif - __pthread_create_js__deps: ['$spawnThread', '$pthreadCreateProxied', - 'emscripten_has_threading_support', + __pthread_create_js__deps: [ #if OFFSCREENCANVAS_SUPPORT 'malloc', #endif @@ -958,9 +935,6 @@ var LibraryPThread = { return spawnThread(threadParams); }, -#if (ASSERTIONS || !ALLOW_BLOCKING_ON_MAIN_THREAD) && !MINIMAL_RUNTIME - emscripten_check_blocking_allowed__deps: ['$warnOnce'], -#endif emscripten_check_blocking_allowed: () => { #if (ASSERTIONS || !ALLOW_BLOCKING_ON_MAIN_THREAD) && !MINIMAL_RUNTIME #if ENVIRONMENT_MAY_BE_NODE @@ -981,7 +955,6 @@ var LibraryPThread = { // that the entire process should exit. // This function is always called from a pthread, but is executed on the // main thread due to the __proxy attribute. - $exitOnMainThread__deps: ['exit'], $exitOnMainThread__proxy: 'async', $exitOnMainThread: (returnCode) => { #if PTHREADS_DEBUG @@ -995,11 +968,10 @@ var LibraryPThread = { #if MEMORY64 // Calls proxyToMainThread but returns a bigint rather than a number - $proxyToMainThreadPtr__deps: ['$proxyToMainThread'], $proxyToMainThreadPtr: (...args) => BigInt(proxyToMainThread(...args)), #endif - $proxyToMainThread__deps: ['$stackSave', '$stackRestore', '$stackAlloc', '_emscripten_run_js_on_main_thread'], + $proxyToMainThread__deps: ['_emscripten_run_js_on_main_thread'], $proxyToMainThread__docs: '/** @type{function(number, (number|boolean), ...number)} */', $proxyToMainThread: (funcIndex, emAsmAddr, proxyMode, ...callArgs) => { // EM_ASM proxying is done by passing a pointer to the address of the EM_ASM @@ -1052,7 +1024,7 @@ var LibraryPThread = { _emscripten_receive_on_main_thread_js__deps: [ '$proxyToMainThread', '_emscripten_run_js_on_main_thread_done', - '$proxiedJSCallArgs'], + ], _emscripten_receive_on_main_thread_js: (funcIndex, emAsmAddr, callingThread, bufSize, args, ctx, ctxArgs) => { // Sometimes we need to backproxy events to the calling thread (e.g. // HTML5 DOM events handlers such as @@ -1115,7 +1087,7 @@ var LibraryPThread = { }, $establishStackSpace__internal: true, - $establishStackSpace__deps: ['$stackRestore', 'emscripten_stack_set_limits'], + $establishStackSpace__deps: ['emscripten_stack_set_limits'], $establishStackSpace: function (pthread_ptr) { var stackHigh = {{{ makeGetValue('pthread_ptr', C_STRUCTS.pthread.stack, '*') }}}; var stackSize = {{{ makeGetValue('pthread_ptr', C_STRUCTS.pthread.stack_size, '*') }}}; @@ -1148,10 +1120,6 @@ var LibraryPThread = { $invokeEntryPoint__deps: [ '_emscripten_thread_exit', -#if !MINIMAL_RUNTIME - '$keepRuntimeAlive', - '$runtimeKeepaliveCounter', -#endif ], $invokeEntryPoint: {{{ asyncIf(ASYNCIFY == 2) }}}(ptr, arg) => { #if PTHREADS_DEBUG @@ -1235,7 +1203,7 @@ var LibraryPThread = { // Asynchronous version _emscripten_dlsync_threads. // This is always called on the main thread. This work happens asynchronously. - $dlsyncThreadsAsync__deps: ['_emscripten_proxy_dlsync_async', '$makePromise'], + $dlsyncThreadsAsync__deps: ['_emscripten_proxy_dlsync_async'], $dlsyncThreadsAsync: async () => { const caller = PThread.currentProxiedOperationCallerThread; #if PTHREADS_DEBUG @@ -1285,7 +1253,7 @@ var LibraryPThread = { // synchronously block the main thread until all other threads are in sync. // When `dlopen` is called from a worker, the worker itself is blocked but // the operation its waiting on (on the main thread) can be async. - _emscripten_dlsync_threads__deps: ['_emscripten_proxy_dlsync', '$dlsyncThreadsAsync'], + _emscripten_dlsync_threads__deps: ['_emscripten_proxy_dlsync'], _emscripten_dlsync_threads__async: 'auto', _emscripten_dlsync_threads__proxy: 'sync', _emscripten_dlsync_threads: () => { @@ -1302,10 +1270,10 @@ var LibraryPThread = { }, #endif // MAIN_MODULE - $checkMailbox__deps: ['$callUserCallback', + $checkMailbox__deps: [ 'pthread_self', '_emscripten_check_mailbox', - '_emscripten_thread_mailbox_await'], + ], $checkMailbox: () => { // checkMailbox can be called after the pthread has shut down. See // Pthread.terminateRuntime(). @@ -1327,7 +1295,6 @@ var LibraryPThread = { }); }, - _emscripten_thread_mailbox_await__deps: ['$checkMailbox', '$waitAsyncPolyfilled'], _emscripten_thread_mailbox_await: (pthread_ptr) => { if (!waitAsyncPolyfilled) { // Wait on the pthread's initial self-pointer field because it is easy and @@ -1352,7 +1319,6 @@ var LibraryPThread = { // the environment does not implement Atomics.waitAsync or when messaging a // new thread that has not had a chance to initialize itself and execute // Atomics.waitAsync to prepare for the notification. - _emscripten_notify_mailbox_postmessage__deps: ['$checkMailbox'], _emscripten_notify_mailbox_postmessage: (targetThread, currThreadId) => { if (targetThread == currThreadId) { setTimeout(checkMailbox); @@ -1371,5 +1337,4 @@ var LibraryPThread = { } }; -autoAddDeps(LibraryPThread, '$PThread'); addToLibrary(LibraryPThread); diff --git a/src/lib/libsdl.js b/src/lib/libsdl.js index 44d62b0ae1beb..86fe1db4f5ab8 100644 --- a/src/lib/libsdl.js +++ b/src/lib/libsdl.js @@ -17,11 +17,7 @@ var LibrarySDL = { $SDL__deps: [ - '$Browser', 'SDL_GetTicks', 'SDL_LockSurface', - '$MainLoop', - '$warnOnce', // For makeCEvent(). - '$stringToUTF8', // Many SDL functions depend on malloc/free 'malloc', 'free', 'memcpy', @@ -1365,7 +1361,6 @@ var LibrarySDL = { return 0; // success }, - SDL_WasInit__deps: ['SDL_Init'], SDL_WasInit__proxy: 'sync', SDL_WasInit: (flags) => { if (SDL.startTime === null) { @@ -1488,7 +1483,6 @@ var LibrarySDL = { SDL_QuitSubSystem: (flags) => out('SDL_QuitSubSystem called (and ignored)'), - SDL_Quit__deps: ['SDL_AudioQuit'], SDL_Quit: () => { _SDL_AudioQuit(); out('SDL_Quit called (and ignored)'); @@ -1674,9 +1668,6 @@ var LibrarySDL = { #if ASYNCIFY SDL_Delay: 'emscripten_sleep', #else -#if ASSERTIONS - SDL_Delay__deps: ['$warnOnce'], -#endif SDL_Delay: (delay) => { #if ASSERTIONS if (!ENVIRONMENT_IS_WORKER) warnOnce('SDL_Delay called on the main thread! Potential infinite loop, quitting. (consider building with async support like ASYNCIFY)'); @@ -1688,7 +1679,6 @@ var LibrarySDL = { #endif SDL_WM_SetCaption__proxy: 'sync', - SDL_WM_SetCaption__deps: ['emscripten_set_window_title'], SDL_WM_SetCaption: (title, icon) => { if (title) { _emscripten_set_window_title(title); @@ -1708,11 +1698,10 @@ var LibrarySDL = { return SDL.keyboardState; }, - SDL_GetKeyState__deps: ['SDL_GetKeyboardState'], SDL_GetKeyState: () => _SDL_GetKeyboardState(0), SDL_GetKeyName__proxy: 'sync', - SDL_GetKeyName__deps: ['$lengthBytesUTF8', '$stringToUTF8', 'realloc'], + SDL_GetKeyName__deps: ['realloc'], SDL_GetKeyName: (key) => { var name = ''; /* ASCII A-Z or 0-9 */ @@ -1770,7 +1759,6 @@ var LibrarySDL = { }, SDL_GetError__proxy: 'sync', - SDL_GetError__deps: ['$stringToNewUTF8'], SDL_GetError: () => { SDL.errorMessage ||= stringToNewUTF8('unknown SDL-emscripten error'); return SDL.errorMessage; @@ -1827,10 +1815,8 @@ var LibrarySDL = { return ret; }, - SDL_DisplayFormat__deps: ['SDL_ConvertSurface'], SDL_DisplayFormat: (surf) => _SDL_ConvertSurface(surf, 0, 0), - SDL_DisplayFormatAlpha__deps: ['SDL_ConvertSurface'], SDL_DisplayFormatAlpha: (surf) => _SDL_ConvertSurface(surf, 0, 0), SDL_FreeSurface__proxy: 'sync', @@ -1921,7 +1907,6 @@ var LibrarySDL = { return ret; }, - rotozoomSurface__deps: ['zoomSurface'], rotozoomSurface: (src, angle, zoom, smooth) => { if (!(angle % 360)) { return _zoomSurface(src, zoom, zoom, smooth); @@ -2042,7 +2027,6 @@ var LibrarySDL = { return 1; }, - SDL_SetPalette__deps: ['SDL_SetColors'], SDL_SetPalette: (surf, flags, colors, firstColor, nColors) => _SDL_SetColors(surf, colors, firstColor, nColors), @@ -2127,11 +2111,6 @@ var LibrarySDL = { // We support JPG, PNG, TIF because browsers do IMG_Init: (flags) => flags, - IMG_Load_RW__deps: ['$Browser', 'SDL_LockSurface', 'SDL_FreeRW', '$PATH_FS', '$stackSave', '$stackRestore', '$stackAlloc', -#if STB_IMAGE - '$stringToUTF8OnStack', -#endif - ], IMG_Load_RW__proxy: 'sync', IMG_Load_RW: (rwopsID, freeSrc) => { var sp = stackSave(); @@ -2279,7 +2258,6 @@ var LibrarySDL = { }, SDL_LoadBMP_RW: 'IMG_Load_RW', - IMG_Load__deps: ['IMG_Load_RW', 'SDL_RWFromFile'], IMG_Load__proxy: 'sync', IMG_Load: (filename) => { var rwops = _SDL_RWFromFile(filename, 0); @@ -2291,7 +2269,7 @@ var LibrarySDL = { // SDL_Audio - SDL_OpenAudio__deps: ['$autoResumeAudioContext', '$safeSetTimeout', '$registerPostMainLoop'], + SDL_OpenAudio__deps: ['$registerPostMainLoop'], SDL_OpenAudio__proxy: 'sync', SDL_OpenAudio__postset: ` // Queue new audio data. This is important to be right after the main loop @@ -2524,7 +2502,6 @@ var LibrarySDL = { }, SDL_PauseAudio__proxy: 'sync', - SDL_PauseAudio__deps: ['$safeSetTimeout', '$safeClearTimeout'], SDL_PauseAudio: (pauseOn) => { if (!SDL.audio) { return; @@ -2543,7 +2520,6 @@ var LibrarySDL = { SDL.audio.paused = pauseOn; }, - SDL_CloseAudio__deps: ['SDL_PauseAudio'], SDL_CloseAudio__proxy: 'sync', SDL_CloseAudio: () => { if (SDL.audio) { @@ -2588,7 +2564,6 @@ var LibrarySDL = { }, Mix_Quit: () => {}, - Mix_OpenAudio__deps: ['$autoResumeAudioContext'], Mix_OpenAudio__proxy: 'sync', Mix_OpenAudio: (frequency, format, channels, chunksize) => { SDL.openAudioContext(); @@ -2639,7 +2614,6 @@ var LibrarySDL = { return 1; }, - Mix_LoadWAV_RW__deps: ['$FS', '$PATH_FS'], Mix_LoadWAV_RW__proxy: 'sync', Mix_LoadWAV_RW__docs: '/** @param {number} freesrc */', Mix_LoadWAV_RW: (rwopsID, freesrc) => { @@ -2756,7 +2730,6 @@ var LibrarySDL = { return id; }, - Mix_LoadWAV__deps: ['Mix_LoadWAV_RW', 'SDL_RWFromFile', 'SDL_FreeRW'], Mix_LoadWAV__proxy: 'sync', Mix_LoadWAV: (filename) => { var rwops = _SDL_RWFromFile(filename, 0); @@ -2804,7 +2777,6 @@ var LibrarySDL = { Mix_ReserveChannels: (num) => { SDL.channelMinimumNumber = num; }, - Mix_PlayChannelTimed__deps: ['Mix_HaltChannel'], Mix_PlayChannelTimed__proxy: 'sync', Mix_PlayChannelTimed: (channel, id, loops, ticks) => { // TODO: handle fixed amount of N loops. Currently loops either 0 or infinite times. @@ -2889,7 +2861,6 @@ var LibrarySDL = { return 0; }, - Mix_HookMusicFinished__deps: ['Mix_HaltMusic'], Mix_HookMusicFinished__proxy: 'sync', Mix_HookMusicFinished: (func) => { SDL.hookMusicFinished = func; @@ -2901,10 +2872,8 @@ var LibrarySDL = { Mix_VolumeMusic__proxy: 'sync', Mix_VolumeMusic: (volume) => SDL.setGetVolume(SDL.music, volume), - Mix_LoadMUS_RW__deps: ['Mix_LoadWAV_RW'], Mix_LoadMUS_RW: (filename) => _Mix_LoadWAV_RW(filename, 0), - Mix_LoadMUS__deps: ['Mix_LoadMUS_RW', 'SDL_RWFromFile', 'SDL_FreeRW'], Mix_LoadMUS__proxy: 'sync', Mix_LoadMUS: (filename) => { var rwops = _SDL_RWFromFile(filename, 0); @@ -2915,7 +2884,6 @@ var LibrarySDL = { Mix_FreeMusic: 'Mix_FreeChunk', - Mix_PlayMusic__deps: ['Mix_HaltMusic'], Mix_PlayMusic__proxy: 'sync', Mix_PlayMusic: (id, loops) => { // Pause old music if it exists. @@ -3079,7 +3047,6 @@ var LibrarySDL = { return 0; }, - TTF_OpenFont__deps: ['$PATH'], TTF_OpenFont__proxy: 'sync', TTF_OpenFont: (name, size) => { name = PATH.normalize(UTF8ToString(name)); @@ -3245,47 +3212,36 @@ var LibrarySDL = { translateColorToCSSRGBA: (rgba) => `rgba(${rgba>>>24},${rgba>>16 & 0xff},${rgba>>8 & 0xff},${rgba&0xff})`, }, - boxColor__deps: ['$SDL_gfx'], boxColor: (surf, x1, y1, x2, y2, color) => SDL_gfx.drawRectangle(surf, x1, y1, x2, y2, 'fill', SDL_gfx.translateColorToCSSRGBA(color)), - boxRGBA__deps: ['$SDL_gfx'], boxRGBA: (surf, x1, y1, x2, y2, r, g, b, a) => SDL_gfx.drawRectangle(surf, x1, y1, x2, y2, 'fill', SDL.translateRGBAToCSSRGBA(r, g, b, a)), - rectangleColor__deps: ['$SDL_gfx'], rectangleColor: (surf, x1, y1, x2, y2, color) => SDL_gfx.drawRectangle(surf, x1, y1, x2, y2, 'stroke', SDL_gfx.translateColorToCSSRGBA(color)), - rectangleRGBA__deps: ['$SDL_gfx'], rectangleRGBA: (surf, x1, y1, x2, y2, r, g, b, a) => SDL_gfx.drawRectangle(surf, x1, y1, x2, y2, 'stroke', SDL.translateRGBAToCSSRGBA(r, g, b, a)), - ellipseColor__deps: ['$SDL_gfx'], ellipseColor: (surf, x, y, rx, ry, color) => SDL_gfx.drawEllipse(surf, x, y, rx, ry, 'stroke', SDL_gfx.translateColorToCSSRGBA(color)), - ellipseRGBA__deps: ['$SDL_gfx'], ellipseRGBA: (surf, x, y, rx, ry, r, g, b, a) => SDL_gfx.drawEllipse(surf, x, y, rx, ry, 'stroke', SDL.translateRGBAToCSSRGBA(r, g, b, a)), - filledEllipseColor__deps: ['$SDL_gfx'], filledEllipseColor: (surf, x, y, rx, ry, color) => SDL_gfx.drawEllipse(surf, x, y, rx, ry, 'fill', SDL_gfx.translateColorToCSSRGBA(color)), - filledEllipseRGBA__deps: ['$SDL_gfx'], filledEllipseRGBA: (surf, x, y, rx, ry, r, g, b, a) => SDL_gfx.drawEllipse(surf, x, y, rx, ry, 'fill', SDL.translateRGBAToCSSRGBA(r, g, b, a)), - lineColor__deps: ['$SDL_gfx'], lineColor: (surf, x1, y1, x2, y2, color) => SDL_gfx.drawLine(surf, x1, y1, x2, y2, SDL_gfx.translateColorToCSSRGBA(color)), - lineRGBA__deps: ['$SDL_gfx'], lineRGBA: (surf, x1, y1, x2, y2, r, g, b, a) => SDL_gfx.drawLine(surf, x1, y1, x2, y2, SDL.translateRGBAToCSSRGBA(r, g, b, a)), - pixelRGBA__deps: ['boxRGBA'], // This cannot be fast, to render many pixels this way! pixelRGBA: (surf, x1, y1, r, g, b, a) => _boxRGBA(surf, x1, y1, x1, y1, r, g, b, a), @@ -3318,7 +3274,6 @@ var LibrarySDL = { // SDL 2 SDL_GL_ExtensionSupported__proxy: 'sync', - SDL_GL_ExtensionSupported__deps: ['$GLctx', '$UTF8ToString'], SDL_GL_ExtensionSupported: (extension) => GLctx?.getExtension(UTF8ToString(extension)) ? 1 : 0, SDL_DestroyWindow: (window) => {}, @@ -3349,7 +3304,6 @@ var LibrarySDL = { } }, - SDL_GL_SetSwapInterval__deps: ['emscripten_set_main_loop_timing'], SDL_GL_SetSwapInterval: (state) => _emscripten_set_main_loop_timing({{{ cDefs.EM_TIMING_RAF }}}, state), SDL_SetWindowTitle__proxy: 'sync', @@ -3397,7 +3351,6 @@ var LibrarySDL = { }, SDL_JoystickName__proxy: 'sync', - SDL_JoystickName__deps: ['$stringToNewUTF8'], SDL_JoystickName: (deviceIndex) => { var gamepad = SDL.getGamepad(deviceIndex); if (gamepad) { @@ -3519,10 +3472,8 @@ var LibrarySDL = { }, SDL_GetNumAudioDrivers: () => 1, - SDL_GetCurrentAudioDriver__deps: ['$stringToNewUTF8'], SDL_GetCurrentAudioDriver: () => stringToNewUTF8('Emscripten Audio'), SDL_GetScancodeFromKey: (key) => SDL.scanCodes[key], - SDL_GetAudioDriver__deps: ['SDL_GetCurrentAudioDriver'], SDL_GetAudioDriver: (index) => _SDL_GetCurrentAudioDriver(), SDL_EnableUNICODE__proxy: 'sync', @@ -3533,14 +3484,12 @@ var LibrarySDL = { }, SDL_AddTimer__proxy: 'sync', - SDL_AddTimer__deps: ['$safeSetTimeout'], SDL_AddTimer: (interval, callback, param) => safeSetTimeout( () => {{{ makeDynCall('iip', 'callback') }}}(interval, param), interval), SDL_RemoveTimer__proxy: 'sync', - SDL_RemoveTimer__deps: ['$safeClearTimeout'], SDL_RemoveTimer: (id) => { safeClearTimeout(id); return true; @@ -3581,5 +3530,4 @@ var LibrarySDL = { SDL_HasAltiVec: () => 0 }; -autoAddDeps(LibrarySDL, '$SDL'); addToLibrary(LibrarySDL); diff --git a/src/lib/libsockfs.js b/src/lib/libsockfs.js index e567a36e383f3..51c2ecdcaea18 100644 --- a/src/lib/libsockfs.js +++ b/src/lib/libsockfs.js @@ -8,11 +8,6 @@ addToLibrary({ $SOCKFS__postset: () => { addAtInit('SOCKFS.root = FS.mount(SOCKFS, {}, null);'); }, - $SOCKFS__deps: ['$FS', '$ERRNO_CODES', -#if NODERAWSOCKETS - '$nodeSockOps', -#endif - ], $SOCKFS: { #if expectToReceiveOnModule('websocket') websocketArgs: {}, @@ -832,7 +827,6 @@ addToLibrary({ * Passing a NULL callback function to a emscripten_set_socket_*_callback call * will deregister the callback registered for that Event. */ - $_setNetworkCallback__deps: ['$withStackSave', '$callUserCallback', '$stringToUTF8OnStack'], $_setNetworkCallback: (event, userData, callback) => { function _callback(data) { callUserCallback(() => { @@ -852,22 +846,16 @@ addToLibrary({ {{{ runtimeKeepalivePush() }}} SOCKFS.on(event, callback ? _callback : null); }, - emscripten_set_socket_error_callback__deps: ['$_setNetworkCallback'], emscripten_set_socket_error_callback: (userData, callback) => _setNetworkCallback('error', userData, callback), - emscripten_set_socket_open_callback__deps: ['$_setNetworkCallback'], emscripten_set_socket_open_callback: (userData, callback) => _setNetworkCallback('open', userData, callback), - emscripten_set_socket_listen_callback__deps: ['$_setNetworkCallback'], emscripten_set_socket_listen_callback: (userData, callback) => _setNetworkCallback('listen', userData, callback), - emscripten_set_socket_connection_callback__deps: ['$_setNetworkCallback'], emscripten_set_socket_connection_callback: (userData, callback) => _setNetworkCallback('connection', userData, callback), - emscripten_set_socket_message_callback__deps: ['$_setNetworkCallback'], emscripten_set_socket_message_callback: (userData, callback) => _setNetworkCallback('message', userData, callback), - emscripten_set_socket_close_callback__deps: ['$_setNetworkCallback'], emscripten_set_socket_close_callback: (userData, callback) => _setNetworkCallback('close', userData, callback), }); diff --git a/src/lib/libsockfs_node.js b/src/lib/libsockfs_node.js index 8004a41d70557..cc0344dafe0a9 100644 --- a/src/lib/libsockfs_node.js +++ b/src/lib/libsockfs_node.js @@ -56,11 +56,6 @@ null; var NodeSockFSLibrary = { // Node plumbing shared by the interface methods below. - $nodeSockHelpers__deps: ['$SOCKFS', '$ERRNO_CODES', '$inetPton4', '$inetPton6', -#if ASSERTIONS - '$warnOnce', -#endif - ], $nodeSockHelpers: { // node builtins, resolved once each. getBuiltinModule works in both // CommonJS and ESM output, with require as the fallback. @@ -455,7 +450,6 @@ var NodeSockFSLibrary = { }); }, }, - $nodeSockOps__deps: ['$nodeSockHelpers', '$SOCKFS', '$readI53FromI64', '$writeI53ToI64'], $nodeSockOps__postset: ` if (!ENVIRONMENT_IS_NODE) { throw new Error('NODERAWSOCKETS is currently only supported on Node.js environment.') diff --git a/src/lib/libstack_trace.js b/src/lib/libstack_trace.js index fa4f8d107a7c3..7d11428e30e8b 100644 --- a/src/lib/libstack_trace.js +++ b/src/lib/libstack_trace.js @@ -7,11 +7,6 @@ var LibraryStackTrace = { $jsStackTrace: () => new Error().stack.toString(), - $getCallstack__deps: ['$jsStackTrace', -#if ASSERTIONS - '$warnOnce' -#endif - ], $getCallstack__docs: '/** @param {number=} flags */', $getCallstack: (flags) => { var callstack = jsStackTrace(); @@ -81,7 +76,6 @@ var LibraryStackTrace = { return callstack; }, - emscripten_get_callstack__deps: ['$getCallstack', '$lengthBytesUTF8', '$stringToUTF8'], emscripten_get_callstack: (flags, str, maxbytes) => { var callstack = getCallstack(flags); // User can query the required amount of bytes to hold the callstack. @@ -126,7 +120,6 @@ var LibraryStackTrace = { // Returns a representation of a call site of the caller of this function, in a manner // similar to __builtin_return_address. If level is 0, we return the call site of the // caller of this function. - emscripten_return_address__deps: ['$convertFrameToPC', '$jsStackTrace'], emscripten_return_address: (level) => { var callstack = jsStackTrace().split('\n'); if (callstack[0] == 'Error') { @@ -182,7 +175,6 @@ var LibraryStackTrace = { // least in JavaScript frames, so we have to rely on PC values. Therefore, we // must be able to unwind from a PC value that may no longer be on the // execution stack, and so we are forced to cache the entire call stack. - emscripten_stack_snapshot__deps: ['$convertFrameToPC', '$UNWIND_CACHE', '$saveInUnwindCache', '$jsStackTrace'], emscripten_stack_snapshot: () => { var callstack = jsStackTrace().split('\n'); if (callstack[0] == 'Error') { @@ -197,7 +189,6 @@ var LibraryStackTrace = { return UNWIND_CACHE.last_addr; }, - $saveInUnwindCache__deps: ['$UNWIND_CACHE', '$convertFrameToPC'], $saveInUnwindCache__internal: true, $saveInUnwindCache: (callstack) => { for (var line of callstack) { @@ -212,7 +203,6 @@ var LibraryStackTrace = { // how this is used. addr must be the return address of the last call to // emscripten_stack_snapshot, or this function will instead use the current // call stack. - emscripten_stack_unwind_buffer__deps: ['$UNWIND_CACHE', '$saveInUnwindCache', '$convertFrameToPC', '$jsStackTrace'], emscripten_stack_unwind_buffer: (addr, buffer, count) => { var stack; if (UNWIND_CACHE.last_addr == addr) { @@ -237,7 +227,7 @@ var LibraryStackTrace = { }, // Look up the function name from our stack frame cache with our PC representation. - emscripten_pc_get_function__deps: ['$UNWIND_CACHE', 'free', '$stringToNewUTF8', 'emscripten_stack_snapshot'], + emscripten_pc_get_function__deps: ['free', 'emscripten_stack_snapshot'], // Don't treat allocation of _emscripten_pc_get_function.ret as a leak emscripten_pc_get_function__noleakcheck: true, emscripten_pc_get_function: (pc) => { @@ -272,7 +262,6 @@ var LibraryStackTrace = { return _emscripten_pc_get_function.ret; }, - $convertPCtoSourceLocation__deps: ['$UNWIND_CACHE'], $convertPCtoSourceLocation: (pc) => { if (UNWIND_CACHE.last_get_source_pc == pc) return UNWIND_CACHE.last_source; @@ -301,7 +290,7 @@ var LibraryStackTrace = { }, // Look up the file name from our stack frame cache with our PC representation. - emscripten_pc_get_file__deps: ['$convertPCtoSourceLocation', 'free', '$stringToNewUTF8'], + emscripten_pc_get_file__deps: ['free'], // Don't treat allocation of _emscripten_pc_get_file.ret as a leak emscripten_pc_get_file__noleakcheck: true, emscripten_pc_get_file: (pc) => { @@ -314,14 +303,12 @@ var LibraryStackTrace = { }, // Look up the line number from our stack frame cache with our PC representation. - emscripten_pc_get_line__deps: ['$convertPCtoSourceLocation'], emscripten_pc_get_line: (pc) => { var result = convertPCtoSourceLocation(pc); return result ? result.line : 0; }, // Look up the column number from our stack frame cache with our PC representation. - emscripten_pc_get_column__deps: ['$convertPCtoSourceLocation'], emscripten_pc_get_column: (pc) => { var result = convertPCtoSourceLocation(pc); return result ? result.column || 0 : 0; diff --git a/src/lib/libstrings.js b/src/lib/libstrings.js index 4c0f297c0607b..3a1aef9a16f81 100644 --- a/src/lib/libstrings.js +++ b/src/lib/libstrings.js @@ -49,12 +49,6 @@ addToLibrary({ * @param {boolean=} ignoreNul - If true, the function will not stop on a NUL character. * @return {string} */`, - $UTF8ArrayToString__deps: [ - '$UTF8Decoder', '$findStringEnd', -#if ASSERTIONS - '$warnOnce', -#endif - ], $UTF8ArrayToString: (heapOrArray, idx = 0, maxBytesToRead, ignoreNul) => { #if CAN_ADDRESS_2GB idx >>>= 0; @@ -114,11 +108,6 @@ addToLibrary({ * @param {boolean=} ignoreNul - If true, the function will not stop on a NUL character. * @return {string} */`, -#if TEXTDECODER == 2 - $UTF8ToString__deps: ['$UTF8Decoder', '$findStringEnd'], -#else - $UTF8ToString__deps: ['$UTF8ArrayToString'], -#endif $UTF8ToString: (ptr, maxBytesToRead, ignoreNul) => { #if ASSERTIONS assert(typeof ptr === 'number', `UTF8ToString expects a number (got ${typeof ptr})`); @@ -157,9 +146,6 @@ addToLibrary({ * terminator. * @return {number} The number of bytes written, EXCLUDING the null terminator. */ -#if ASSERTIONS - $stringToUTF8Array__deps: ['$warnOnce'], -#endif $stringToUTF8Array: (str, heap, outIdx, maxBytesToWrite) => { #if CAN_ADDRESS_2GB outIdx >>>= 0; @@ -219,7 +205,6 @@ addToLibrary({ * * @return {number} The number of bytes written, EXCLUDING the null terminator. */ - $stringToUTF8__deps: ['$stringToUTF8Array'], $stringToUTF8: (str, outPtr, maxBytesToWrite) => { #if ASSERTIONS assert(typeof maxBytesToWrite === 'number', 'stringToUTF8 requires a third parameter that specifies the length of the output buffer'); @@ -255,7 +240,6 @@ addToLibrary({ }, $intArrayFromString__docs: '/** @type {function(string, boolean=, number=)} */', - $intArrayFromString__deps: ['$lengthBytesUTF8', '$stringToUTF8Array'], $intArrayFromString: (stringy, dontAddNull, length) => { var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; var u8array = new Array(len); @@ -317,7 +301,6 @@ addToLibrary({ // 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. - $UTF16ToString__deps: ['$UTF16Decoder', '$findStringEnd'], $UTF16ToString: (ptr, maxBytesToRead, ignoreNul) => { #if ASSERTIONS assert(ptr % 2 == 0, 'pointer passed to UTF16ToString must be 2-byte aligned'); @@ -473,7 +456,7 @@ addToLibrary({ // Allocate heap space for a JS string, and write it there. // It is the responsibility of the caller to free() that memory. - $stringToNewUTF8__deps: ['$lengthBytesUTF8', '$stringToUTF8', 'malloc'], + $stringToNewUTF8__deps: ['malloc'], $stringToNewUTF8: (str) => { var size = lengthBytesUTF8(str) + 1; var ret = _malloc(size); @@ -482,7 +465,6 @@ addToLibrary({ }, // Allocate stack space for a JS string, and write it there. - $stringToUTF8OnStack__deps: ['$lengthBytesUTF8', '$stringToUTF8', '$stackAlloc'], $stringToUTF8OnStack: (str) => { var size = lengthBytesUTF8(str) + 1; var ret = stackAlloc(size); diff --git a/src/lib/libsyscall.js b/src/lib/libsyscall.js index c11f5fdf68b08..0049079015f5e 100644 --- a/src/lib/libsyscall.js +++ b/src/lib/libsyscall.js @@ -5,12 +5,6 @@ */ var SyscallsLibrary = { - $SYSCALLS__deps: [ -#if FILESYSTEM && SYSCALLS_REQUIRE_FILESYSTEM - '$PATH', - '$FS', -#endif - ], $SYSCALLS: { #if SYSCALLS_REQUIRE_FILESYSTEM currentUmask: 0o022, @@ -136,9 +130,8 @@ var SyscallsLibrary = { #endif _mmap_js__i53abi: true, - _mmap_js__deps: ['$SYSCALLS', + _mmap_js__deps: [ #if FILESYSTEM && SYSCALLS_REQUIRE_FILESYSTEM - '$FS', // The dependency of FS on `mmapAlloc` and `mmapAlloc` on // `emscripten_builtin_memalign` are not encoding as hard dependencies, // so we need to explicitly depend on them here to ensure a working @@ -195,7 +188,6 @@ var SyscallsLibrary = { var old = SYSCALLS.getStreamFromFD(fd); return FS.dupStream(old).fd; }, - __syscall_pipe2__deps: ['$PIPEFS'], __syscall_pipe2: (fdPtr, flags) => { if (fdPtr == 0) { throw new FS.ErrnoError({{{ cDefs.EFAULT }}}); @@ -218,9 +210,6 @@ var SyscallsLibrary = { return 0; }, -#if SYSCALLS_REQUIRE_FILESYSTEM - __syscall_ioctl__deps: ['$syscallGetVarargP'], -#endif __syscall_ioctl: (fd, op, varargs) => { #if SYSCALLS_REQUIRE_FILESYSTEM == 0 #if SYSCALL_DEBUG @@ -331,7 +320,6 @@ var SyscallsLibrary = { // When building with WASMFS the socket syscalls are implemented natively in // libwasmfs.a. #if PROXY_POSIX_SOCKETS == 0 && WASMFS == 0 - $getSocketFromFD__deps: ['$SOCKFS', '$FS'], $getSocketFromFD: (fd) => { var socket = SOCKFS.getSocket(fd); if (!socket) throw new FS.ErrnoError({{{ cDefs.EBADF }}}); @@ -340,11 +328,6 @@ var SyscallsLibrary = { #endif return socket; }, - $getSocketAddress__deps: ['$readSockaddr', '$FS', -#if !NODERAWSOCKETS - '$DNS', -#endif - ], $getSocketAddress: (addrp, addrlen) => { var info = readSockaddr(addrp, addrlen); if (info.errno) throw new FS.ErrnoError(info.errno); @@ -356,12 +339,10 @@ var SyscallsLibrary = { #endif return info; }, - __syscall_socket__deps: ['$SOCKFS'], __syscall_socket: (domain, type, protocol, u1, u2, u3) => { var sock = SOCKFS.createSocket(domain, type, protocol); return sock.stream.fd; }, - __syscall_getsockname__deps: ['$getSocketFromFD', '$writeSockaddr'], __syscall_getsockname: (fd, addr, len, u1, u2, u3) => { var sock = getSocketFromFD(fd); #if NODERAWSOCKETS @@ -378,7 +359,6 @@ var SyscallsLibrary = { #endif return 0; }, - __syscall_getpeername__deps: ['$getSocketFromFD', '$writeSockaddr'], __syscall_getpeername: (fd, addr, len, u1, u2, u3) => { var sock = getSocketFromFD(fd); #if NODERAWSOCKETS @@ -396,14 +376,12 @@ var SyscallsLibrary = { #endif return 0; }, - __syscall_connect__deps: ['$getSocketFromFD', '$getSocketAddress'], __syscall_connect: (fd, addr, len, u1, u2, u3) => { var sock = getSocketFromFD(fd); var info = getSocketAddress(addr, len); sock.sock_ops.connect(sock, info.addr, info.port); return 0; }, - __syscall_shutdown__deps: ['$getSocketFromFD'], __syscall_shutdown: (fd, how, u1, u2, u3, u4) => { var sock = getSocketFromFD(fd); #if NODERAWSOCKETS @@ -412,7 +390,6 @@ var SyscallsLibrary = { return -{{{ cDefs.ENOSYS }}}; // unsupported feature #endif }, - __syscall_accept4__deps: ['$getSocketFromFD', '$writeSockaddr'], __syscall_accept4: (fd, addr, len, flags, u1, u2) => { var sock = getSocketFromFD(fd); var newsock = sock.sock_ops.accept(sock); @@ -429,20 +406,17 @@ var SyscallsLibrary = { } return newsock.stream.fd; }, - __syscall_bind__deps: ['$getSocketFromFD', '$getSocketAddress'], __syscall_bind: (fd, addr, len, u1, u2, u3) => { var sock = getSocketFromFD(fd); var info = getSocketAddress(addr, len); sock.sock_ops.bind(sock, info.addr, info.port); return 0; }, - __syscall_listen__deps: ['$getSocketFromFD'], __syscall_listen: (fd, backlog, u1, u2, u3, u4) => { var sock = getSocketFromFD(fd); sock.sock_ops.listen(sock, backlog); return 0; }, - __syscall_recvfrom__deps: ['$getSocketFromFD', '$writeSockaddr'], __syscall_recvfrom: (fd, buf, len, flags, addr, alen) => { var sock = getSocketFromFD(fd); var msg = sock.sock_ops.recvmsg(sock, len, flags); @@ -456,7 +430,6 @@ var SyscallsLibrary = { HEAPU8.set(msg.buffer, buf); return msg.buffer.byteLength; }, - __syscall_sendto__deps: ['$getSocketFromFD', '$getSocketAddress'], __syscall_sendto: (fd, buf, len, flags, addr, alen) => { var sock = getSocketFromFD(fd); if (!addr) { @@ -467,7 +440,6 @@ var SyscallsLibrary = { // sendto an address return sock.sock_ops.sendmsg(sock, HEAP8, buf, len, dest.addr, dest.port); }, - __syscall_getsockopt__deps: ['$getSocketFromFD'], __syscall_getsockopt: (fd, level, optname, optval, optlen, unused) => { var sock = getSocketFromFD(fd); #if NODERAWSOCKETS @@ -490,7 +462,6 @@ var SyscallsLibrary = { // Defined in JS rather than as a weak native stub so the node:net backend can // provide it without a separate libstubs variation. Without that backend it // just reports the option as unknown. - __syscall_setsockopt__deps: ['$getSocketFromFD'], __syscall_setsockopt: (fd, level, optname, optval, optlen, unused) => { #if NODERAWSOCKETS var sock = getSocketFromFD(fd); @@ -500,7 +471,6 @@ var SyscallsLibrary = { return -{{{ cDefs.ENOPROTOOPT }}}; // The option is unknown at the level indicated. #endif }, - __syscall_sendmsg__deps: ['$getSocketFromFD', '$getSocketAddress'], __syscall_sendmsg: (fd, message, flags, u1, u2, u3) => { var sock = getSocketFromFD(fd); var iov = {{{ makeGetValue('message', C_STRUCTS.msghdr.msg_iov, '*') }}}; @@ -531,7 +501,6 @@ var SyscallsLibrary = { // write the buffer return sock.sock_ops.sendmsg(sock, view, 0, total, addr, port); }, - __syscall_recvmsg__deps: ['$getSocketFromFD', '$writeSockaddr'], __syscall_recvmsg: (fd, message, flags, u1, u2, u3) => { var sock = getSocketFromFD(fd); var iov = {{{ makeGetValue('message', C_STRUCTS.msghdr.msg_iov, '*') }}}; @@ -611,7 +580,6 @@ var SyscallsLibrary = { // POLLERR/POLLHUP/POLLNVAL are output-only conditions reported regardless of // `events` (a bad fd reports POLLNVAL even if the caller didn't ask for it). $pollOne__internal: true, - $pollOne__deps: ['$FS'], $pollOne: (fd, events) => { var stream = FS.getStream(fd); if (!stream) return {{{ cDefs.POLLNVAL }}}; @@ -622,11 +590,6 @@ var SyscallsLibrary = { }, __syscall_poll__proxy: 'sync', __syscall_poll__async: 'auto', - __syscall_poll__deps: ['$doPollSync', -#if PTHREADS || ASYNCIFY - '$doPollAsync', -#endif - ], __syscall_poll: (fds, nfds, timeout) => { #if PTHREADS || ASYNCIFY #if PTHREADS @@ -654,7 +617,6 @@ var SyscallsLibrary = { // Synchronous poll(): derive each fd in place, writing revents and returning // the ready count. Used by the non-suspending syscall paths. $doPollSync__internal: true, - $doPollSync__deps: ['$pollOne'], $doPollSync: (fds, nfds) => { var count = 0; for (var i = 0, pollfd = fds; i < nfds; i++, pollfd += {{{ C_STRUCTS.pollfd.__size__ }}}) { @@ -673,7 +635,6 @@ var SyscallsLibrary = { // the trigger), resolving then or, for a positive `timeout`, once it elapses. // A negative `timeout` waits forever. Returns a Promise of the ready count. $doPollAsync__internal: true, - $doPollAsync__deps: ['$FS', '$pollOne'], $doPollAsync: (fds, nfds, timeout) => new Promise((resolve) => { var regs = []; var timer; @@ -719,20 +680,17 @@ var SyscallsLibrary = { // __syscall_poll is a suspending import and traps when called from a stack // that wasn't entered through a promising export). __syscall_poll_nonblocking__proxy: 'sync', - __syscall_poll_nonblocking__deps: ['$doPollSync'], __syscall_poll_nonblocking: (fds, nfds) => { return doPollSync(fds, nfds); }, // epoll: the entry points live here (like every other syscall); the heavy // lifting is in libepoll.js, which they call after resolving the epoll stream. - __syscall_epoll_create1__deps: ['$epollNewInstance'], __syscall_epoll_create1__proxy: 'sync', __syscall_epoll_create1: (flags) => { // EPOLL_CLOEXEC is accepted but a no-op (there is no exec). if (flags & ~{{{ cDefs.EPOLL_CLOEXEC }}}) return -{{{ cDefs.EINVAL }}}; return epollNewInstance().fd; }, - __syscall_epoll_ctl__deps: ['$FS', '$epollCtl'], __syscall_epoll_ctl__proxy: 'sync', __syscall_epoll_ctl: (epfd, op, fd, ev) => { var ep = FS.getStream(epfd); @@ -741,7 +699,6 @@ var SyscallsLibrary = { }, __syscall_epoll_pwait__proxy: 'sync', __syscall_epoll_pwait__async: 'auto', - __syscall_epoll_pwait__deps: ['$FS', '$epollPwait'], __syscall_epoll_pwait: (epfd, ev, maxevents, timeout, sigmask, sigsetsize) => { var ep = FS.getStream(epfd); if (!ep?.shared.epoll) return -{{{ cDefs.EBADF }}}; @@ -754,14 +711,12 @@ var SyscallsLibrary = { // from a stack that wasn't entered through a promising export). Mirrors // __syscall_poll_nonblocking. __syscall_epoll_pwait_nonblocking__proxy: 'sync', - __syscall_epoll_pwait_nonblocking__deps: ['$FS', '$doEpollWait'], __syscall_epoll_pwait_nonblocking: (epfd, ev, maxevents) => { var ep = FS.getStream(epfd); if (!ep?.shared.epoll) return -{{{ cDefs.EBADF }}}; if (maxevents <= 0) return -{{{ cDefs.EINVAL }}}; return doEpollWait(ep.shared, ev, maxevents); }, - __syscall_getcwd__deps: ['$lengthBytesUTF8', '$stringToUTF8'], __syscall_getcwd: (buf, size) => { if (!size) return -{{{ cDefs.EINVAL }}}; var cwd = FS.cwd(); @@ -798,7 +753,6 @@ var SyscallsLibrary = { FS.fchown(fd, owner, group); return 0; }, - __syscall_getdents64__deps: ['$stringToUTF8'], __syscall_getdents64: (fd, dirp, count) => { var stream = SYSCALLS.getStreamFromFD(fd) stream.getdents ||= FS.readdir(stream.path); @@ -853,9 +807,6 @@ var SyscallsLibrary = { FS.llseek(stream, idx * struct_size, {{{ cDefs.SEEK_SET }}}); return pos; }, -#if SYSCALLS_REQUIRE_FILESYSTEM - __syscall_fcntl64__deps: ['$syscallGetVarargP', '$syscallGetVarargI'], -#endif __syscall_fcntl64: (fd, cmd, varargs) => { #if SYSCALLS_REQUIRE_FILESYSTEM == 0 #if SYSCALL_DEBUG @@ -930,7 +881,6 @@ var SyscallsLibrary = { SYSCALLS.writeStatFs(buf, FS.statfsStream(stream)); return 0; }, - __syscall_openat__deps: ['$syscallGetVarargI'], __syscall_openat: (dirfd, path, flags, varargs) => { path = SYSCALLS.getStr(path); path = SYSCALLS.calculateAt(dirfd, path); @@ -1026,7 +976,6 @@ var SyscallsLibrary = { FS.link(oldpath, newpath, flags); return 0; }, - __syscall_readlinkat__deps: ['$lengthBytesUTF8', '$stringToUTF8'], __syscall_readlinkat: (dirfd, path, buf, bufsize) => { path = SYSCALLS.getStr(path); path = SYSCALLS.calculateAt(dirfd, path); @@ -1072,7 +1021,6 @@ var SyscallsLibrary = { } return 0; }, - __syscall_utimensat__deps: ['$readI53FromI64'], __syscall_utimensat: (dirfd, path, times, flags) => { var nofollow = flags & {{{ cDefs.AT_SYMLINK_NOFOLLOW }}}; path = SYSCALLS.getStr(path); diff --git a/src/lib/libsyscall_shared.js b/src/lib/libsyscall_shared.js index 2e6d6eb16c924..365bbb711d117 100644 --- a/src/lib/libsyscall_shared.js +++ b/src/lib/libsyscall_shared.js @@ -21,7 +21,6 @@ addToLibrary({ __syscall_getgid32: () => 0, __syscall_getegid32: () => 0, #endif - __syscall_uname__deps: ['$stringToUTF8'], __syscall_uname: (buf) => { if (!buf) { return -{{{ cDefs.EFAULT }}}; diff --git a/src/lib/libtime.js b/src/lib/libtime.js index a84eff88d5890..f87c6fcaa7f3a 100644 --- a/src/lib/libtime.js +++ b/src/lib/libtime.js @@ -8,7 +8,6 @@ assert(!STANDALONE_WASM, 'library_time.js should not be included in standalone m addToLibrary({ _mktime_js__i53abi: true, - _mktime_js__deps: ['$ydayFromDate'], _mktime_js: (tmPtr) => { var date = new Date({{{ makeGetValue('tmPtr', C_STRUCTS.tm.tm_year, 'i32') }}} + 1900, {{{ makeGetValue('tmPtr', C_STRUCTS.tm.tm_mon, 'i32') }}}, @@ -101,7 +100,6 @@ addToLibrary({ }, _localtime_js__i53abi: true, - _localtime_js__deps: ['$ydayFromDate'], _localtime_js: (time, tmPtr) => { var date = new Date(time*1000); if (isNaN(date.getTime())) { @@ -157,11 +155,6 @@ addToLibrary({ return buf; }, - _tzset_js__deps: ['$stringToUTF8', -#if ASSERTIONS - '$lengthBytesUTF8', -#endif - ], _tzset_js__internal: true, _tzset_js: (timezone, daylight, std_name, dst_name) => { // TODO: Use (malleable) environment variables instead of system settings. @@ -225,7 +218,6 @@ addToLibrary({ $isLeapYear: (year) => year%4 === 0 && (year%100 !== 0 || year%400 === 0), - $ydayFromDate__deps: ['$isLeapYear', '$MONTH_DAYS_LEAP_CUMULATIVE', '$MONTH_DAYS_REGULAR_CUMULATIVE'], $ydayFromDate: (date) => { var leap = isLeapYear(date.getFullYear()); var monthDaysCumulative = (leap ? MONTH_DAYS_LEAP_CUMULATIVE : MONTH_DAYS_REGULAR_CUMULATIVE); @@ -242,7 +234,6 @@ addToLibrary({ return sum; }, - $addDays__deps: ['$isLeapYear', '$MONTH_DAYS_LEAP', '$MONTH_DAYS_REGULAR'], $addDays: (date, days) => { var newDate = new Date(date.getTime()); while (days > 0) { @@ -270,8 +261,6 @@ addToLibrary({ return newDate; }, - strptime__deps: ['$isLeapYear', '$arraySum', '$addDays', '$MONTH_DAYS_REGULAR', '$MONTH_DAYS_LEAP', - '$lengthBytesUTF8'], strptime: (buf, format, tm) => { // char *strptime(const char *restrict buf, const char *restrict format, struct tm *restrict tm); // http://pubs.opengroup.org/onlinepubs/009695399/functions/strptime.html @@ -529,6 +518,5 @@ addToLibrary({ return 0; }, - strptime_l__deps: ['strptime'], strptime_l: (buf, format, tm, locale) => _strptime(buf, format, tm), // no locale support yet }); diff --git a/src/lib/libtrace.js b/src/lib/libtrace.js index ce410629363dc..48c03171deff4 100644 --- a/src/lib/libtrace.js +++ b/src/lib/libtrace.js @@ -6,10 +6,6 @@ var LibraryTracing = { $EmscriptenTrace__deps: [ - '$traceConfigure', 'emscripten_trace_configure_for_google_wtf', - '$traceEnterContext', 'emscripten_trace_exit_context', - '$traceLogMessage', '$traceMark', - 'emscripten_get_now', '$jsStackTrace' ], $EmscriptenTrace__postset: 'EmscriptenTrace.init()', @@ -381,5 +377,4 @@ var LibraryTracing = { }, }; -autoAddDeps(LibraryTracing, '$EmscriptenTrace'); addToLibrary(LibraryTracing); diff --git a/src/lib/libtty.js b/src/lib/libtty.js index 0bbd792cce399..abb4a849dd743 100644 --- a/src/lib/libtty.js +++ b/src/lib/libtty.js @@ -5,11 +5,6 @@ */ addToLibrary({ - $TTY__deps: [ - '$FS', - '$UTF8ArrayToString', - '$FS_stdin_getChar' - ], #if !MINIMAL_RUNTIME $TTY__postset: () => { addAtInit('TTY.init();'); diff --git a/src/lib/libunwind.js b/src/lib/libunwind.js index 26fb6fbb2c7c6..bba123131db7a 100644 --- a/src/lib/libunwind.js +++ b/src/lib/libunwind.js @@ -10,7 +10,6 @@ var LibraryUnwind = { - _Unwind_Backtrace__deps: ['$getCallstack'], _Unwind_Backtrace: (func, arg) => { var trace = getCallstack(); var parts = trace.split('\n'); diff --git a/src/lib/libuuid.js b/src/lib/libuuid.js index ef1cf4929cbc2..c70ff7f57a83c 100644 --- a/src/lib/libuuid.js +++ b/src/lib/libuuid.js @@ -8,7 +8,6 @@ addToLibrary({ // Clear a 'compact' UUID. - uuid_clear__deps: ['$zeroMemory'], uuid_clear: (uu) => zeroMemory(uu, 16), // Compare whether or not two 'compact' UUIDs are the same. @@ -24,7 +23,6 @@ addToLibrary({ // Write a RFC4122 version 4 compliant UUID largely based on the method found in // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript // tweaked slightly in order to use the 'compact' UUID form used by libuuid. - uuid_generate__deps: ['$writeArrayToMemory', '$randomFill'], uuid_generate: (out) => { // void uuid_generate(uuid_t out); var uuid = new Uint8Array(16); @@ -76,7 +74,6 @@ addToLibrary({ // Convert a 'compact' form UUID to a string, if the upper parameter is supplied make the string upper case. uuid_unparse__docs: '/** @param {number|boolean=} upper */', - uuid_unparse__deps: ['$stringToUTF8'], uuid_unparse: (uu, out, upper) => { // void uuid_unparse(const uuid_t uu, char *out); var i = 0; @@ -91,14 +88,12 @@ addToLibrary({ }, // Convert a 'compact' form UUID to a lower case string. - uuid_unparse_lower__deps: ['uuid_unparse'], uuid_unparse_lower: (uu, out) => { // void uuid_unparse_lower(const uuid_t uu, char *out); _uuid_unparse(uu, out); }, // Convert a 'compact' form UUID to an upper case string. - uuid_unparse_upper__deps: ['uuid_unparse'], uuid_unparse_upper: (uu, out) => { // void uuid_unparse_upper(const uuid_t uu, char *out); _uuid_unparse(uu, out, true); diff --git a/src/lib/libwasi.js b/src/lib/libwasi.js index 20342398ea22d..62ea2f7d7335c 100644 --- a/src/lib/libwasi.js +++ b/src/lib/libwasi.js @@ -13,7 +13,6 @@ var WasiLibrary = { this.status = status; } }, - proc_exit__deps: ['$ExitStatus', '$keepRuntimeAlive'], #endif proc_exit__nothrow: true, @@ -41,11 +40,6 @@ var WasiLibrary = { sched_yield__nothrow: true, sched_yield: () => 0, - $getEnvStrings__deps: ['$ENV', -#if !PURE_WASI - '$getExecutableName' -#endif - ], $getEnvStrings: () => { if (!getEnvStrings.strings) { // Default values. @@ -84,7 +78,6 @@ var WasiLibrary = { return getEnvStrings.strings; }, - environ_sizes_get__deps: ['$getEnvStrings', '$lengthBytesUTF8'], environ_sizes_get__nothrow: true, environ_sizes_get: (penviron_count, penviron_buf_size) => { var strings = getEnvStrings(); @@ -97,7 +90,6 @@ var WasiLibrary = { return 0; }, - environ_get__deps: ['$getEnvStrings', '$stringToUTF8'], environ_get__nothrow: true, environ_get: (__environ, environ_buf) => { var bufSize = 0; @@ -130,7 +122,6 @@ var WasiLibrary = { }, args_get__nothrow: true, - args_get__deps: ['$stringToAscii'], args_get: (argv, argv_buf) => { #if MAIN_READS_PARAMS var bufSize = 0; @@ -154,7 +145,6 @@ var WasiLibrary = { clock_time_get__i53abi: true, clock_time_get__nothrow: true, clock_time_get__proxy: 'none', - clock_time_get__deps: ['emscripten_get_now', 'emscripten_date_now', '$nowIsMonotonic', '$checkWasiClock'], clock_time_get: (clk_id, ignored_precision, ptime) => { if (!checkWasiClock(clk_id)) { return {{{ cDefs.EINVAL }}}; @@ -176,7 +166,7 @@ var WasiLibrary = { clock_res_get__nothrow: true, clock_res_get__proxy: 'none', - clock_res_get__deps: ['emscripten_get_now', 'emscripten_get_now_res', '$nowIsMonotonic', '$checkWasiClock'], + clock_res_get__deps: ['emscripten_get_now'], clock_res_get: (clk_id, pres) => { if (!checkWasiClock(clk_id)) { return {{{ cDefs.EINVAL }}}; @@ -252,7 +242,6 @@ var WasiLibrary = { $printCharBuffers: [null, [], []], // 1 => stdout, 2 => stderr $printCharBuffers__internal: true, $printChar__internal: true, - $printChar__deps: ['$printCharBuffers', '$UTF8ArrayToString'], $printChar: (stream, curr) => { var buffer = printCharBuffers[stream]; #if ASSERTIONS @@ -268,9 +257,7 @@ var WasiLibrary = { #endif // SYSCALLS_REQUIRE_FILESYSTEM #if SYSCALLS_REQUIRE_FILESYSTEM - fd_write__deps: ['$doWritev'], #elif (!MINIMAL_RUNTIME || EXIT_RUNTIME) - $flush_NO_FILESYSTEM__deps: ['$printChar', '$printCharBuffers'], $flush_NO_FILESYSTEM: () => { // flush anything remaining in the buffers during shutdown #if hasExportedSymbol('fflush') @@ -279,10 +266,9 @@ var WasiLibrary = { if (printCharBuffers[1].length) printChar(1, {{{ charCode('\n') }}}); if (printCharBuffers[2].length) printChar(2, {{{ charCode('\n') }}}); }, - fd_write__deps: ['$flush_NO_FILESYSTEM', '$printChar'], + fd_write__deps: ['$flush_NO_FILESYSTEM'], fd_write__postset: () => addAtExit('flush_NO_FILESYSTEM()'), #else - fd_write__deps: ['$printChar'], #endif fd_write: (fd, iov, iovcnt, pnum) => { #if SYSCALLS_REQUIRE_FILESYSTEM @@ -305,9 +291,6 @@ var WasiLibrary = { return 0; }, -#if SYSCALLS_REQUIRE_FILESYSTEM - fd_pwrite__deps: ['$doWritev'], -#endif fd_pwrite__i53abi: true, fd_pwrite: (fd, iov, iovcnt, offset, pnum) => { #if SYSCALLS_REQUIRE_FILESYSTEM @@ -342,9 +325,6 @@ var WasiLibrary = { #endif // SYSCALLS_REQUIRE_FILESYSTEM }, -#if SYSCALLS_REQUIRE_FILESYSTEM - fd_read__deps: ['$doReadv'], -#endif fd_read: (fd, iov, iovcnt, pnum) => { #if SYSCALLS_REQUIRE_FILESYSTEM var stream = SYSCALLS.getStreamFromFD(fd); @@ -358,9 +338,6 @@ var WasiLibrary = { #endif // SYSCALLS_REQUIRE_FILESYSTEM }, -#if SYSCALLS_REQUIRE_FILESYSTEM - fd_pread__deps: ['$doReadv'], -#endif fd_pread__i53abi: true, fd_pread: (fd, iov, iovcnt, offset, pnum) => { #if SYSCALLS_REQUIRE_FILESYSTEM @@ -430,7 +407,6 @@ var WasiLibrary = { $preopens: {3: '/'}, path_open__sig: 'iiiiiiiiii', - path_open__deps: ['$wasiRightsToMuslOFlags', '$wasiOFlagsToMuslOFlags', '$preopens'], path_open: (fd, dirflags, path, path_len, oflags, fs_rights_base, fs_rights_inheriting, fdflags, opened_fd) => { @@ -451,7 +427,6 @@ var WasiLibrary = { return 0; }, - fd_prestat_dir_name__deps: ['$preopens'], fd_prestat_dir_name__sig: 'iiii', fd_prestat_dir_name__nothrow: true, fd_prestat_dir_name: (fd, path, path_len) => { @@ -466,7 +441,6 @@ var WasiLibrary = { return 0; }, - fd_prestat_get__deps: ['$preopens'], fd_prestat_get__sig: 'iii', fd_prestat_get__nothrow: true, fd_prestat_get: (fd, stat_buf) => { @@ -502,9 +476,6 @@ var WasiLibrary = { }, #endif -#if PURE_WASI - fd_fdstat_get__deps: ['$preopens'], -#endif fd_fdstat_get: (fd, pbuf) => { var rightsBase = 0; var rightsInheriting = 0; @@ -578,9 +549,6 @@ var WasiLibrary = { // random.h -#if ENVIRONMENT_MAY_BE_SHELL - $initRandomFill__deps: ['$base64Decode'], -#endif $initRandomFill: () => { #if ENVIRONMENT_MAY_BE_NODE && MIN_NODE_VERSION < 190000 // This block is not needed on v19+ since crypto.getRandomValues is builtin @@ -619,13 +587,11 @@ var WasiLibrary = { #endif }, - $randomFill__deps: ['$initRandomFill'], // Lazily init on the first invocation. $randomFill: (view) => (randomFill = initRandomFill())(view), random_get__proxy: 'none', random_get__nothrow: true, - random_get__deps: ['$randomFill'], random_get: (buffer, size) => randomFill(HEAPU8.subarray(buffer, buffer + size)), }; diff --git a/src/lib/libwasm_worker.js b/src/lib/libwasm_worker.js index d643645e8fc62..39344b2166292 100644 --- a/src/lib/libwasm_worker.js +++ b/src/lib/libwasm_worker.js @@ -74,13 +74,11 @@ addToLibrary({ // which these postponed function calls can be dispatched. $_wasmWorkerDelayedMessageQueue: [], - $_wasmWorkerAppendToQueue__deps: ['$_wasmWorkerDelayedMessageQueue'], $_wasmWorkerAppendToQueue: (e) => { _wasmWorkerDelayedMessageQueue.push(e); }, // Executes a wasm function call received via a postMessage. - $_wasmWorkerRunPostMessage__deps: ['$callUserCallback'], $_wasmWorkerRunPostMessage: (e) => { // '_wsc' is short for 'wasm call', trying to use an identifier name that // will never conflict with user code @@ -92,9 +90,6 @@ addToLibrary({ // src/postamble_minimal.js brings this symbol in to the build, and calls this // function synchronously from main JS file at the startup of each Worker. $_wasmWorkerInitializeRuntime__deps: [ - '$_wasmWorkerDelayedMessageQueue', - '$_wasmWorkerRunPostMessage', - '$_wasmWorkerAppendToQueue', '_emscripten_wasm_worker_initialize', #if PTHREADS '__set_thread_state', @@ -171,16 +166,7 @@ addToLibrary({ #endif }, - _emscripten_create_wasm_worker__deps: [ - '$_wasmWorkers', - '$_wasmWorkerAppendToQueue', '$_wasmWorkerRunPostMessage', -#if TRUSTED_TYPES - '$_emscriptenWasmWorkerPolicy', -#endif -#if ASSERTIONS - 'emscripten_has_threading_support', -#endif - ], + _emscripten_create_wasm_worker__deps: ['$_wasmWorkerAppendToQueue'], _emscripten_create_wasm_worker__postset: ` if (ENVIRONMENT_IS_WASM_WORKER // AudioWorkletGlobalScope does not contain addEventListener @@ -287,7 +273,6 @@ if (ENVIRONMENT_IS_WASM_WORKER emscripten_wasm_worker_post_function_viii: '$_wasmWorkerPostFunction3', emscripten_wasm_worker_post_function_vddd: '$_wasmWorkerPostFunction3', - emscripten_wasm_worker_post_function_sig__deps: ['$readEmAsmArgs'], emscripten_wasm_worker_post_function_sig: (id, funcPtr, sigPtr, varargs) => { #if ASSERTIONS assert(id >= 0); @@ -306,7 +291,7 @@ if (ENVIRONMENT_IS_WASM_WORKER return navigator['hardwareConcurrency']; }, - emscripten_lock_async_acquire__deps: ['$polyfillWaitAsync', '$callUserCallback'], + emscripten_lock_async_acquire__deps: ['$polyfillWaitAsync'], emscripten_lock_async_acquire: (lock, asyncWaitFinished, userData, maxWaitMilliseconds) => { let tryAcquireLock = () => { do { @@ -325,7 +310,7 @@ if (ENVIRONMENT_IS_WASM_WORKER setTimeout(tryAcquireLock); }, - emscripten_semaphore_async_acquire__deps: ['$polyfillWaitAsync', '$callUserCallback'], + emscripten_semaphore_async_acquire__deps: ['$polyfillWaitAsync'], emscripten_semaphore_async_acquire: (sem, num, asyncWaitFinished, userData, maxWaitMilliseconds) => { let tryAcquireSemaphore = () => { let val = num; diff --git a/src/lib/libwasmfs.js b/src/lib/libwasmfs.js index 4a4adefb675f0..649fd33e9d0f4 100644 --- a/src/lib/libwasmfs.js +++ b/src/lib/libwasmfs.js @@ -28,33 +28,10 @@ addToLibrary({ $FS__deps: [ '$MEMFS', '$wasmFSPreloadedFiles', - '$wasmFSPreloadedDirs', - '$wasmFSPreloadingFlushed', - '$PATH', - '$stringToUTF8OnStack', - '$withStackSave', - '$FS_createDataFile', - '$FS_createPreloadedFile', - '$FS_preloadFile', - '$FS_getMode', -#if hasExportedSymbol('_wasmfs_read_file') || FORCE_FILESYSTEM || INCLUDE_FULL_LIBRARY - '$readI53FromI64', -#endif -#if hasExportedSymbol('_wasmfs_read_file') || hasExportedSymbol('_wasmfs_get_cwd') || FORCE_FILESYSTEM || INCLUDE_FULL_LIBRARY - '$UTF8ToString', -#endif #if FORCE_FILESYSTEM || INCLUDE_FULL_LIBRARY // FULL_LIBRARY will include JS // code in other places that ends // up requiring all of our code // here. - '$readI53FromU64', - '$FS_modeStringToFlags', - '$FS_create', - '$FS_mknod', - '$FS_mkdir', - '$FS_mkdirTree', - '$FS_writeFile', - '$FS_unlink', #if LibraryManager.has('libicasefs.js') '$ICASEFS', #endif @@ -73,9 +50,6 @@ addToLibrary({ 'malloc', 'free', 'wasmfs_create_jsimpl_backend', - '$wasmFS$backends', - '$wasmFSDevices', - '$wasmFSDeviceStreams' #endif ], $FS : { @@ -459,10 +433,6 @@ addToLibrary({ // makes sense there (as almost all that FS object ends up needed anyhow all // the time). - $FS_createDataFile__deps: [ - '$wasmFSPreloadingFlushed', '$wasmFSPreloadedFiles', - '$FS_create', '$FS_writeFile', - ], $FS_createDataFile: (parent, name, fileData, canRead, canWrite, canOwn) => { var pathName = name ? parent + '/' + name : parent; var mode = FS_getMode(canRead, canWrite); @@ -485,7 +455,6 @@ addToLibrary({ return __wasmfs_mknod(pathBuffer, mode, dev); })), - $FS_create__deps: ['$FS_mknod'], // Default settings copied from the legacy JS FS API. $FS_create: (path, mode = 0o666) => { mode &= {{{ cDefs.S_IALLUGO }}}; @@ -493,7 +462,7 @@ addToLibrary({ return FS_mknod(path, mode, 0); }, - $FS_writeFile__deps: ['$FS_fileDataToTypedArray', '_wasmfs_write_file', '$stackSave', '$stackRestore', 'malloc', 'free'], + $FS_writeFile__deps: ['_wasmfs_write_file', 'malloc', 'free'], $FS_writeFile: (path, data) => { var sp = stackSave(); var pathBuffer = stringToUTF8OnStack(path); @@ -521,7 +490,6 @@ addToLibrary({ * @param {number=} mode Optionally, the mode to create in. Uses mkdir's * default if not set. */`, - $FS_mkdirTree__deps: ['$FS_mkdir'], $FS_mkdirTree: (path, mode) => { var dirs = path.split('/'); var d = ''; @@ -545,9 +513,6 @@ addToLibrary({ // Wasm access calls. - _wasmfs_get_num_preloaded_files__deps: [ - '$wasmFSPreloadedFiles', - '$wasmFSPreloadingFlushed'], _wasmfs_get_num_preloaded_files: () => { // When this method is called from WasmFS it means that we are about to // flush all the preloaded data, so mark that. (There is no call that @@ -557,7 +522,6 @@ addToLibrary({ wasmFSPreloadingFlushed = true; return wasmFSPreloadedFiles.length; }, - _wasmfs_get_num_preloaded_dirs__deps: ['$wasmFSPreloadedDirs'], _wasmfs_get_num_preloaded_dirs: () => wasmFSPreloadedDirs.length, _wasmfs_get_preloaded_file_mode: (index) => wasmFSPreloadedFiles[index].mode, _wasmfs_get_preloaded_parent_path: (index, parentPathBuffer) => { @@ -570,7 +534,6 @@ addToLibrary({ var len = lengthBytesUTF8(s) + 1; stringToUTF8(s, childNameBuffer, len); }, - _wasmfs_get_preloaded_path_name__deps: ['$lengthBytesUTF8', '$stringToUTF8'], _wasmfs_get_preloaded_path_name: (index, fileNameBuffer) => { var s = wasmFSPreloadedFiles[index].pathName; var len = lengthBytesUTF8(s) + 1; @@ -593,7 +556,6 @@ addToLibrary({ }, 50); }, - _wasmfs_stdin_get_char__deps: ['$FS_stdin_getChar'], _wasmfs_stdin_get_char: () => { // Return the read character, or -1 to indicate EOF. var c = FS_stdin_getChar(); diff --git a/src/lib/libwasmfs_fetch.js b/src/lib/libwasmfs_fetch.js index 477a8eb10042e..8082df949d697 100644 --- a/src/lib/libwasmfs_fetch.js +++ b/src/lib/libwasmfs_fetch.js @@ -12,8 +12,6 @@ addToLibrary({ // that fetch it behaves just like JSFile (and it reuses the code from there). _wasmfs_create_fetch_backend_js__deps: [ - '$wasmFS$backends', - '$wasmFS$JSMemoryRanges', '_wasmfs_fetch_get_file_url', '_wasmfs_fetch_get_chunk_size', ], diff --git a/src/lib/libwasmfs_js_file.js b/src/lib/libwasmfs_js_file.js index d25fa7d36ac1a..810ac8ab59235 100644 --- a/src/lib/libwasmfs_js_file.js +++ b/src/lib/libwasmfs_js_file.js @@ -3,10 +3,6 @@ addToLibrary({ // entries here that contain typed arrays. $wasmFS$JSMemoryFiles: {}, - _wasmfs_create_js_file_backend_js__deps: [ - '$wasmFS$backends', - '$wasmFS$JSMemoryFiles', - ], _wasmfs_create_js_file_backend_js: (backend) => { wasmFS$backends[backend] = { allocFile: (file) => { diff --git a/src/lib/libwasmfs_node.js b/src/lib/libwasmfs_node.js index ac7c78c747abc..13a3efdea4ace 100644 --- a/src/lib/libwasmfs_node.js +++ b/src/lib/libwasmfs_node.js @@ -7,7 +7,6 @@ var wasmFSNodeLibrary = { $wasmfsNodeIsWindows: '!!globalThis.process?.platform.match(/^win/)', - $wasmfsNodeConvertNodeCode__deps: ['$ERRNO_CODES'], $wasmfsNodeConvertNodeCode: (e) => { var code = e.code; #if ASSERTIONS @@ -16,7 +15,6 @@ var wasmFSNodeLibrary = { return ERRNO_CODES[code]; }, - $wasmfsTry__deps: ['$wasmfsNodeConvertNodeCode'], $wasmfsTry: (f) => { try { return f(); @@ -26,7 +24,6 @@ var wasmFSNodeLibrary = { } }, - $wasmfsNodeFixStat__deps: ['$wasmfsNodeIsWindows'], $wasmfsNodeFixStat: (stat) => { if (wasmfsNodeIsWindows) { // Windows does not report the 'x' permission bit, so propagate read @@ -36,7 +33,6 @@ var wasmFSNodeLibrary = { return stat; }, - $wasmfsNodeLstat__deps: ['$wasmfsNodeFixStat'], $wasmfsNodeLstat: (path) => { let stat; try { @@ -48,7 +44,6 @@ var wasmFSNodeLibrary = { return wasmfsNodeFixStat(stat); }, - $wasmfsNodeFstat__deps: ['$wasmfsNodeFixStat'], $wasmfsNodeFstat: (fd) => { let stat; try { @@ -61,10 +56,6 @@ var wasmFSNodeLibrary = { }, _wasmfs_node_readdir__deps: [ - '$wasmfsTry', - '$stackSave', - '$stackRestore', - '$stringToUTF8OnStack', '_wasmfs_node_record_dirent', ], _wasmfs_node_readdir: (path_p, vec) => { @@ -91,7 +82,6 @@ var wasmFSNodeLibrary = { }); }, - _wasmfs_node_get_mode__deps: ['$wasmfsNodeLstat'], _wasmfs_node_get_mode: (path_p, mode_p) => { let stat = wasmfsNodeLstat(UTF8ToString(path_p)); if (stat === undefined) { @@ -101,7 +91,6 @@ var wasmFSNodeLibrary = { // implicitly return 0 }, - _wasmfs_node_stat_size__deps: ['$wasmfsNodeLstat'], _wasmfs_node_stat_size: (path_p, size_p) => { let stat = wasmfsNodeLstat(UTF8ToString(path_p)); if (stat === undefined) { @@ -111,7 +100,6 @@ var wasmFSNodeLibrary = { // implicitly return 0 }, - _wasmfs_node_fstat_size__deps: ['$wasmfsNodeFstat'], _wasmfs_node_fstat_size: (fd, size_p) => { let stat = wasmfsNodeFstat(fd); if (stat === undefined) { @@ -121,7 +109,6 @@ var wasmFSNodeLibrary = { // implicitly return 0 }, - _wasmfs_node_insert_file__deps: ['$wasmfsTry'], _wasmfs_node_insert_file: (path_p, mode) => { return wasmfsTry(() => { fs.closeSync(fs.openSync(UTF8ToString(path_p), 'ax', mode)); @@ -129,7 +116,6 @@ var wasmFSNodeLibrary = { }); }, - _wasmfs_node_insert_directory__deps: ['$wasmfsTry'], _wasmfs_node_insert_directory: (path_p, mode) => { return wasmfsTry(() => { fs.mkdirSync(UTF8ToString(path_p), mode) @@ -137,7 +123,6 @@ var wasmFSNodeLibrary = { }); }, - _wasmfs_node_unlink__deps: ['$wasmfsTry'], _wasmfs_node_unlink: (path_p) => { return wasmfsTry(() => { fs.unlinkSync(UTF8ToString(path_p)) @@ -145,7 +130,6 @@ var wasmFSNodeLibrary = { }); }, - _wasmfs_node_rmdir__deps: ['$wasmfsTry'], _wasmfs_node_rmdir: (path_p) => { return wasmfsTry(() => { fs.rmdirSync(UTF8ToString(path_p)) @@ -154,35 +138,29 @@ var wasmFSNodeLibrary = { }, _wasmfs_node_truncate__i53abi: true, - _wasmfs_node_truncate__deps: ['$wasmfsTry'], _wasmfs_node_truncate: (path_p, len) => { if (isNaN(len)) return {{{ cDefs.EFBIG }}}; return wasmfsTry(() => fs.truncateSync(UTF8ToString(path_p), len)); }, _wasmfs_node_ftruncate__i53abi: true, - _wasmfs_node_ftruncate__deps: ['$wasmfsTry'], _wasmfs_node_ftruncate: (fd, len) => { if (isNaN(len)) return {{{ cDefs.EFBIG }}}; return wasmfsTry(() => fs.ftruncateSync(fd, len)); }, - _wasmfs_node_open__deps: ['$wasmfsTry'], _wasmfs_node_open: (path_p, mode_p) => { return wasmfsTry(() => fs.openSync(UTF8ToString(path_p), UTF8ToString(mode_p))); }, - _wasmfs_node_rename__deps: ['$wasmfsTry'], _wasmfs_node_rename: (from_path_p, to_path_p) => { return wasmfsTry(() => fs.renameSync(UTF8ToString(from_path_p), UTF8ToString(to_path_p))); }, - _wasmfs_node_symlink__deps: ['$wasmfsTry'], _wasmfs_node_symlink: (target_path_p, linkpath_path_p) => { return wasmfsTry(() => fs.symlinkSync(UTF8ToString(target_path_p), UTF8ToString(linkpath_path_p))); }, - _wasmfs_node_readlink__deps: ['$wasmfsTry'], _wasmfs_node_readlink: (path_p, target_p, bufsize) => { return wasmfsTry(() => { var target = fs.readlinkSync(UTF8ToString(path_p)); @@ -190,7 +168,6 @@ var wasmFSNodeLibrary = { }); }, - _wasmfs_node_close__deps: ['$wasmfsTry'], _wasmfs_node_close: (fd) => { return wasmfsTry(() => { fs.closeSync(fd); @@ -198,7 +175,6 @@ var wasmFSNodeLibrary = { }); }, - _wasmfs_node_read__deps: ['$wasmfsTry'], _wasmfs_node_read: (fd, buf_p, len, pos, nread_p) => { return wasmfsTry(() => { // TODO: Cache open file descriptors to guarantee that opened files will @@ -209,7 +185,6 @@ var wasmFSNodeLibrary = { }); }, - _wasmfs_node_write__deps: ['$wasmfsTry'], _wasmfs_node_write: (fd, buf_p, len, pos, nwritten_p) => { return wasmfsTry(() => { // TODO: Cache open file descriptors to guarantee that opened files will diff --git a/src/lib/libwasmfs_opfs.js b/src/lib/libwasmfs_opfs.js index b7e1d5d90f1bd..272d9a3ffb1b0 100644 --- a/src/lib/libwasmfs_opfs.js +++ b/src/lib/libwasmfs_opfs.js @@ -13,13 +13,9 @@ }}} addToLibrary({ - $wasmfsOPFSDirectoryHandles__deps: ['$HandleAllocator'], $wasmfsOPFSDirectoryHandles: 'new HandleAllocator()', - $wasmfsOPFSFileHandles__deps: ['$HandleAllocator'], $wasmfsOPFSFileHandles: 'new HandleAllocator()', - $wasmfsOPFSAccessHandles__deps: ['$HandleAllocator'], $wasmfsOPFSAccessHandles: 'new HandleAllocator()', - $wasmfsOPFSBlobs__deps: ['$HandleAllocator'], $wasmfsOPFSBlobs: 'new HandleAllocator()', #if !PTHREADS @@ -60,7 +56,6 @@ addToLibrary({ } }, - $wasmfsOPFSCreateAsyncAccessHandle__deps: ['$FileSystemAsyncAccessHandle'], $wasmfsOPFSCreateAsyncAccessHandle: (fileHandle) => new FileSystemAsyncAccessHandle(fileHandle), #endif @@ -76,7 +71,6 @@ addToLibrary({ #endif }, - _wasmfs_opfs_init_root_directory__deps: ['$wasmfsOPFSDirectoryHandles', '$wasmfsOPFSProxyFinish'], _wasmfs_opfs_init_root_directory__async: {{{ ASYNCIFY_NEEDED }}}, _wasmfs_opfs_init_root_directory: async (ctx) => { // allocated.length starts off as 1 since 0 is a reserved handle @@ -95,8 +89,6 @@ addToLibrary({ // Return the file ID for the file with `name` under `parent`, creating it if // it doesn't exist and `create` or otherwise return a negative error code // corresponding to the error. - $wasmfsOPFSGetOrCreateFile__deps: ['$wasmfsOPFSDirectoryHandles', - '$wasmfsOPFSFileHandles'], $wasmfsOPFSGetOrCreateFile: async (parent, name, create) => { let parentHandle = wasmfsOPFSDirectoryHandles.get(parent); let fileHandle; @@ -120,7 +112,6 @@ addToLibrary({ // Return the file ID for the directory with `name` under `parent`, creating // it if it doesn't exist and `create` or otherwise return a negative error // code corresponding to the error. - $wasmfsOPFSGetOrCreateDir__deps: ['$wasmfsOPFSDirectoryHandles'], $wasmfsOPFSGetOrCreateDir: async (parent, name, create) => { let parentHandle = wasmfsOPFSDirectoryHandles.get(parent); let childHandle; @@ -142,8 +133,6 @@ addToLibrary({ return wasmfsOPFSDirectoryHandles.allocate(childHandle); }, - _wasmfs_opfs_get_child__deps: ['$wasmfsOPFSGetOrCreateFile', - '$wasmfsOPFSGetOrCreateDir', '$wasmfsOPFSProxyFinish'], _wasmfs_opfs_get_child__async: {{{ ASYNCIFY_NEEDED }}}, _wasmfs_opfs_get_child: async (ctx, parent, namePtr, childTypePtr, childIDPtr) => { let name = UTF8ToString(namePtr); @@ -159,9 +148,6 @@ addToLibrary({ }, _wasmfs_opfs_get_entries__deps: [ - '$wasmfsOPFSProxyFinish', - '$stackSave', - '$stackRestore', '_wasmfs_opfs_record_entry', ], _wasmfs_opfs_get_entries__async: {{{ ASYNCIFY_NEEDED }}}, @@ -188,7 +174,6 @@ addToLibrary({ wasmfsOPFSProxyFinish(ctx); }, - _wasmfs_opfs_insert_file__deps: ['$wasmfsOPFSGetOrCreateFile', '$wasmfsOPFSProxyFinish'], _wasmfs_opfs_insert_file__async: {{{ ASYNCIFY_NEEDED }}}, _wasmfs_opfs_insert_file: async (ctx, parent, namePtr, childIDPtr) => { let name = UTF8ToString(namePtr); @@ -197,7 +182,6 @@ addToLibrary({ wasmfsOPFSProxyFinish(ctx); }, - _wasmfs_opfs_insert_directory__deps: ['$wasmfsOPFSGetOrCreateDir', '$wasmfsOPFSProxyFinish'], _wasmfs_opfs_insert_directory__async: {{{ ASYNCIFY_NEEDED }}}, _wasmfs_opfs_insert_directory: async (ctx, parent, namePtr, childIDPtr) => { let name = UTF8ToString(namePtr); @@ -206,9 +190,6 @@ addToLibrary({ wasmfsOPFSProxyFinish(ctx); }, - _wasmfs_opfs_move_file__deps: ['$wasmfsOPFSFileHandles', - '$wasmfsOPFSDirectoryHandles', - '$wasmfsOPFSProxyFinish'], _wasmfs_opfs_move_file__async: {{{ ASYNCIFY_NEEDED }}}, _wasmfs_opfs_move_file: async (ctx, fileID, newParentID, namePtr, errPtr) => { let name = UTF8ToString(namePtr); @@ -223,7 +204,6 @@ addToLibrary({ wasmfsOPFSProxyFinish(ctx); }, - _wasmfs_opfs_remove_child__deps: ['$wasmfsOPFSDirectoryHandles', '$wasmfsOPFSProxyFinish'], _wasmfs_opfs_remove_child__async: {{{ ASYNCIFY_NEEDED }}}, _wasmfs_opfs_remove_child: async (ctx, dirID, namePtr, errPtr) => { let name = UTF8ToString(namePtr); @@ -237,22 +217,14 @@ addToLibrary({ wasmfsOPFSProxyFinish(ctx); }, - _wasmfs_opfs_free_file__deps: ['$wasmfsOPFSFileHandles'], _wasmfs_opfs_free_file: (fileID) => { wasmfsOPFSFileHandles.free(fileID); }, - _wasmfs_opfs_free_directory__deps: ['$wasmfsOPFSDirectoryHandles'], _wasmfs_opfs_free_directory: (dirID) => { wasmfsOPFSDirectoryHandles.free(dirID); }, - _wasmfs_opfs_open_access__deps: ['$wasmfsOPFSFileHandles', - '$wasmfsOPFSAccessHandles', '$wasmfsOPFSProxyFinish', -#if !PTHREADS - '$wasmfsOPFSCreateAsyncAccessHandle' -#endif - ], _wasmfs_opfs_open_access__async: {{{ ASYNCIFY_NEEDED }}}, _wasmfs_opfs_open_access: async (ctx, fileID, accessIDPtr) => { let fileHandle = wasmfsOPFSFileHandles.get(fileID); @@ -291,8 +263,6 @@ addToLibrary({ wasmfsOPFSProxyFinish(ctx); }, - _wasmfs_opfs_open_blob__deps: ['$wasmfsOPFSFileHandles', - '$wasmfsOPFSBlobs', '$wasmfsOPFSProxyFinish'], _wasmfs_opfs_open_blob__async: {{{ ASYNCIFY_NEEDED }}}, _wasmfs_opfs_open_blob: async (ctx, fileID, blobIDPtr) => { let fileHandle = wasmfsOPFSFileHandles.get(fileID); @@ -314,7 +284,6 @@ addToLibrary({ wasmfsOPFSProxyFinish(ctx); }, - _wasmfs_opfs_close_access__deps: ['$wasmfsOPFSAccessHandles', '$wasmfsOPFSProxyFinish'], _wasmfs_opfs_close_access__async: {{{ ASYNCIFY_NEEDED }}}, _wasmfs_opfs_close_access: async (ctx, accessID, errPtr) => { let accessHandle = wasmfsOPFSAccessHandles.get(accessID); @@ -328,13 +297,11 @@ addToLibrary({ wasmfsOPFSProxyFinish(ctx); }, - _wasmfs_opfs_close_blob__deps: ['$wasmfsOPFSBlobs'], _wasmfs_opfs_close_blob: (blobID) => { wasmfsOPFSBlobs.free(blobID); }, _wasmfs_opfs_read_access__i53abi: true, - _wasmfs_opfs_read_access__deps: ['$wasmfsOPFSAccessHandles'], _wasmfs_opfs_read_access__async: {{{ ASYNCIFY_NEEDED }}}, _wasmfs_opfs_read_access: {{{ asyncIf(!PTHREADS) }}}(accessID, bufPtr, len, pos) => { let accessHandle = wasmfsOPFSAccessHandles.get(accessID); @@ -353,7 +320,6 @@ addToLibrary({ }, _wasmfs_opfs_read_blob__i53abi: true, - _wasmfs_opfs_read_blob__deps: ['$wasmfsOPFSBlobs', '$wasmfsOPFSProxyFinish'], _wasmfs_opfs_read_blob__async: {{{ ASYNCIFY_NEEDED }}}, _wasmfs_opfs_read_blob: async (ctx, blobID, bufPtr, len, pos, nreadPtr) => { let blob = wasmfsOPFSBlobs.get(blobID); @@ -384,7 +350,6 @@ addToLibrary({ }, _wasmfs_opfs_write_access__i53abi: true, - _wasmfs_opfs_write_access__deps: ['$wasmfsOPFSAccessHandles'], _wasmfs_opfs_write_access__async: {{{ ASYNCIFY_NEEDED }}}, _wasmfs_opfs_write_access: {{{ asyncIf(!PTHREADS) }}}(accessID, bufPtr, len, pos) => { let accessHandle = wasmfsOPFSAccessHandles.get(accessID); @@ -402,7 +367,6 @@ addToLibrary({ } }, - _wasmfs_opfs_get_size_access__deps: ['$wasmfsOPFSAccessHandles', '$wasmfsOPFSProxyFinish'], _wasmfs_opfs_get_size_access__async: {{{ ASYNCIFY_NEEDED }}}, _wasmfs_opfs_get_size_access: async (ctx, accessID, sizePtr) => { let accessHandle = wasmfsOPFSAccessHandles.get(accessID); @@ -417,13 +381,11 @@ addToLibrary({ }, _wasmfs_opfs_get_size_blob__i53abi: true, - _wasmfs_opfs_get_size_blob__deps: ['$wasmfsOPFSBlobs'], _wasmfs_opfs_get_size_blob: (blobID) => { // This cannot fail. return wasmfsOPFSBlobs.get(blobID).size; }, - _wasmfs_opfs_get_size_file__deps: ['$wasmfsOPFSFileHandles', '$wasmfsOPFSProxyFinish'], _wasmfs_opfs_get_size_file__async: {{{ ASYNCIFY_NEEDED }}}, _wasmfs_opfs_get_size_file: async (ctx, fileID, sizePtr) => { let fileHandle = wasmfsOPFSFileHandles.get(fileID); @@ -438,7 +400,6 @@ addToLibrary({ }, _wasmfs_opfs_set_size_access__i53abi: true, - _wasmfs_opfs_set_size_access__deps: ['$wasmfsOPFSAccessHandles', '$wasmfsOPFSProxyFinish'], _wasmfs_opfs_set_size_access__async: {{{ ASYNCIFY_NEEDED }}}, _wasmfs_opfs_set_size_access: async (ctx, accessID, size, errPtr) => { let accessHandle = wasmfsOPFSAccessHandles.get(accessID); @@ -452,7 +413,6 @@ addToLibrary({ }, _wasmfs_opfs_set_size_file__i53abi: true, - _wasmfs_opfs_set_size_file__deps: ['$wasmfsOPFSFileHandles', '$wasmfsOPFSProxyFinish'], _wasmfs_opfs_set_size_file__async: {{{ ASYNCIFY_NEEDED }}}, _wasmfs_opfs_set_size_file: async (ctx, fileID, size, errPtr) => { let fileHandle = wasmfsOPFSFileHandles.get(fileID); @@ -467,7 +427,6 @@ addToLibrary({ wasmfsOPFSProxyFinish(ctx); }, - _wasmfs_opfs_flush_access__deps: ['$wasmfsOPFSAccessHandles', '$wasmfsOPFSProxyFinish'], _wasmfs_opfs_flush_access__async: {{{ ASYNCIFY_NEEDED }}}, _wasmfs_opfs_flush_access: async (ctx, accessID, errPtr) => { let accessHandle = wasmfsOPFSAccessHandles.get(accessID); diff --git a/src/lib/libwebaudio.js b/src/lib/libwebaudio.js index 23d464e4d4e08..6071c83359b0b 100644 --- a/src/lib/libwebaudio.js +++ b/src/lib/libwebaudio.js @@ -16,7 +16,6 @@ var LibraryWebAudio = { // you have already created manually without calling emscripten_create_audio_context(). // Note: To let that AudioContext be garbage collected later, call the function // emscriptenDestroyAudioContext() to unbind it from Wasm. - $emscriptenRegisterAudioObject__deps: ['$emAudio', '$emAudioCounter'], $emscriptenRegisterAudioObject: (object) => { #if ASSERTIONS assert(object, 'null pointer passed to emscriptenRegisterAudioObject'); @@ -85,7 +84,7 @@ var LibraryWebAudio = { // the user will not be able to utilize the node unless they call // emscriptenGetAudioObject() on it on JS side to connect it to the graph, so // this avoids the user needing to manually add the dependency on the command line. - emscripten_create_audio_context__deps: ['$emscriptenRegisterAudioObject', '$emscriptenGetAudioObject'], + emscripten_create_audio_context__deps: ['$emscriptenGetAudioObject'], emscripten_create_audio_context: (options) => { // Safari added unprefixed AudioContext support in Safari 14.5 on iOS: https://caniuse.com/audio-api #if ASSERTIONS @@ -160,8 +159,6 @@ var LibraryWebAudio = { // _emscripten_create_audio_worklet() doesn't use stackAlloc, HEAPs, // etc., but the created worklet does. _emscripten_create_audio_worklet__deps: [ - '$_emAudioDispatchProcessorCallback', - '$emAudio', '$stackAlloc', '$stackRestore', '$stackSave', '$HEAP32', '$HEAPU32', '$HEAPF32', #if WASM_BIGINT || MEMORY64 '$HEAP64', '$HEAPU64', @@ -267,7 +264,6 @@ var LibraryWebAudio = { }).catch(audioWorkletCreationFailed); }, - $_emAudioDispatchProcessorCallback__deps: ['$getWasmTableEntry'], $_emAudioDispatchProcessorCallback: (e) => { var data = e.data; // '_wsc' is short for 'wasm call', trying to use an identifier name that @@ -323,7 +319,6 @@ var LibraryWebAudio = { }); }, - emscripten_create_wasm_audio_worklet_node__deps: ['$emscriptenGetContextQuantumSize'], emscripten_create_wasm_audio_worklet_node: (contextHandle, name, options, callback, userData) => { #if ASSERTIONS || WEBAUDIO_DEBUG emAudioExpectContext(contextHandle, 'emscripten_create_wasm_audio_worklet_node'); @@ -360,7 +355,6 @@ var LibraryWebAudio = { }, #endif // ~AUDIO_WORKLET - emscripten_audio_context_quantum_size__deps: ['$emscriptenGetContextQuantumSize'], emscripten_audio_context_quantum_size: (contextHandle) => { #if ASSERTIONS || WEBAUDIO_DEBUG emAudioExpectContext(contextHandle, 'emscripten_audio_context_quantum_size') @@ -402,55 +396,44 @@ var LibraryWebAudio = { emscripten_current_thread_is_audio_worklet: () => ENVIRONMENT_IS_AUDIO_WORKLET, - emscripten_audio_worklet_post_function_v__deps: ['$emAudioWorkletPostFunction'], emscripten_audio_worklet_post_function_v: (audioContext, funcPtr) => { emAudioWorkletPostFunction(audioContext, funcPtr, []); }, - $emscripten_audio_worklet_post_function_1__deps: ['$emAudioWorkletPostFunction'], $emscripten_audio_worklet_post_function_1: (audioContext, funcPtr, arg0) => { emAudioWorkletPostFunction(audioContext, funcPtr, [arg0]); }, - emscripten_audio_worklet_post_function_vi__deps: ['$emscripten_audio_worklet_post_function_1'], emscripten_audio_worklet_post_function_vi(audioContext, funcPtr, arg0) { emscripten_audio_worklet_post_function_1(audioContext, funcPtr, arg0) }, - emscripten_audio_worklet_post_function_vd__deps: ['$emscripten_audio_worklet_post_function_1'], emscripten_audio_worklet_post_function_vd(audioContext, funcPtr, arg0) { emscripten_audio_worklet_post_function_1(audioContext, funcPtr, arg0) }, - $emscripten_audio_worklet_post_function_2__deps: ['$emAudioWorkletPostFunction'], $emscripten_audio_worklet_post_function_2: (audioContext, funcPtr, arg0, arg1) => { emAudioWorkletPostFunction(audioContext, funcPtr, [arg0, arg1]); }, - emscripten_audio_worklet_post_function_vii__deps: ['$emscripten_audio_worklet_post_function_2'], emscripten_audio_worklet_post_function_vii: (audioContext, funcPtr, arg0, arg1) => { emscripten_audio_worklet_post_function_2(audioContext, funcPtr, arg0, arg1); }, - emscripten_audio_worklet_post_function_vdd__deps: ['$emscripten_audio_worklet_post_function_2'], emscripten_audio_worklet_post_function_vdd: (audioContext, funcPtr, arg0, arg1) => { emscripten_audio_worklet_post_function_2(audioContext, funcPtr, arg0, arg1); }, - $emscripten_audio_worklet_post_function_3__deps: ['$emAudioWorkletPostFunction'], $emscripten_audio_worklet_post_function_3: (audioContext, funcPtr, arg0, arg1, arg2) => { emAudioWorkletPostFunction(audioContext, funcPtr, [arg0, arg1, arg2]); }, - emscripten_audio_worklet_post_function_viii__deps: ['$emscripten_audio_worklet_post_function_3'], emscripten_audio_worklet_post_function_viii: (audioContext, funcPtr, arg0, arg1, arg2) => { emscripten_audio_worklet_post_function_3(audioContext, funcPtr, arg0, arg1, arg2); }, - emscripten_audio_worklet_post_function_vddd__deps: ['$emscripten_audio_worklet_post_function_3'], emscripten_audio_worklet_post_function_vddd: (audioContext, funcPtr, arg0, arg1, arg2) => { emscripten_audio_worklet_post_function_3(audioContext, funcPtr, arg0, arg1, arg2); }, - emscripten_audio_worklet_post_function_sig__deps: ['$readEmAsmArgs', '$emAudioWorkletPostFunction'], emscripten_audio_worklet_post_function_sig: (audioContext, funcPtr, sigPtr, varargs) => { #if ASSERTIONS assert(sigPtr); @@ -461,11 +444,4 @@ var LibraryWebAudio = { } }; -#if ASSERTIONS || WEBAUDIO_DEBUG -autoAddDeps(LibraryWebAudio, '$_emAudioExpectHandle'); -autoAddDeps(LibraryWebAudio, '$emAudioExpectNode'); -autoAddDeps(LibraryWebAudio, '$emAudioExpectContext'); -autoAddDeps(LibraryWebAudio, '$emAudioExpectNodeOrContext'); -#endif - addToLibrary(LibraryWebAudio); diff --git a/src/lib/libwebgl.js b/src/lib/libwebgl.js index cb3825add8b9f..c4c7d8e79c34c 100644 --- a/src/lib/libwebgl.js +++ b/src/lib/libwebgl.js @@ -106,7 +106,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; } }, - emscripten_webgl_enable_ANGLE_instanced_arrays__deps: ['$webgl_enable_ANGLE_instanced_arrays'], emscripten_webgl_enable_ANGLE_instanced_arrays: (ctx) => webgl_enable_ANGLE_instanced_arrays(GL.contexts[ctx].GLctx), $webgl_enable_OES_vertex_array_object: (ctx) => { @@ -121,7 +120,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; } }, - emscripten_webgl_enable_OES_vertex_array_object__deps: ['$webgl_enable_OES_vertex_array_object'], emscripten_webgl_enable_OES_vertex_array_object: (ctx) => webgl_enable_OES_vertex_array_object(GL.contexts[ctx].GLctx), $webgl_enable_WEBGL_draw_buffers: (ctx) => { @@ -133,7 +131,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; } }, - emscripten_webgl_enable_WEBGL_draw_buffers__deps: ['$webgl_enable_WEBGL_draw_buffers'], emscripten_webgl_enable_WEBGL_draw_buffers: (ctx) => webgl_enable_WEBGL_draw_buffers(GL.contexts[ctx].GLctx), #endif @@ -141,25 +138,21 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; // Closure is expected to be allowed to minify the '.multiDrawWebgl' property, so not accessing it quoted. !!(ctx.multiDrawWebgl = ctx.getExtension('WEBGL_multi_draw')), - emscripten_webgl_enable_WEBGL_multi_draw__deps: ['$webgl_enable_WEBGL_multi_draw'], emscripten_webgl_enable_WEBGL_multi_draw: (ctx) => webgl_enable_WEBGL_multi_draw(GL.contexts[ctx].GLctx), $webgl_enable_EXT_polygon_offset_clamp: (ctx) => !!(ctx.extPolygonOffsetClamp = ctx.getExtension('EXT_polygon_offset_clamp')), - emscripten_webgl_enable_EXT_polygon_offset_clamp__deps: ['$webgl_enable_EXT_polygon_offset_clamp'], emscripten_webgl_enable_EXT_polygon_offset_clamp: (ctx) => webgl_enable_EXT_polygon_offset_clamp(GL.contexts[ctx].GLctx), $webgl_enable_EXT_clip_control: (ctx) => !!(ctx.extClipControl = ctx.getExtension('EXT_clip_control')), - emscripten_webgl_enable_EXT_clip_control__deps: ['$webgl_enable_EXT_clip_control'], emscripten_webgl_enable_EXT_clip_control: (ctx) => webgl_enable_EXT_clip_control(GL.contexts[ctx].GLctx), $webgl_enable_WEBGL_polygon_mode: (ctx) => !!(ctx.webglPolygonMode = ctx.getExtension('WEBGL_polygon_mode')), - emscripten_webgl_enable_WEBGL_polygon_mode__deps: ['$webgl_enable_WEBGL_polygon_mode'], emscripten_webgl_enable_WEBGL_polygon_mode: (ctx) => webgl_enable_WEBGL_polygon_mode(GL.contexts[ctx].GLctx), $getEmscriptenSupportedExtensions__internal: true, @@ -223,35 +216,18 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; }, $GLctx__internal: true, + $GLctx__deps: ['$GL'], $GLctx: undefined, $GL__deps: [ - '$GLctx', #if GL_SUPPORT_AUTOMATIC_ENABLE_EXTENSIONS // If GL_SUPPORT_AUTOMATIC_ENABLE_EXTENSIONS is enabled, GL.initExtensions() will call to initialize these. #if PTHREADS 'malloc', // Needed by registerContext 'free', // Needed by deleteContext #endif -#if MIN_WEBGL_VERSION == 1 - '$webgl_enable_ANGLE_instanced_arrays', - '$webgl_enable_OES_vertex_array_object', - '$webgl_enable_WEBGL_draw_buffers', -#endif -#if MAX_WEBGL_VERSION >= 2 - '$webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance', - '$webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance', -#endif - '$webgl_enable_EXT_polygon_offset_clamp', - '$webgl_enable_EXT_clip_control', - '$webgl_enable_WEBGL_polygon_mode', - '$webgl_enable_WEBGL_multi_draw', - '$getEmscriptenSupportedExtensions', #endif // GL_SUPPORT_AUTOMATIC_ENABLE_EXTENSIONS #if FULL_ES2 || LEGACY_GL_EMULATION '$registerPreMainLoop', -#endif -#if FULL_ES2 - '$webglBufferSubData', #endif ], #if FULL_ES2 || LEGACY_GL_EMULATION @@ -1275,7 +1251,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; }, $webglGetExtensions__internal: true, - $webglGetExtensions__deps: ['$getEmscriptenSupportedExtensions'], $webglGetExtensions: () => { var exts = getEmscriptenSupportedExtensions(GLctx); #if GL_EXTENSIONS_IN_PREFIXED_FORMAT @@ -1295,7 +1270,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; // The allocated strings are cached and never freed. glGetString__noleakcheck: true, - glGetString__deps: ['$stringToNewUTF8', '$webglGetExtensions'], glGetString: (name_) => { var ret = GL.stringCache[name_]; if (!ret) { @@ -1360,11 +1334,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; return ret; }, - $emscriptenWebGLGet__deps: ['$writeI53ToI64', -#if MAX_WEBGL_VERSION >= 2 - '$webglGetExtensions', // For GL_NUM_EXTENSIONS -#endif - ], $emscriptenWebGLGet: (name_, p, type) => { // Guard against user passing a null pointer. // Note that GLES2 spec does not say anything about how passing a null @@ -1544,13 +1513,10 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; } }, - glGetIntegerv__deps: ['$emscriptenWebGLGet'], glGetIntegerv: (name_, p) => emscriptenWebGLGet(name_, p, {{{ cDefs.EM_FUNC_SIG_PARAM_I }}}), - glGetFloatv__deps: ['$emscriptenWebGLGet'], glGetFloatv: (name_, p) => emscriptenWebGLGet(name_, p, {{{ cDefs.EM_FUNC_SIG_PARAM_F }}}), - glGetBooleanv__deps: ['$emscriptenWebGLGet'], glGetBooleanv: (name_, p) => emscriptenWebGLGet(name_, p, {{{ cDefs.EM_FUNC_SIG_PARAM_B }}}), glDeleteTextures: (n, textures) => { @@ -1656,7 +1622,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; return colorChannels[format - 0x1902]||1; }, - $emscriptenWebGLGetTexPixelData__deps: ['$computeUnpackAlignedImageSize', '$colorChannelsInGlTextureFormat', '$heapObjectForWebGLType', '$toTypedArrayIndex'], $emscriptenWebGLGetTexPixelData: (type, format, width, height, pixels) => { var heap = heapObjectForWebGLType(type); var sizePerPixel = colorChannelsInGlTextureFormat(format) * heap.BYTES_PER_ELEMENT; @@ -1667,11 +1632,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; return heap.subarray(toTypedArrayIndex(pixels, heap), toTypedArrayIndex(pixels + bytes, heap)); }, - glTexImage2D__deps: ['$emscriptenWebGLGetTexPixelData' -#if WEBGL_USE_GARBAGE_FREE_APIS - , '$heapObjectForWebGLType', '$toTypedArrayIndex' -#endif - ], glTexImage2D: (target, level, internalFormat, width, height, border, format, type, pixels) => { #if MAX_WEBGL_VERSION >= 2 #if WEBGL2_BACKWARDS_COMPATIBILITY_EMULATION @@ -1715,11 +1675,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); }, - glTexSubImage2D__deps: ['$emscriptenWebGLGetTexPixelData', -#if WEBGL_USE_GARBAGE_FREE_APIS - '$heapObjectForWebGLType', '$toTypedArrayIndex', -#endif - ], glTexSubImage2D: (target, level, xoffset, yoffset, width, height, format, type, pixels) => { #if MAX_WEBGL_VERSION >= 2 #if WEBGL2_BACKWARDS_COMPATIBILITY_EMULATION @@ -1749,14 +1704,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixelData); }, - glReadPixels__deps: [ -#if INCLUDE_WEBGL1_FALLBACK - '$emscriptenWebGLGetTexPixelData', -#endif -#if WEBGL_USE_GARBAGE_FREE_APIS - '$heapObjectForWebGLType', '$toTypedArrayIndex', -#endif - ], glReadPixels: (x, y, width, height, format, type, pixels) => { #if MAX_WEBGL_VERSION >= 2 if ({{{ isCurrentContextWebGL2() }}}) { @@ -1933,7 +1880,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; // This cannot be simple alias because under wasm64 we need to be able modify // the function at compile time to provide automatically marshal of the pointer arguments. - glBufferSubData__deps: ['$webglBufferSubData'], glBufferSubData: (target, offset, size, data) => webglBufferSubData(target, offset, size, data), // Queries EXT @@ -2039,7 +1985,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; glGetQueryObjectuivEXT: 'glGetQueryObjectivEXT', glGetQueryObjecti64vEXT__sig: 'viip', - glGetQueryObjecti64vEXT__deps: ['$writeI53ToI64'], glGetQueryObjecti64vEXT: (id, pname, params) => { if (!params) { // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense @@ -2130,7 +2075,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; // This function intentionally assigns `HEAP32[x] = someBoolean;` Don't let // Closure mind about that. $emscriptenWebGLGetUniform__docs: '/** @suppress{checkTypes} */', - $emscriptenWebGLGetUniform__deps: ['$webglGetProgramUniformLocation', '$webglPrepareUniformLocationsBeforeFirstUse'], $emscriptenWebGLGetUniform: (program, location, params, type) => { if (!params) { // GLES2 specification does not specify how to behave if params is a null @@ -2170,21 +2114,16 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; } }, - glGetUniformfv__deps: ['$emscriptenWebGLGetUniform'], glGetUniformfv: (program, location, params) => { emscriptenWebGLGetUniform(program, location, params, {{{ cDefs.EM_FUNC_SIG_PARAM_F }}}); }, - glGetUniformiv__deps: ['$emscriptenWebGLGetUniform'], glGetUniformiv: (program, location, params) => { emscriptenWebGLGetUniform(program, location, params, {{{ cDefs.EM_FUNC_SIG_PARAM_I }}}); }, // Returns the WebGLUniformLocation object corresponding to the location index // integer on the currently active shader in this GL context. -#if GL_EXPLICIT_UNIFORM_LOCATION - $webglGetProgramUniformLocation__deps: ['$webglPrepareUniformLocationsBeforeFirstUse'], -#endif $webglGetProgramUniformLocation: (program, location) => { #if !GL_TRACK_ERRORS && ASSERTIONS // In -sGL_TRACK_ERRORS=0 build mode do not allow calling glUniform*() @@ -2220,7 +2159,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; #endif }, - $webglGetUniformLocation__deps: ['$webglGetProgramUniformLocation'], $webglGetUniformLocation: (location) => { #if !GL_TRACK_ERRORS && ASSERTIONS // In -sGL_TRACK_ERRORS=0 build mode do not allow calling glUniform*() @@ -2231,7 +2169,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; return webglGetProgramUniformLocation(GLctx.currentProgram, location); }, - $webglPrepareUniformLocationsBeforeFirstUse__deps: ['$webglGetLeftBracePos'], $webglPrepareUniformLocationsBeforeFirstUse: (program) => { var uniformLocsById = program.uniformLocsById, // Maps GLuint -> WebGLUniformLocation uniformSizeAndIdsByName = program.uniformSizeAndIdsByName, // Maps name -> [uniform array length, GLuint] @@ -2288,7 +2225,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; $webglGetLeftBracePos__docs: '/** @noinline */', $webglGetLeftBracePos: (name) => name.slice(-1) == ']' && name.lastIndexOf('['), - glGetUniformLocation__deps: ['$jstoi_q', '$webglPrepareUniformLocationsBeforeFirstUse', '$webglGetLeftBracePos'], glGetUniformLocation: (program, name) => { #if GL_ASSERTIONS @@ -2395,7 +2331,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; } }, - glGetVertexAttribfv__deps: ['$emscriptenWebGLGetVertexAttrib'], glGetVertexAttribfv: (index, pname, params) => { // N.B. This function may only be called if the vertex attribute was // specified using the function glVertexAttrib*f(), otherwise the results @@ -2403,7 +2338,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; emscriptenWebGLGetVertexAttrib(index, pname, params, {{{ cDefs.EM_FUNC_SIG_PARAM_F }}}); }, - glGetVertexAttribiv__deps: ['$emscriptenWebGLGetVertexAttrib'], glGetVertexAttribiv: (index, pname, params) => { // N.B. This function may only be called if the vertex attribute was // specified using the function glVertexAttrib*f(), otherwise the results @@ -2430,7 +2364,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; {{{ makeSetValue('pointer', '0', 'GLctx.getVertexAttribOffset(index, pname)', 'i32') }}}; }, - glUniform1f__deps: ['$webglGetUniformLocation'], glUniform1f: (location, v0) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform1f', 'location'); @@ -2438,7 +2371,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; GLctx.uniform1f(webglGetUniformLocation(location), v0); }, - glUniform2f__deps: ['$webglGetUniformLocation'], glUniform2f: (location, v0, v1) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform2f', 'location'); @@ -2446,7 +2378,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; GLctx.uniform2f(webglGetUniformLocation(location), v0, v1); }, - glUniform3f__deps: ['$webglGetUniformLocation'], glUniform3f: (location, v0, v1, v2) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform3f', 'location'); @@ -2454,7 +2385,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; GLctx.uniform3f(webglGetUniformLocation(location), v0, v1, v2); }, - glUniform4f__deps: ['$webglGetUniformLocation'], glUniform4f: (location, v0, v1, v2, v3) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform4f', 'location'); @@ -2462,7 +2392,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; GLctx.uniform4f(webglGetUniformLocation(location), v0, v1, v2, v3); }, - glUniform1i__deps: ['$webglGetUniformLocation'], glUniform1i: (location, v0) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform1i', 'location'); @@ -2470,7 +2399,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; GLctx.uniform1i(webglGetUniformLocation(location), v0); }, - glUniform2i__deps: ['$webglGetUniformLocation'], glUniform2i: (location, v0, v1) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform2i', 'location'); @@ -2478,7 +2406,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; GLctx.uniform2i(webglGetUniformLocation(location), v0, v1); }, - glUniform3i__deps: ['$webglGetUniformLocation'], glUniform3i: (location, v0, v1, v2) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform3i', 'location'); @@ -2486,7 +2413,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; GLctx.uniform3i(webglGetUniformLocation(location), v0, v1, v2); }, - glUniform4i__deps: ['$webglGetUniformLocation'], glUniform4i: (location, v0, v1, v2, v3) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform4i', 'location'); @@ -2494,11 +2420,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; GLctx.uniform4i(webglGetUniformLocation(location), v0, v1, v2, v3); }, - glUniform1iv__deps: ['$webglGetUniformLocation' -#if GL_POOL_TEMP_BUFFERS && (MIN_WEBGL_VERSION == 1 || !WEBGL_USE_GARBAGE_FREE_APIS) - , '$miniTempWebGLIntBuffers' -#endif - ], glUniform1iv: (location, count, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform1iv', 'location'); @@ -2535,11 +2456,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; #endif // MIN_WEBGL_VERSION >= 2 && WEBGL_USE_GARBAGE_FREE_APIS }, - glUniform2iv__deps: ['$webglGetUniformLocation' -#if GL_POOL_TEMP_BUFFERS && (MIN_WEBGL_VERSION == 1 || !WEBGL_USE_GARBAGE_FREE_APIS) - , '$miniTempWebGLIntBuffers' -#endif - ], glUniform2iv: (location, count, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform2iv', 'location'); @@ -2578,11 +2494,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; #endif // MIN_WEBGL_VERSION >= 2 && WEBGL_USE_GARBAGE_FREE_APIS }, - glUniform3iv__deps: ['$webglGetUniformLocation' -#if GL_POOL_TEMP_BUFFERS && (MIN_WEBGL_VERSION == 1 || !WEBGL_USE_GARBAGE_FREE_APIS) - , '$miniTempWebGLIntBuffers' -#endif - ], glUniform3iv: (location, count, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform3iv', 'location'); @@ -2622,11 +2533,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; #endif // MIN_WEBGL_VERSION >= 2 && WEBGL_USE_GARBAGE_FREE_APIS }, - glUniform4iv__deps: ['$webglGetUniformLocation' -#if GL_POOL_TEMP_BUFFERS && (MIN_WEBGL_VERSION == 1 || !WEBGL_USE_GARBAGE_FREE_APIS) - , '$miniTempWebGLIntBuffers' -#endif - ], glUniform4iv: (location, count, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform4iv', 'location'); @@ -2667,11 +2573,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; #endif // MIN_WEBGL_VERSION >= 2 && WEBGL_USE_GARBAGE_FREE_APIS }, - glUniform1fv__deps: ['$webglGetUniformLocation' -#if GL_POOL_TEMP_BUFFERS && (MIN_WEBGL_VERSION == 1 || !WEBGL_USE_GARBAGE_FREE_APIS) - , '$miniTempWebGLFloatBuffers' -#endif - ], glUniform1fv: (location, count, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform1fv', 'location'); @@ -2708,11 +2609,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; #endif // MIN_WEBGL_VERSION >= 2 && WEBGL_USE_GARBAGE_FREE_APIS }, - glUniform2fv__deps: ['$webglGetUniformLocation' -#if GL_POOL_TEMP_BUFFERS && (MIN_WEBGL_VERSION == 1 || !WEBGL_USE_GARBAGE_FREE_APIS) - , '$miniTempWebGLFloatBuffers' -#endif - ], glUniform2fv: (location, count, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform2fv', 'location'); @@ -2751,11 +2647,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; #endif // MIN_WEBGL_VERSION >= 2 && WEBGL_USE_GARBAGE_FREE_APIS }, - glUniform3fv__deps: ['$webglGetUniformLocation' -#if GL_POOL_TEMP_BUFFERS && (MIN_WEBGL_VERSION == 1 || !WEBGL_USE_GARBAGE_FREE_APIS) - , '$miniTempWebGLFloatBuffers' -#endif - ], glUniform3fv: (location, count, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform3fv', 'location'); @@ -2795,11 +2686,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; #endif // MIN_WEBGL_VERSION >= 2 && WEBGL_USE_GARBAGE_FREE_APIS }, - glUniform4fv__deps: ['$webglGetUniformLocation' -#if GL_POOL_TEMP_BUFFERS && (MIN_WEBGL_VERSION == 1 || !WEBGL_USE_GARBAGE_FREE_APIS) - , '$miniTempWebGLFloatBuffers' -#endif - ], glUniform4fv: (location, count, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform4fv', 'location'); @@ -2844,11 +2730,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; #endif // MIN_WEBGL_VERSION >= 2 && WEBGL_USE_GARBAGE_FREE_APIS }, - glUniformMatrix2fv__deps: ['$webglGetUniformLocation' -#if GL_POOL_TEMP_BUFFERS && (MIN_WEBGL_VERSION == 1 || !WEBGL_USE_GARBAGE_FREE_APIS) - , '$miniTempWebGLFloatBuffers' -#endif - ], glUniformMatrix2fv: (location, count, transpose, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniformMatrix2fv', 'location'); @@ -2889,11 +2770,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; #endif // MIN_WEBGL_VERSION >= 2 && WEBGL_USE_GARBAGE_FREE_APIS }, - glUniformMatrix3fv__deps: ['$webglGetUniformLocation' -#if GL_POOL_TEMP_BUFFERS && (MIN_WEBGL_VERSION == 1 || !WEBGL_USE_GARBAGE_FREE_APIS) - , '$miniTempWebGLFloatBuffers' -#endif - ], glUniformMatrix3fv: (location, count, transpose, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniformMatrix3fv', 'location'); @@ -2939,11 +2815,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; #endif // MIN_WEBGL_VERSION >= 2 && WEBGL_USE_GARBAGE_FREE_APIS }, - glUniformMatrix4fv__deps: ['$webglGetUniformLocation' -#if GL_POOL_TEMP_BUFFERS && (MIN_WEBGL_VERSION == 1 || !WEBGL_USE_GARBAGE_FREE_APIS) - , '$miniTempWebGLFloatBuffers' -#endif - ], glUniformMatrix4fv: (location, count, transpose, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniformMatrix4fv', 'location'); @@ -3084,7 +2955,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; glGetAttribLocation: (program, name) => GLctx.getAttribLocation(GL.programs[program], UTF8ToString(name)), - $__glGetActiveAttribOrUniform__deps: ['$stringToUTF8'], $__glGetActiveAttribOrUniform: (funcName, program, index, bufSize, length, size, type, name) => { #if GL_ASSERTIONS GL.validateGLObjectID(GL.programs, program, funcName, 'program'); @@ -3100,11 +2970,9 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; } }, - glGetActiveAttrib__deps: ['$__glGetActiveAttribOrUniform'], glGetActiveAttrib: (program, index, bufSize, length, size, type, name) => __glGetActiveAttribOrUniform('getActiveAttrib', program, index, bufSize, length, size, type, name), - glGetActiveUniform__deps: ['$__glGetActiveAttribOrUniform'], glGetActiveUniform: (program, index, bufSize, length, size, type, name) => __glGetActiveAttribOrUniform('getActiveUniform', program, index, bufSize, length, size, type, name), @@ -3152,13 +3020,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; } }, -#if GL_EXPLICIT_UNIFORM_LOCATION || GL_EXPLICIT_UNIFORM_BINDING - glShaderSource__deps: ['$preprocess_c_code', '$remove_cpp_comments_in_shaders', -#if GL_EXPLICIT_UNIFORM_BINDING - '$find_closing_parens_index', '$jstoi_q', -#endif - ], -#endif glShaderSource: (shader, count, string, length) => { #if GL_ASSERTIONS GL.validateGLObjectID(GL.shaders, shader, 'glShaderSource', 'shader'); @@ -3353,7 +3214,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; #endif }, - glGetShaderInfoLog__deps: ['$stringToUTF8'], glGetShaderInfoLog: (shader, maxLength, length, infoLog) => { #if GL_ASSERTIONS GL.validateGLObjectID(GL.shaders, shader, 'glGetShaderInfoLog', 'shader'); @@ -3624,9 +3484,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; }, #endif -#if GL_EXPLICIT_UNIFORM_BINDING - glUseProgram__deps: ['$webglApplyExplicitProgramBindings'], -#endif glUseProgram: (program) => { #if GL_ASSERTIONS GL.validateGLObjectID(GL.programs, program, 'glUseProgram', 'program'); @@ -3730,9 +3587,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; return GLctx.isFramebuffer(fb); }, -#if LEGACY_GL_EMULATION - glGenVertexArrays__deps: ['$emulGlGenVertexArrays'], -#endif glGenVertexArrays: (n, arrays) => { #if LEGACY_GL_EMULATION emulGlGenVertexArrays(n, arrays); @@ -3748,9 +3602,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; #endif }, -#if LEGACY_GL_EMULATION - glDeleteVertexArrays__deps: ['$emulGlDeleteVertexArrays'], -#endif glDeleteVertexArrays: (n, vaos) => { #if LEGACY_GL_EMULATION emulGlDeleteVertexArrays(n, vaos); @@ -3766,9 +3617,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; #endif }, -#if LEGACY_GL_EMULATION - glBindVertexArray__deps: ['$emulGlBindVertexArray'], -#endif glBindVertexArray: (vao) => { #if LEGACY_GL_EMULATION emulGlBindVertexArray(vao); @@ -3784,9 +3632,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; #endif }, -#if LEGACY_GL_EMULATION - glIsVertexArray__deps: ['$emulGlIsVertexArray'], -#endif glIsVertexArray: (array) => { #if LEGACY_GL_EMULATION return emulGlIsVertexArray(array); @@ -3885,9 +3730,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; #endif }, -#if FULL_ES2 - glDrawElements__deps: ['$webglBufferSubData'], -#endif glDrawElements: (mode, count, type, indices) => { #if FULL_ES2 var buf; @@ -4004,7 +3846,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; glDrawElementsInstancedANGLE: 'glDrawElementsInstanced', - glDrawBuffers__deps: ['$tempFixedLengthArray'], glDrawBuffers: (n, bufs) => { #if GL_ASSERTIONS assert(GLctx.drawBuffers, 'Must have WebGL2 or WEBGL_draw_buffers extension to use drawBuffers'); @@ -4070,7 +3911,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; #if MEMORY64 // Convert an array of i64 offsets to an array of i32 offsets returning a // pointer to the new (stack allocated) array. - $convertOffsets__deps: ['$stackAlloc'], $convertOffsets__internal: true, $convertOffsets: (offsets, count) => { var offsets32 = stackAlloc(count * 4); @@ -4090,9 +3930,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; glMultiDrawElementsWEBGL__sig: 'vipipi', glMultiDrawElements: 'glMultiDrawElementsWEBGL', glMultiDrawElementsANGLE: 'glMultiDrawElementsWEBGL', -#if MEMORY64 - glMultiDrawElementsWEBGL__deps: ['$convertOffsets', '$stackSave', '$stackRestore'], -#endif glMultiDrawElementsWEBGL: (mode, counts, type, offsets, drawcount) => { #if MEMORY64 var stack = stackSave(); @@ -4113,9 +3950,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; glMultiDrawElementsInstancedWEBGL__sig: 'vipippi', glMultiDrawElementsInstancedANGLE: 'glMultiDrawElementsInstancedWEBGL', -#if MEMORY64 - glMultiDrawElementsInstancedWEBGL__deps: ['$convertOffsets', '$stackSave', '$stackRestore'], -#endif glMultiDrawElementsInstancedWEBGL: (mode, counts, type, offsets, instanceCounts, drawcount) => { #if MEMORY64 var stack = stackSave(); @@ -4173,7 +4007,7 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; } }, - glMapBufferRange__deps: ['$emscriptenWebGLGetBufferBinding', '$emscriptenWebGLValidateMapBufferTarget', 'malloc'], + glMapBufferRange__deps: ['malloc'], glMapBufferRange: (target, offset, length, access) => { if ((access & (0x1/*GL_MAP_READ_BIT*/ | 0x20/*GL_MAP_UNSYNCHRONIZED_BIT*/)) != 0) { err('glMapBufferRange access does not support MAP_READ or MAP_UNSYNCHRONIZED'); @@ -4207,7 +4041,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; return mem; }, - glGetBufferPointerv__deps: ['$emscriptenWebGLGetBufferBinding'], glGetBufferPointerv: (target, pname, params) => { if (pname == 0x88BD/*GL_BUFFER_MAP_POINTER*/) { var ptr = 0; @@ -4222,7 +4055,6 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; } }, - glFlushMappedBufferRange__deps: ['$emscriptenWebGLGetBufferBinding', '$emscriptenWebGLValidateMapBufferTarget', '$webglBufferSubData'], glFlushMappedBufferRange: (target, offset, length) => { if (!emscriptenWebGLValidateMapBufferTarget(target)) { GL.recordError(0x500/*GL_INVALID_ENUM*/); @@ -4251,7 +4083,7 @@ for (/**@suppress{duplicate}*/var i = 0; i <= {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; webglBufferSubData(target, mapping.offset, length, mapping.mem + offset); }, - glUnmapBuffer__deps: ['$emscriptenWebGLGetBufferBinding', '$emscriptenWebGLValidateMapBufferTarget', 'free'], + glUnmapBuffer__deps: ['free'], glUnmapBuffer: (target) => { if (!emscriptenWebGLValidateMapBufferTarget(target)) { GL.recordError(0x500/*GL_INVALID_ENUM*/); @@ -4364,8 +4196,6 @@ function createGLPassthroughFunctions(lib, funcs) { createGLPassthroughFunctions(LibraryGL, glPassthroughFuncs); -autoAddDeps(LibraryGL, '$GL'); - function renameSymbol(lib, oldName, newName) { lib[newName] = lib[oldName]; delete lib[oldName]; diff --git a/src/lib/libwebgl2.js b/src/lib/libwebgl2.js index d2a539bed2332..1ebe83df6cf01 100644 --- a/src/lib/libwebgl2.js +++ b/src/lib/libwebgl2.js @@ -5,7 +5,6 @@ */ var LibraryWebGL2 = { - glGetStringi__deps: ['$webglGetExtensions', '$stringToNewUTF8'], glGetStringi: (name, index) => { if (GL.currentContext.version < 2) { GL.recordError(0x502 /* GL_INVALID_OPERATION */); // Calling GLES3/WebGL2 function with a GLES2/WebGL1 context @@ -43,7 +42,6 @@ var LibraryWebGL2 = { } }, - glGetInteger64v__deps: ['$emscriptenWebGLGet'], glGetInteger64v: (name_, p) => { emscriptenWebGLGet(name_, p, {{{ cDefs.EM_FUNC_SIG_PARAM_J }}}); }, @@ -90,7 +88,6 @@ var LibraryWebGL2 = { } }, - glGetBufferParameteri64v__deps: ['$writeI53ToI64'], glGetBufferParameteri64v: (target, value, data) => { #if GL_TRACK_ERRORS if (!data) { @@ -125,7 +122,6 @@ var LibraryWebGL2 = { #endif }, - glInvalidateFramebuffer__deps: ['$tempFixedLengthArray'], glInvalidateFramebuffer: (target, numAttachments, attachments) => { #if GL_ASSERTIONS assert(numAttachments < tempFixedLengthArray.length, `Invalid count of numAttachments=${numAttachments} passed to glInvalidateFramebuffer (that many attachment points do not exist in GL)`); @@ -138,7 +134,6 @@ var LibraryWebGL2 = { GLctx.invalidateFramebuffer(target, list); }, - glInvalidateSubFramebuffer__deps: ['$tempFixedLengthArray'], glInvalidateSubFramebuffer: (target, numAttachments, attachments, x, y, width, height) => { #if GL_ASSERTIONS assert(numAttachments < tempFixedLengthArray.length, `Invalid count of numAttachments=${numAttachments} passed to glInvalidateSubFramebuffer (that many attachment points do not exist in GL)`); @@ -151,13 +146,6 @@ var LibraryWebGL2 = { GLctx.invalidateSubFramebuffer(target, list, x, y, width, height); }, - glTexImage3D__deps: ['$heapObjectForWebGLType', -#if WEBGL_USE_GARBAGE_FREE_APIS - '$toTypedArrayIndex', -#else - '$emscriptenWebGLGetTexPixelData', -#endif - ], glTexImage3D: (target, level, internalFormat, width, height, depth, border, format, type, pixels) => { if (GLctx.currentPixelUnpackBufferBinding) { GLctx.texImage3D(target, level, internalFormat, width, height, depth, border, format, type, pixels); @@ -174,13 +162,6 @@ var LibraryWebGL2 = { } }, - glTexSubImage3D__deps: ['$heapObjectForWebGLType', -#if WEBGL_USE_GARBAGE_FREE_APIS - '$toTypedArrayIndex', -#else - '$emscriptenWebGLGetTexPixelData', -#endif - ], glTexSubImage3D: (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) => { if (GLctx.currentPixelUnpackBufferBinding) { GLctx.texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); @@ -423,7 +404,6 @@ var LibraryWebGL2 = { if (type) {{{ makeSetValue('type', '0', 'info.type', 'i32') }}}; }, - $emscriptenWebGLGetIndexed__deps: ['$writeI53ToI64'], $emscriptenWebGLGetIndexed: (target, index, data, type) => { #if GL_TRACK_ERRORS if (!data) { @@ -487,11 +467,9 @@ var LibraryWebGL2 = { } }, - glGetIntegeri_v__deps: ['$emscriptenWebGLGetIndexed'], glGetIntegeri_v: (target, index, data) => emscriptenWebGLGetIndexed(target, index, data, {{{ cDefs.EM_FUNC_SIG_PARAM_I }}}), - glGetInteger64i_v__deps: ['$emscriptenWebGLGetIndexed'], glGetInteger64i_v: (target, index, data) => emscriptenWebGLGetIndexed(target, index, data, {{{ cDefs.EM_FUNC_SIG_PARAM_J }}}), @@ -690,9 +668,6 @@ var LibraryWebGL2 = { GL.syncs[id] = null; }, -#if !WASM_BIGINT - glClientWaitSync__deps: ['$convertI32PairToI53'], -#endif glClientWaitSync: (sync, flags, {{{ defineI64Param('timeout') }}}) => { // WebGL2 vs GLES3 differences: in GLES3, the timeout parameter is a uint64, where 0xFFFFFFFFFFFFFFFFULL means GL_TIMEOUT_IGNORED. // In JS, there's no 64-bit value types, so instead timeout is taken to be signed, and GL_TIMEOUT_IGNORED is given value -1. @@ -702,9 +677,6 @@ var LibraryWebGL2 = { return GLctx.clientWaitSync(GL.syncs[sync], flags, timeout); }, -#if !WASM_BIGINT - glWaitSync__deps: ['$convertI32PairToI53'], -#endif glWaitSync: (sync, flags, {{{ defineI64Param('timeout') }}}) => { // See WebGL2 vs GLES3 difference on GL_TIMEOUT_IGNORED above (https://www.khronos.org/registry/webgl/specs/latest/2.0/#5.15) {{{ receiveI64ParamAsI53Unchecked('timeout'); }}} @@ -741,7 +713,6 @@ var LibraryWebGL2 = { glIsSync: (sync) => GLctx.isSync(GL.syncs[sync]), - glGetUniformuiv__deps: ['$emscriptenWebGLGetUniform'], glGetUniformuiv: (program, location, params) => emscriptenWebGLGetUniform(program, location, params, {{{ cDefs.EM_FUNC_SIG_PARAM_I }}}), @@ -752,7 +723,6 @@ var LibraryWebGL2 = { return GLctx.getFragDataLocation(GL.programs[program], UTF8ToString(name)); }, - glGetVertexAttribIiv__deps: ['$emscriptenWebGLGetVertexAttrib'], glGetVertexAttribIiv: (index, pname, params) => { // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttribI4iv(), // otherwise the results are undefined. (GLES3 spec 6.1.12) @@ -763,7 +733,6 @@ var LibraryWebGL2 = { // otherwise the results are undefined. (GLES3 spec 6.1.12) glGetVertexAttribIuiv: 'glGetVertexAttribIiv', - glUniform1ui__deps: ['$webglGetUniformLocation'], glUniform1ui: (location, v0) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform1ui', 'location'); @@ -771,7 +740,6 @@ var LibraryWebGL2 = { GLctx.uniform1ui(webglGetUniformLocation(location), v0); }, - glUniform2ui__deps: ['$webglGetUniformLocation'], glUniform2ui: (location, v0, v1) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform2ui', 'location'); @@ -779,7 +747,6 @@ var LibraryWebGL2 = { GLctx.uniform2ui(webglGetUniformLocation(location), v0, v1); }, - glUniform3ui__deps: ['$webglGetUniformLocation'], glUniform3ui: (location, v0, v1, v2) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform3ui', 'location'); @@ -787,7 +754,6 @@ var LibraryWebGL2 = { GLctx.uniform3ui(webglGetUniformLocation(location), v0, v1, v2); }, - glUniform4ui__deps: ['$webglGetUniformLocation'], glUniform4ui: (location, v0, v1, v2, v3) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform4ui', 'location'); @@ -795,7 +761,6 @@ var LibraryWebGL2 = { GLctx.uniform4ui(webglGetUniformLocation(location), v0, v1, v2, v3); }, - glUniform1uiv__deps: ['$webglGetUniformLocation'], glUniform1uiv: (location, count, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform1uiv', 'location'); @@ -804,7 +769,6 @@ var LibraryWebGL2 = { count && GLctx.uniform1uiv(webglGetUniformLocation(location), HEAPU32, {{{ getHeapOffset('value', 'u32') }}}, count); }, - glUniform2uiv__deps: ['$webglGetUniformLocation'], glUniform2uiv: (location, count, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform2uiv', 'location'); @@ -813,7 +777,6 @@ var LibraryWebGL2 = { count && GLctx.uniform2uiv(webglGetUniformLocation(location), HEAPU32, {{{ getHeapOffset('value', 'u32') }}}, count*2); }, - glUniform3uiv__deps: ['$webglGetUniformLocation'], glUniform3uiv: (location, count, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform3uiv', 'location'); @@ -822,7 +785,6 @@ var LibraryWebGL2 = { count && GLctx.uniform3uiv(webglGetUniformLocation(location), HEAPU32, {{{ getHeapOffset('value', 'u32') }}}, count*3); }, - glUniform4uiv__deps: ['$webglGetUniformLocation'], glUniform4uiv: (location, count, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniform4uiv', 'location'); @@ -831,7 +793,6 @@ var LibraryWebGL2 = { count && GLctx.uniform4uiv(webglGetUniformLocation(location), HEAPU32, {{{ getHeapOffset('value', 'u32') }}}, count*4); }, - glUniformMatrix2x3fv__deps: ['$webglGetUniformLocation'], glUniformMatrix2x3fv: (location, count, transpose, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniformMatrix2x3fv', 'location'); @@ -840,7 +801,6 @@ var LibraryWebGL2 = { count && GLctx.uniformMatrix2x3fv(webglGetUniformLocation(location), !!transpose, HEAPF32, {{{ getHeapOffset('value', 'float') }}}, count*6); }, - glUniformMatrix3x2fv__deps: ['$webglGetUniformLocation'], glUniformMatrix3x2fv: (location, count, transpose, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniformMatrix3x2fv', 'location'); @@ -849,7 +809,6 @@ var LibraryWebGL2 = { count && GLctx.uniformMatrix3x2fv(webglGetUniformLocation(location), !!transpose, HEAPF32, {{{ getHeapOffset('value', 'float') }}}, count*6); }, - glUniformMatrix2x4fv__deps: ['$webglGetUniformLocation'], glUniformMatrix2x4fv: (location, count, transpose, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniformMatrix2x4fv', 'location'); @@ -858,7 +817,6 @@ var LibraryWebGL2 = { count && GLctx.uniformMatrix2x4fv(webglGetUniformLocation(location), !!transpose, HEAPF32, {{{ getHeapOffset('value', 'float') }}}, count*8); }, - glUniformMatrix4x2fv__deps: ['$webglGetUniformLocation'], glUniformMatrix4x2fv: (location, count, transpose, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniformMatrix4x2fv', 'location'); @@ -867,7 +825,6 @@ var LibraryWebGL2 = { count && GLctx.uniformMatrix4x2fv(webglGetUniformLocation(location), !!transpose, HEAPF32, {{{ getHeapOffset('value', 'float') }}}, count*8); }, - glUniformMatrix3x4fv__deps: ['$webglGetUniformLocation'], glUniformMatrix3x4fv: (location, count, transpose, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniformMatrix3x4fv', 'location'); @@ -876,7 +833,6 @@ var LibraryWebGL2 = { count && GLctx.uniformMatrix3x4fv(webglGetUniformLocation(location), !!transpose, HEAPF32, {{{ getHeapOffset('value', 'float') }}}, count*12); }, - glUniformMatrix4x3fv__deps: ['$webglGetUniformLocation'], glUniformMatrix4x3fv: (location, count, transpose, value) => { #if GL_ASSERTIONS GL.validateGLObjectID(GLctx.currentProgram.uniformLocsById, location, 'glUniformMatrix4x3fv', 'location'); @@ -957,7 +913,6 @@ var LibraryWebGL2 = { #if !LEGACY_GL_EMULATION // Defined in library_glemu.js when LEGACY_GL_EMULATION is set - glDrawRangeElements__deps: ['glDrawElements'], glDrawRangeElements: (mode, start, end, count, type, indices) => { // TODO: This should be a trivial pass-through function registered at the bottom of this page as // glFuncs[6][1] += ' drawRangeElements'; @@ -984,7 +939,6 @@ var LibraryWebGL2 = { // Closure is expected to be allowed to minify the '.dibvbi' property, so not accessing it quoted. !!(ctx.dibvbi = ctx.getExtension('WEBGL_draw_instanced_base_vertex_base_instance')), - emscripten_webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance__deps: ['$webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance'], emscripten_webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance: (ctx) => webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GL.contexts[ctx].GLctx), @@ -1028,7 +982,6 @@ var LibraryWebGL2 = { return !!(ctx.mdibvbi = ctx.getExtension('WEBGL_multi_draw_instanced_base_vertex_base_instance')); }, - emscripten_webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance__deps: ['$webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance'], emscripten_webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance: (ctx) => webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GL.contexts[ctx].GLctx), }; diff --git a/src/lib/libwebsocket.js b/src/lib/libwebsocket.js index 5a5d1be4be1b5..7765e61d8bc1b 100644 --- a/src/lib/libwebsocket.js +++ b/src/lib/libwebsocket.js @@ -5,10 +5,9 @@ */ var LibraryWebSocket = { - $webSockets__deps: ['$HandleAllocator'], $webSockets: 'new HandleAllocator();', - $WS__deps: ['$webSockets', 'malloc'], + $WS__deps: ['malloc'], $WS: { socketEvent: null, getSocket(socketId) { @@ -26,7 +25,6 @@ var LibraryWebSocket = { }, }, - emscripten_websocket_get_ready_state__deps: ['$WS'], emscripten_websocket_get_ready_state__proxy: 'sync', emscripten_websocket_get_ready_state: (socketId, readyState) => { var socket = WS.getSocket(socketId); @@ -41,7 +39,6 @@ var LibraryWebSocket = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - emscripten_websocket_get_buffered_amount__deps: ['$WS'], emscripten_websocket_get_buffered_amount__proxy: 'sync', emscripten_websocket_get_buffered_amount: (socketId, bufferedAmount) => { var socket = WS.getSocket(socketId); @@ -56,7 +53,6 @@ var LibraryWebSocket = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - emscripten_websocket_get_extensions__deps: ['$WS', '$stringToUTF8'], emscripten_websocket_get_extensions__proxy: 'sync', emscripten_websocket_get_extensions: (socketId, extensions, extensionsLength) => { var socket = WS.getSocket(socketId); @@ -71,7 +67,6 @@ var LibraryWebSocket = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - emscripten_websocket_get_extensions_length__deps: ['$WS'], emscripten_websocket_get_extensions_length__proxy: 'sync', emscripten_websocket_get_extensions_length: (socketId, extensionsLength) => { var socket = WS.getSocket(socketId); @@ -86,7 +81,6 @@ var LibraryWebSocket = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - emscripten_websocket_get_protocol__deps: ['$WS', '$stringToUTF8'], emscripten_websocket_get_protocol__proxy: 'sync', emscripten_websocket_get_protocol: (socketId, protocol, protocolLength) => { var socket = WS.getSocket(socketId); @@ -101,7 +95,6 @@ var LibraryWebSocket = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - emscripten_websocket_get_protocol_length__deps: ['$WS'], emscripten_websocket_get_protocol_length__proxy: 'sync', emscripten_websocket_get_protocol_length: (socketId, protocolLength) => { var socket = WS.getSocket(socketId); @@ -116,7 +109,6 @@ var LibraryWebSocket = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - emscripten_websocket_get_url__deps: ['$WS', '$stringToUTF8'], emscripten_websocket_get_url__proxy: 'sync', emscripten_websocket_get_url: (socketId, url, urlLength) => { var socket = WS.getSocket(socketId); @@ -131,7 +123,6 @@ var LibraryWebSocket = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - emscripten_websocket_get_url_length__deps: ['$WS'], emscripten_websocket_get_url_length__proxy: 'sync', emscripten_websocket_get_url_length: (socketId, urlLength) => { var socket = WS.getSocket(socketId); @@ -146,7 +137,6 @@ var LibraryWebSocket = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - emscripten_websocket_set_onopen_callback_on_thread__deps: ['$WS'], emscripten_websocket_set_onopen_callback_on_thread__proxy: 'sync', emscripten_websocket_set_onopen_callback_on_thread: (socketId, userData, callbackFunc, thread) => { // TODO: @@ -173,7 +163,6 @@ var LibraryWebSocket = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - emscripten_websocket_set_onerror_callback_on_thread__deps: ['$WS'], emscripten_websocket_set_onerror_callback_on_thread__proxy: 'sync', emscripten_websocket_set_onerror_callback_on_thread: (socketId, userData, callbackFunc, thread) => { var socket = WS.getSocket(socketId); @@ -197,7 +186,6 @@ var LibraryWebSocket = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - emscripten_websocket_set_onclose_callback_on_thread__deps: ['$WS', '$stringToUTF8'], emscripten_websocket_set_onclose_callback_on_thread__proxy: 'sync', emscripten_websocket_set_onclose_callback_on_thread: (socketId, userData, callbackFunc, thread) => { var socket = WS.getSocket(socketId); @@ -224,7 +212,7 @@ var LibraryWebSocket = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - emscripten_websocket_set_onmessage_callback_on_thread__deps: ['$WS', '$stringToNewUTF8', 'malloc', 'free'], + emscripten_websocket_set_onmessage_callback_on_thread__deps: ['malloc', 'free'], emscripten_websocket_set_onmessage_callback_on_thread__proxy: 'sync', emscripten_websocket_set_onmessage_callback_on_thread: (socketId, userData, callbackFunc, thread) => { var socket = WS.getSocket(socketId); @@ -276,7 +264,6 @@ var LibraryWebSocket = { }, emscripten_websocket_new__proxy: 'sync', - emscripten_websocket_new__deps: ['$webSockets'], emscripten_websocket_new: (createAttributes) => { if (!globalThis.WebSocket) { #if WEBSOCKET_DEBUG @@ -308,7 +295,6 @@ var LibraryWebSocket = { return socketId; }, - emscripten_websocket_send_utf8_text__deps: ['$WS'], emscripten_websocket_send_utf8_text__proxy: 'sync', emscripten_websocket_send_utf8_text: (socketId, textData) => { var socket = WS.getSocket(socketId); @@ -331,7 +317,6 @@ var LibraryWebSocket = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - emscripten_websocket_send_binary__deps: ['$WS'], emscripten_websocket_send_binary__proxy: 'sync', emscripten_websocket_send_binary: (socketId, binaryData, dataLength) => { var socket = WS.getSocket(socketId); @@ -362,7 +347,6 @@ var LibraryWebSocket = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - emscripten_websocket_close__deps: ['$WS'], emscripten_websocket_close__proxy: 'sync', emscripten_websocket_close: (socketId, code, reason) => { var socket = WS.getSocket(socketId); @@ -388,7 +372,6 @@ var LibraryWebSocket = { return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}}; }, - emscripten_websocket_delete__deps: ['$WS'], emscripten_websocket_delete__proxy: 'sync', emscripten_websocket_delete: (socketId) => { var socket = WS.getSocket(socketId); @@ -410,7 +393,6 @@ var LibraryWebSocket = { emscripten_websocket_is_supported__proxy: 'sync', emscripten_websocket_is_supported: () => typeof WebSocket !== 'undefined', - emscripten_websocket_deinitialize__deps: ['$webSockets', 'emscripten_websocket_delete'], emscripten_websocket_deinitialize__proxy: 'sync', emscripten_websocket_deinitialize: () => { #if WEBSOCKET_DEBUG diff --git a/src/lib/libwget.js b/src/lib/libwget.js index a0a138bf5078b..921515b34d736 100644 --- a/src/lib/libwget.js +++ b/src/lib/libwget.js @@ -17,11 +17,7 @@ var LibraryWget = { }, emscripten_async_wget__deps: [ - '$PATH_FS', '$callUserCallback', '$Browser', - '$withStackSave', '$stringToUTF8OnStack', - '$FS_mkdirTree', - '$FS_preloadFile', - '$FS_unlink', + '$Browser', ], emscripten_async_wget__proxy: 'sync', emscripten_async_wget: (url, file, onload, onerror) => { @@ -54,7 +50,7 @@ var LibraryWget = { ).then(() => doCallback(onload)).catch(() => doCallback(onerror)); }, - emscripten_async_wget_data__deps: ['$asyncLoad', 'malloc', 'free', '$callUserCallback'], + emscripten_async_wget_data__deps: ['malloc', 'free'], emscripten_async_wget_data__proxy: 'sync', emscripten_async_wget_data: async (url, userdata, onload, onerror) => { {{{ runtimeKeepalivePush() }}} @@ -76,7 +72,6 @@ var LibraryWget = { } }, - emscripten_async_wget2__deps: ['$PATH_FS', '$wget', '$stackRestore', '$stringToUTF8OnStack'], emscripten_async_wget2__proxy: 'sync', emscripten_async_wget2: (url, file, request, param, userdata, onload, onerror, onprogress) => { {{{ runtimeKeepalivePush() }}} @@ -154,7 +149,7 @@ var LibraryWget = { return handle; }, - emscripten_async_wget2_data__deps: ['$wget', 'malloc', 'free', '$stringToUTF8OnStack'], + emscripten_async_wget2_data__deps: ['malloc', 'free'], emscripten_async_wget2_data__proxy: 'sync', emscripten_async_wget2_data: (url, request, param, userdata, free, onload, onerror, onprogress) => { var _url = UTF8ToString(url); @@ -222,7 +217,6 @@ var LibraryWget = { return handle; }, - emscripten_async_wget2_abort__deps: ['$wget'], emscripten_async_wget2_abort__proxy: 'sync', emscripten_async_wget2_abort: (handle) => { var http = wget.wgetRequests[handle]; diff --git a/src/lib/libworkerfs.js b/src/lib/libworkerfs.js index 39007d3121e06..79fd9188a730e 100644 --- a/src/lib/libworkerfs.js +++ b/src/lib/libworkerfs.js @@ -10,7 +10,6 @@ addToLibrary({ - $WORKERFS__deps: ['$FS'], $WORKERFS: { DIR_MODE: {{{ cDefs.S_IFDIR | 0o777 }}}, FILE_MODE: {{{ cDefs.S_IFREG | 0o777 }}}, diff --git a/src/lib/libxlib.js b/src/lib/libxlib.js index 2964c0cbe5b21..f54bd4212c3bf 100644 --- a/src/lib/libxlib.js +++ b/src/lib/libxlib.js @@ -8,7 +8,6 @@ var LibraryXlib = { // We support 1 display, the canvas XOpenDisplay: (name) => 1, - XCreateWindow__deps: ['$Browser'], XCreateWindow: (display, parent, x, y, width, height, border_width, depth, class_, visual, valuemask, attributes) => { // All we can do is set the width and height Browser.setCanvasSize(width, height); diff --git a/test/benchmark/benchmark_ffis.js b/test/benchmark/benchmark_ffis.js index b5be546de74b3..b95fc4c24fc75 100644 --- a/test/benchmark/benchmark_ffis.js +++ b/test/benchmark/benchmark_ffis.js @@ -5,7 +5,6 @@ addToLibrary({ $foreignCounter: 0, - foreignFunctionThatTakesThreeParameters__deps: ['$foreignCounter'], foreignFunctionThatTakesThreeParameters: function(a, b, c) { foreignCounter += a + b + c; return foreignCounter; diff --git a/test/core/test_jslib_i64_params.js b/test/core/test_jslib_i64_params.js index d596e8dd0073b..b3ff0e84e1053 100644 --- a/test/core/test_jslib_i64_params.js +++ b/test/core/test_jslib_i64_params.js @@ -1,5 +1,4 @@ TestLibrary = { - jscall__deps: i53ConversionDeps, jscall__sig: 'jj', jscall: function({{{ defineI64Param('foo') }}}) { {{{ receiveI64ParamAsI53('foo', `(err('overflow'), ${makeReturn64('42')})`) }}} diff --git a/test/embind/test_i64_binding.js b/test/embind/test_i64_binding.js index eea54f0602c02..be1fc1fd8a1ea 100644 --- a/test/embind/test_i64_binding.js +++ b/test/embind/test_i64_binding.js @@ -1,5 +1,4 @@ addToLibrary({ - ensure_js_throws_with_assertions_enabled__deps: ['$bigintToI53Checked'], ensure_js_throws_with_assertions_enabled: function(js_code, error_type) { js_code = UTF8ToString(bigintToI53Checked(js_code)); error_type = UTF8ToString(bigintToI53Checked(error_type)); diff --git a/test/jslib/test_multiline_string.js b/test/jslib/test_multiline_string.js index d101a6f9b65c8..011ed146b569f 100644 --- a/test/jslib/test_multiline_string.js +++ b/test/jslib/test_multiline_string.js @@ -1,5 +1,4 @@ mergeInto(LibraryManager.library, { - test_multiline_string__deps: ['$stringToNewUTF8'], test_multiline_string__sig: 'p', test_multiline_string: function() { // do not get confused by ` inside a comment. diff --git a/test/minimal_webgl/library_js.js b/test/minimal_webgl/library_js.js index b546b99d6f298..0543d38cb124a 100644 --- a/test/minimal_webgl/library_js.js +++ b/test/minimal_webgl/library_js.js @@ -4,7 +4,6 @@ addToLibrary({ GLctx.texImage2D(0xDE1/*GLctx.TEXTURE_2D*/, 0, 0x1908/*GLctx.RGBA*/, 0x1908/*GLctx.RGBA*/, 0x1401/*GLctx.UNSIGNED_BYTE*/, img); GLctx.pixelStorei(0x9240/*GLctx.UNPACK_FLIP_Y_WEBGL*/, false); }, - upload_unicode_char_to_texture__deps: ['uploadFlipped'], upload_unicode_char_to_texture: function(unicodeChar, charSize, applyShadow) { var canvas = document.createElement('canvas'); canvas.width = canvas.height = charSize; @@ -28,7 +27,6 @@ addToLibrary({ ctx.fillText(String.fromCharCode(unicodeChar), 0, canvas.height-7); _uploadFlipped(canvas); }, - load_texture_from_url__deps: ['uploadFlipped'], load_texture_from_url: function(glTexture, url, outW, outH) { var img = new Image(); img.onload = () => { diff --git a/test/other/test_parseTools.js b/test/other/test_parseTools.js index 8a62309e648b7..a711a35f80e6f 100644 --- a/test/other/test_parseTools.js +++ b/test/other/test_parseTools.js @@ -1,7 +1,6 @@ // Tests for JS library compile time helpers defined in parseTools.js addToLibrary({ - test_receiveI64ParamAsI53__deps: i53ConversionDeps, test_receiveI64ParamAsI53: function({{{ defineI64Param('arg1') }}}, {{{ defineI64Param('arg2') }}}) { out('\ntest_receiveI64ParamAsI53:'); @@ -25,7 +24,6 @@ addToLibrary({ return 0; }, - test_makeGetValue__deps: ['$readI53FromI64', '$readI53FromU64'], test_makeGetValue: function(ptr) { out('\ntest_makeGetValue:'); let val; @@ -84,7 +82,6 @@ addToLibrary({ assert(val == 0xedcba988); }, - test_makeSetValue__deps: ['$writeI53ToI64'], test_makeSetValue: function(ptr) { out('\ntest_makeSetValue:'); _clearI64(ptr); diff --git a/test/pthread/call_sync_on_main_thread.js b/test/pthread/call_sync_on_main_thread.js index 4671fb2d0a98d..e71547792742f 100644 --- a/test/pthread/call_sync_on_main_thread.js +++ b/test/pthread/call_sync_on_main_thread.js @@ -4,7 +4,6 @@ addToLibrary({ // Because it accesses the DOM, it must be called on the main thread. getDomElementContents__proxy: 'sync', getDomElementContents__sig: 'pp', - getDomElementContents__deps: ['$stringToNewUTF8'], getDomElementContents: function(domElementSelector) { var selector = UTF8ToString(domElementSelector); var text = document.querySelector(selector).innerHTML; diff --git a/test/test_jslib.py b/test/test_jslib.py index 99c0c1cbb2279..85c6ceba1f5c0 100644 --- a/test/test_jslib.py +++ b/test/test_jslib.py @@ -108,7 +108,6 @@ def test_jslib_proxying(self): create_file('lib.js', r''' addToLibrary({ $doNotCall: (x) => {}, - foo__deps: ['$doNotCall'], foo__proxy: 'sync', foo: () => doNotCall(() => { out('should never see this'); @@ -248,7 +247,6 @@ def test_jslib_export_decorators(self): def test_jslib_using_asm_lib(self): create_file('lib.js', r''' addToLibrary({ - jslibfunc__deps: ['asmlibfunc'], jslibfunc: (x) => 2 * _asmlibfunc(x), asmlibfunc__asm: true, @@ -605,9 +603,7 @@ def test_jslib_aliases(self, args): addToLibrary({ // Create a dependency cycle (foo -> $call_alias -> foo_alias -> foo) // to test that `var _foo_alias = _foo;` is still emitted after `_foo`. - $call_alias__deps: ['foo_alias'], $call_alias: () => _foo_alias(), - foo__deps: ['$call_alias'], foo: () => { if (!call_alias) return 0; return 42; @@ -628,7 +624,6 @@ def test_jslib_aliases(self, args): call_native: () => _native_func(), // JS function that calls nativeAlias - call_native_alias__deps: ['$nativeAlias'], call_native_alias: () => nativeAlias(), // This is a JS-only symbol (i.e. no leading underscore) that diff --git a/test/test_other.py b/test/test_other.py index f4162deb73fad..1969b3a54e8a8 100644 --- a/test/test_other.py +++ b/test/test_other.py @@ -12411,9 +12411,9 @@ def test_output_to_nowhere(self): def test_drop_support_for_browser(self): # Test that -1 means "not supported" self.run_process([EMCC, test_file('browser/test_html5_core.c')]) - self.assertContained('getContextSafariWebGL2Fixed', read_file('a.out.js')) + self.assertContained('document.webkitFullscreenEnabled', read_file('a.out.js')) self.run_process([EMCC, test_file('browser/test_html5_core.c'), '-sMIN_SAFARI_VERSION=-1']) - self.assertNotContained('getContextSafariWebGL2Fixed', read_file('a.out.js')) + self.assertNotContained('document.webkitFullscreenEnabled', read_file('a.out.js')) def test_errno_type(self): create_file('errno_type.c', ''' diff --git a/test/test_this_in_dyncall.js b/test/test_this_in_dyncall.js index b3ed7c9c02858..98d2c3b7bba1f 100644 --- a/test/test_this_in_dyncall.js +++ b/test/test_this_in_dyncall.js @@ -6,7 +6,6 @@ addToLibrary({ } }, - test__deps: ['$classLike'], test: function(fnptr, val) { // Bug: Function pointers are currently treated as 64-bit, but should be 32-bit integers. classLike.fnptr = fnptr;