| /** | |
| * @license | |
| * Copyright 2026 The Emscripten Authors | |
| * SPDX-License-Identifier: MIT | |
| */ | |
| #if WASM_EXCEPTIONS | |
| #error "Internal error! WASM_EXCEPTIONS should not be enabled when including libunwind.js." | |
| #endif | |
| var LibraryUnwind = { | |
| _Unwind_Backtrace__deps: ['$getCallstack'], | |
| _Unwind_Backtrace: (func, arg) => { | |
| var trace = getCallstack(); | |
| var parts = trace.split('\n'); | |
| for (var i = 0; i < parts.length; i++) { | |
| var ret = {{{ makeDynCall('iii', 'func') }}}(0, arg); | |
| if (ret) return; | |
| } | |
| }, | |
| _Unwind_GetIPInfo: (context, ipBefore) => abort('Unwind_GetIPInfo'), | |
| _Unwind_FindEnclosingFunction: (ip) => 0, // we cannot succeed | |
| _Unwind_RaiseException: (ex) => { | |
| {{{ makeThrow('ex') }}} | |
| }, | |
| _Unwind_Resume: (ex) => { | |
| {{{ makeThrow('ex') }}} | |
| }, | |
| _Unwind_DeleteException: (ex) => err('TODO: Unwind_DeleteException'), | |
| }; | |
| addToLibrary(LibraryUnwind); |