What languages can be compiled to WebAssembly (Wasm)?
I believe right now C, C++, and Rust (experimental) can be compiled to WebAssembly, with the llvm compiler backend, with languages like Java, Swift, and C# not currently being supported, but being possible candidates for future development.
I don't believe JavaScript can be compiled to Wasm. https://github.com/WebAssembly/design/issues/219
WebAssembly support is ever evolving. Right now it is supported by the following languages:
C / C++ - has very good (production ready) support via EmScripten, or other minimal LLVM-based toolchains
Rust - WebAssembly is an officially supported target, with a highly active community around it.
Go - has now supports WebAssembly as an official, yet experimental, target
C# - has experimental support via Blazor, however this currently requires embedding a .NET runtime into Wasm. Blazor was officially adopted by Microsoft as an experimental technology, with a recent preview release.
D - the "betterC" subset of D can be compiled to WebAssembly through LDC (LLVM compiler).
TypeScript - via AssemblyScript, highly experimental, but gaining momentum.
Haxe - just announced support
Kotlin - Kotlin/Native 0.4 gained experimental support of WebAssembly and via TeaVM
Python - Pyodide is a port of Python to WebAssembly that includes the core packages of the scientific Python stack (Numpy, Pandas, matplotlib).
PHP - Experimental, but with a working prototype
Perl - WebPerl is a port of the Perl binary to WebAssembly, allowing you to run Perl scripts on the web.
Scala - using the Emscripten compiler
Ruby - via the run.rb project
Swift - using SwiftWasm
There are commercial solutions also:
Regarding JavaScript, it is unlikely to gain support as WebAssembly is a statically typed assembly language.
There are also various more obscure / hobbyist languages that support WebAssembly. Further details can be found on the more exhaustive Awesome WebAssembly Languages list.