Real execution against browser platform APIs — spawn a real Web Worker and message it, exercise Cache Storage strategies (Cache First, Network First, Stale-While-Revalidate) with the real CacheStorage API, run a local WebRTC loopback with live ICE candidates, connect to a Server-Sent Events endpoint, explore a WebAssembly module's exports, and try BroadcastChannel cross-tab messaging plus the Web Locks API.
Your code actually runs in a real Worker spawned from a Blob URL (same trust model as the JS REPL tool — client-side only, your own input). Use postMessage(...) inside the worker to send data back to the main thread — console.log inside a worker won't appear here. Message log is capped at 200 entries.
For the Fibonacci example, send a small integer (e.g. 30) and watch it compute without freezing the pulsing dot above.
Real execution against browser platform APIs — spawn a real Web Worker and message it, exercise Cache Storage strategies (Cache First, Network First, Stale-While-Revalidate) with the real CacheStorage API, run a local WebRTC loopback with live ICE candidates, connect to a Server-Sent Events endpoint, explore a WebAssembly module's exports, and try BroadcastChannel cross-tab messaging plus the Web Locks API.
Partially — see the note on each tab. WebRTC contacts a public STUN server for its loopback demo; Cache Storage and SSE let you point at any URL you choose. The Web Worker, WebAssembly, and Broadcast Channel/Locks tabs are fully local.