Because of the latter, we can't test it anymore without trapping, but that's somewhat the point
AssemblyScript NEXT
AssemblyScript compiles strictly typed TypeScript to WebAssembly using Binaryen. Unlike other toolchains, asc
generates minimal WebAssembly modules while being just an npm install
away.
Examples
A few early examples to get an idea:
-
Conway's Game of Life
Continuously updates the cellular automaton and visualizes its state on a canvas. -
i64 polyfill
Exposes WebAssembly's i64 operations to JavaScript using 32-bit integers (low and high bits). -
PSON decoder
A PSON decoder implemented in AssemblyScript. -
TLSF memory allocator
A port of TLSF to AssemblyScript. -
μgc garbage collector
A port of μgc to AssemblyScript.
Or browse the compiler tests for a more in-depth overview of what's supported already. One of them is a showcase.
Getting started
Note that this version of the compiler is relatively new and does not yet support some features a TypeScript programmer might expect, e.g., strings, arrays and classes. It is not on npm, yet, but you can already try it out today:
$> git clone https://github.com/AssemblyScript/assemblyscript.git
$> cd assemblyscript
$> npm install
$> npm link
Author your module using either
- the assembly definitions (base config) if all you care about is targeting WebAssembly/asm.js or
- the portable definitions (base config) if you also want to compile to JavaScript using
tsc
and run:
$> asc yourModule.ts
See the AssemblyScript wiki for additional documentation.
Building
Building an UMD bundle to dist/assemblyscript.js
(binaryen.js remains an external dependency):
$> npm run build
Running the tests:
$> npm test