Portable compiler sources that compile to both JavaScript using tsc and WebAssembly using asc.
Note that using the compiler as a library requires awaiting Binaryen ready state, like so:
const binaryen = require("binaryen");
const assemblyscript = require("assemblyscript");
binaryen.ready.then(() => {
// do something with assemblyscript
});Note that building the compiler is not necessary if you only want to run it (in development). If not built, ts-node is used to run the sources directly.
To build the compiler to a JavaScript bundle, run:
npm run buildUses webpack under the hood, building to dist/.
To build the compiler to a WebAssembly binary, run:
npm run bootstrapUses the AssemblyScript compiler compiled to JavaScript to compile itself to WebAssembly, building to WebAssembly again using itself compiled to WebAssembly. Builds to out/. Performs a git diff to make sure that both the initial and the final artifacts are the same. Note that this builds the compiler as a library, while the asc frontend setting it up and feeding it source files is JavaScript for now.
Running asc with the WebAssembly variant:
asc [options...] --wasm out/assemblyscript.optimized-bootstrap.wasmRunning the compiler tests with the WebAssembly variant:
npm run test:compiler -- --wasm out/assemblyscript.optimized-bootstrap.wasm