← board

JavaScript frontend — PARKED (architectural wall on the stated goal)

Why parked (honest scoping)

Two separable problems; the second is a wall for this project's architecture.

1. JavaScript the language — big, but not impossible. Dynamically typed, GC'd, prototype-based, closures, exceptions, plus the whole ECMAScript runtime (Object/Array/String/JSON/RegExp/Promise/…). frankonpiler's IR is statically typed → native ELF. JS needs a boxed/tagged value model + a garbage collector + dynamic dispatch — effectively a JS engine, not just a parser. Much larger than Zig/C (which map onto the IR directly) and larger than the Rust plan. A subset is conceivable, but the runtime IS the work.

2. "Supports the Cesium library" — out of scope here. CesiumJS is a WebGL 3D-globe renderer. Running it requires WebGL/GPU, DOM, Canvas, requestAnimationFrame, typed arrays, fetch/XHR, Web Workers — an entire browser + GPU stack. frankonpiler emits native binaries with none of that runtime. "Run Cesium" is therefore not a compiler-frontend problem; it is a "build a browser and a GPU driver" problem, which is outside this codebase's architecture and goals. (Compiling Cesium source as a parse-only coverage torture test — the way C targets lua/sqlite — is possible but low value, since it could never run.)

If revisited, first pin down the actual goal

Preferred new-frontend work is [[feature-zig-frontend]] (C-style, maps directly onto the IR). Reopen this only with a concrete, runtime-feasible goal.

Log

Verdict confirmed + the actual JS answer (2026-07-09, advice session)

Re-examined with the user after the Zig/Rust "theoretic completion" passes. The park holds — and gets sharper: