Targets · JavaScript · Capabilities

Capabilities

Which high-level features a Program can actually use when it renders to JavaScript for the browser.

Contents

How a Program becomes JavaScript, in parts. Start with the introduction, then follow each part into the rendered output and the runtime it links against.

What the browser can do

JavaScript for the browser is a rich, mature platform. The reactive core is host-agnostic; the drivers decide what a program can reach, and in the browser almost everything is available — usually built in.

FeatureStatusHow
User interfaceBuilt inThe DOM interface driver renders Ui straight into the page; custom components wrap any DOM widget or library.
NetworkingBuilt inNetwork uses the platform fetch and WebSocket; no dependency.
AsynchronyBuilt inA LOCKED state models an in-flight value; the driver resolves it on a microtask and re-enters the cycle. No async/await in Program.
AnimationBuilt inThe Animate driver shares one requestAnimationFrame ticker.
StorageBuilt inStorage maps to localStorage / IndexedDB; file open and save go through the browser's picker and download.
GraphicsBuilt inCanvas and WebGL are reachable through a custom interface component or a Graphics driver.
LocationVia the platformLocation uses the Geolocation API; a map is a custom component backed by a mapping library.
Background threadsLimitedThe reactive cycle is single-threaded and cooperative. Heavy work can be pushed to a Web Worker behind a native module, but shared reactive state does not cross the boundary.
Local filesystemNot directlyThe browser sandbox has no arbitrary file access; only the user-driven file picker and downloads. A server or the Node build is needed for real files.

Where a capability needs host code, it arrives as a NATIVE function or a driver — see native modules and drivers.