WebAssembly with JavaScript
note
- WebAssembly support for JavaScript is good thanks to Javy.
- Javy compiles QuickJS, a tiny JavaScript runtime, to Wasm along with the script to be executed.
- JavaScript is the second most popular and desirable language to work with WebAssembly.
- TypeScript, a superset of JavaScript, can be transpiled into JavaScript before being compiled to Wasm.
Install Javy
Install Javy following the instructions here:
https://github.com/bytecodealliance/javy
note
All of the build dependencies of the Javy toolchain have to be installed after cloning the GitHub repository.
JavaScript code
We will create a simple JavaScript application that will return us the Fibonacci sequence. Create a file named index.js
:
function fibonacci(){
var num = 10;
var a = 1, b = 0, temp;
while (num >= 0){
temp = a;
a = a + b;
b = temp;
num--;
}
console.log("Fibonacci result is: ",b);
}
var Shopify = {
main: fibonacci
};
tip
Access the JavaScript codex repository for code samples, including the fibonacci example.
note
The Javy toolchain expects Shopify.main
to point to our main function, in this case, fibonacci
.
Compile to Wasm
Navigate to /javy/target/release
directory to generate the Wasm file using the ./javy
executable. You will have to save your JavaScript source code in this directory as well.
./javy index.js -o index.wasm
Run with Enarx
Enarx run index.wasm