Summary
Delete legacy js/arfset.api.js global-API file and drop asm.js build targets (major-version breaking change)
Environment
- Product/Service: FeatureSET-Display — JavaScript API & build system
- Files:
js/arfset.api.js, js/jslibrary.js, tools/makem.js, example/example.html, build/arfset.min.js, build/arfset.debug.js
Problem Description
js/arfset.api.js is a legacy global-ARfset API tightly coupled to the asm.js outputs. It is injected via --pre-js into arfset.debug.js and arfset.min.js only (tools/makem.js:176). The wasm and ES6-wasm builds never include it. Modern browsers have full wasm support, making both the legacy API and the asm.js targets unnecessary. Only example/example.html currently consumes it; a working example_es6.html already exists as a drop-in replacement.
Expected Behavior
js/arfset.api.js is deleted.
js/jslibrary.js is deleted (once issue 1b removes writeFP/writeFS).
compile_combine and compile_combine_min jobs removed from tools/makem.js, along with PRE_FLAGS.
example/example.html migrated to the ES6 build (or replaced by example_es6.html).
build/arfset.min.js and build/arfset.debug.js deleted; no longer generated.
- Legacy
window.ARFset global still accessible via the existing webpack UMD bundle (dist/ARFset.js).
- README documents the removal; version bumped to a new major version.
Actual Behavior
Legacy asm.js build targets and the arfset.api.js file are still generated and maintained, adding build complexity and a maintenance surface for outdated code.
Tasks
Impact
High — Breaking change for anyone loading arfset.min.js or arfset.debug.js directly. Requires a major version bump. Simplifies the build significantly and removes dead code.
Additional Context
Dependencies: Issue 1b must land first to safely delete js/jslibrary.js. This issue can be split: delete arfset.api.js + drop asm.js targets first, then delete jslibrary.js in a follow-up after 1b.
The webpack UMD bundle (dist/ARFset.js) already exposes window.ARFset, so no separate legacy entry point is needed to maintain backward compatibility for UMD consumers.
Summary
Delete legacy
js/arfset.api.jsglobal-API file and drop asm.js build targets (major-version breaking change)Environment
js/arfset.api.js,js/jslibrary.js,tools/makem.js,example/example.html,build/arfset.min.js,build/arfset.debug.jsProblem Description
js/arfset.api.jsis a legacy global-ARfsetAPI tightly coupled to the asm.js outputs. It is injected via--pre-jsintoarfset.debug.jsandarfset.min.jsonly (tools/makem.js:176). The wasm and ES6-wasm builds never include it. Modern browsers have full wasm support, making both the legacy API and the asm.js targets unnecessary. Onlyexample/example.htmlcurrently consumes it; a workingexample_es6.htmlalready exists as a drop-in replacement.Expected Behavior
js/arfset.api.jsis deleted.js/jslibrary.jsis deleted (once issue 1b removeswriteFP/writeFS).compile_combineandcompile_combine_minjobs removed fromtools/makem.js, along withPRE_FLAGS.example/example.htmlmigrated to the ES6 build (or replaced byexample_es6.html).build/arfset.min.jsandbuild/arfset.debug.jsdeleted; no longer generated.window.ARFsetglobal still accessible via the existing webpack UMD bundle (dist/ARFset.js).Actual Behavior
Legacy asm.js build targets and the
arfset.api.jsfile are still generated and maintained, adding build complexity and a maintenance surface for outdated code.Tasks
js/arfset.api.jsjs/jslibrary.jsonce issue 1b lands (removeswriteFP/writeFS;--js-libraryflag goes away)compile_combineandcompile_combine_minjobs fromtools/makem.js, plus thePRE_FLAGSblockexample/example.htmlto the ES6 build (or replace withexample_es6.html)build/arfset.min.jsandbuild/arfset.debug.js; stop generating themwindow.ARFsetglobal is still exposed via the webpack UMD bundle (dist/ARFset.js)Impact
High — Breaking change for anyone loading
arfset.min.jsorarfset.debug.jsdirectly. Requires a major version bump. Simplifies the build significantly and removes dead code.Additional Context
Dependencies: Issue 1b must land first to safely delete
js/jslibrary.js. This issue can be split: deletearfset.api.js+ drop asm.js targets first, then deletejslibrary.jsin a follow-up after 1b.The webpack UMD bundle (
dist/ARFset.js) already exposeswindow.ARFset, so no separate legacy entry point is needed to maintain backward compatibility for UMD consumers.