You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Modernize FeatureSET-Display: native/wasm layer cleanup, JavaScript API improvements, build toolchain refresh, tests, and CI
Background
The project has not received updates in ~4 years. This tracking issue covers the full modernization effort across three areas: the native Emscripten/wasm layer, the JavaScript API, and the build/test/CI infrastructure. Each sub-issue is self-contained and can be worked independently, but the suggested order below minimizes conflicts.
Completing this roadmap brings the project to a modern, maintainable baseline: no known CVEs, no wasm-terminating exit() calls, no memory leaks, a working test suite, and automated CI on every PR.
Summary
Modernize FeatureSET-Display: native/wasm layer cleanup, JavaScript API improvements, build toolchain refresh, tests, and CI
Background
The project has not received updates in ~4 years. This tracking issue covers the full modernization effort across three areas: the native Emscripten/wasm layer, the JavaScript API, and the build/test/CI infrastructure. Each sub-issue is self-contained and can be worked independently, but the suggested order below minimizes conflicts.
Scope
1. Native / Emscripten layer
writeFP/writeFSper-point wasm→JS call loop and event listener leak (fix first — affects all drawing changes)EM_ASM_block inARimageFsetDisplay.cppwith embind /emscripten::valexit()calls, memory leaks, pointer truncation2. JavaScript API
Module._free(debugBuffer)callImageDatafill loop withUint32Arrayview (3–5× speedup)axios(CVE-2023-45857 / SSRF) with nativefetcharfset.api.jsand asm.js build targets (major version bump)_setup(893, 1117)withARFsetconstructor optionsnftMarkerCount/markerNFTCountnaming3. Build, tests, CI, docs
WebARKitLibsubmoduleSuggested order of attack
EM_ASM_once JS reads fromnftMarkerdirectlyImpact
Critical path: #18 (listener leak) → #19 (native bugs) → #23 (legacy deletion) → #26/#27 (toolchain) → #28/#29 (tests + CI)
Completing this roadmap brings the project to a modern, maintainable baseline: no known CVEs, no wasm-terminating
exit()calls, no memory leaks, a working test suite, and automated CI on every PR.