Skip to content

Svelte playground

Generated from docs/compat/svelte-playground.md when the site was built at 7aa23e2.

  • Site: svelte.dev/playground/hello-world, mirrored on 2026-11-08 (3.7 MB): the page, then every file niso-run reported it could not load, fetched from svelte.dev, until nothing new was missing.

  • Run:

    Terminal window
    niso-run --page site/playground/hello-world.html --root site \
    --url http://localhost/playground/hello-world --missing --max-ms 8000

The compiler’s module worker now starts and runs: the page creates new Worker(new URL('../workers/index-….js', import.meta.url), { type: 'module' }), the worker loads its module graph through the page’s loader and fetches the svelte package tarball from the npm registry. It stops at the next step, which unpacks the tarball:

new ReadableStream({ start(c) { c.enqueue(bytes); c.close(); } })
.pipeThrough(new DecompressionStream('gzip'))

niso has no Streams and no Compression Streams, so the worker throws ReferenceError: ReadableStream is not defined and the preview never compiles.

On the page, the editor (CodeMirror) fails before it renders: readSelectionRange calls getSelection() on the document or a shadow root, which niso does not have, and pageXOffset is not defined.

# What failed Cause Fix
1 Module scripts did not run The QuickJS binding had no ES modules Module scripts and the module graph load through the DOM’s loader; unhandled rejections are reported.
2 new Worker(…, { type: 'module' }) No Workers Dedicated workers, classic and module, each an engine on its own thread (plat-workers).
3 “The file format should be tar.gz or tar” in the worker fetch handed bodies to JS as strings, so the binary tarball came back with its invalid UTF-8 replaced Response bodies are bytes (plat-workers).
4 ReadableStream is not defined in the worker No Streams, no DecompressionStream Open.
5 getSelection is not a function (CodeMirror’s readSelectionRange) No Selection API Open.
6 pageXOffset is not defined Window’s scroll offsets are missing Open.
7 location.href = sameUrl when hydration fails No full navigation, by design Not a bug: niso apps are SPAs.

The svelte test app in tests/svelte (a compiled Svelte 5 component) still passes, so the Svelte runtime itself runs on niso.