Well, that's also not feature complete.... wasm is designed to be fed by js.
I was under the impression that WebAssembly for the actually running on the browser: "WebAssembly must currently be loaded and compiled by JavaScript". That is the wasm file that gets send by the server, to the browser. It will surprise me that C/C++/Rust all have some JS-Wasm conversion going in. Quote: "WebAssembly code defines an AST (Abstract Syntax Tree) represented in a binary format.".
Unless you are referring to the fact that currently WebAssembly module do not have access to the browser dome. And yes, by that definition wasm needs to be fed by JS. But its kind of a crude explanation and will only confuse people. And is irrelevant to the question if FreePascal is able to generate wasm files.
The goal is that in the next version of wasm that it can access the browser dome without using any JS. Making it possible for any compile language to write wasm modules without any JS code involved at the frontend.
In simple term so everybody can understand the idea is:
* C/C++/FreePascal generate a AST with actual code, think of it as a simplified instruction set.
* This wasm file is send to the browser + accompanying JS file to initialize/compile the wasm on the front end.
* The browser receives the file, initialize it. JS is used to interact between the wasm and the browser dome.
In the future, the goal is that no JS is needed for the initialize and dome interaction and a single pure wasm file. But that is still some time away. Similar to the standard GC for Web Assembly.