Many organisations have a lot of Java code. As they adopt newer technologies such as Node.js or Cloudflare Workers, maintaining interoperability with this existing code is important. WebAssembly is an instruction set for a stack-based virtual machine. This is the same type of abstract machine the Java Virtual Machine (JVM) uses making it possible to convert existing Java code to WebAssembly. This would allow Java code to be "imported" directly without rewrites, meaning it could be executed anywhere WebAssembly was supported. In this talk, I'll describe a research project that does just that. I’ll speak about the history of WebAssembly, what Java bytecode looks like, how to interpret it, decompilation techniques and implementing polymorphic objects.
This talk has been presented at Node Congress 2025, check out the latest edition of this JavaScript Conference.