Skip to content

alii/arc

Repository files navigation

Note

arc is an extremely early research project, tread carefully!

arc ⌒

JavaScript on the BEAM

js

Arc is a JavaScript engine written in Gleam — the whole language, not a subset. It runs wherever the BEAM runs: on Erlang/OTP, and in the browser through AtomVM compiled to WebAssembly.

It implements the language itself — closures, generators, async/await, classes, proxies, typed arrays, plus Intl and Temporal. The engine is small and host-agnostic: it knows nothing about the world outside ECMAScript. You embed it in a BEAM program and give it the globals and host functions you want — timers, I/O, a concurrency model — instead of inheriting a fixed runtime.

Tested against test262 on every commit:

test262 conformance chart
gleam run -- file.js       # run a script
gleam test                 # unit tests
TEST262_EXEC=1 gleam test  # full test262 suite
TEST262=1 gleam test       # parser-only test262