Skip to content

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 19 Jul 00:20
· 193 commits to main since this release

1.0.0 (2026-07-19)

✨ Features

  • api: reduce JSDOM class to create/evaluate/serialize/dispose (b0a6650)
  • bindings: node identity cache — one JS wrapper per native node (9a1ebbb)
  • bindings: register window.alert/confirm/prompt as QuickJS C functions (e0449c0)
  • docs: add docusaurus documentation site (8d674f8)
  • dom: add timers, events, console bindings (3d6f6a0)
  • dom: implement element bindings for QuickJS (32f7974)
  • dom: implement runScripts support (4487a13)
  • example: add fetch playground section (55e054e)
  • example: add interactive button to result cards (b6536ee)
  • example: add storage playground section (502c5f3)
  • example: collapsible sections in playground (34786b9)
  • example: wire interactive alert/confirm to RN Alert (5349afd)
  • hybrid: implement setDialogCallbacks in HybridHtmlSandbox (8c8f468)
  • implement HtmlSandbox foundation with Nitro spec and C++ structure (5f9eb72)
  • jsdom: add onFetch option to JSDOM.create (cb5dcf9)
  • lexbor: implement real DOM parsing and queries (f532333)
  • mutation-observer: add example demo + tick roadmap (2c983c5)
  • mutation-observer: add MutationObservers skeleton + lifecycle wiring (1192aee)
  • mutation-observer: implicit attribute/characterData enable + TypeError guard (5457f81)
  • mutation-observer: instrument DOM mutation hooks + detached-node safety (c2471ad)
  • nitro: add setConsoleCallback to Nitro spec + TS API (5db1abd)
  • quickjs: implement DOM bindings wiring QuickJS to Lexbor (a550b05)
  • quickjs: implement isolated JS runtime with evaluate (c40e67c)
  • runtime: add dialog callback slots and setters to QuickJSRuntime (949578a)
  • sandbox: add CustomEvent (597f89a)
  • sandbox: add document.title (4939b84)
  • sandbox: add generic Node traversal (6338ca5)
  • sandbox: add getElementsByClassName/getElementsByTagName (d651ac4)
  • sandbox: add localStorage/sessionStorage stubs (907575f)
  • sandbox: add v0.7 Node identity & DOM ergonomics (d0cdcbd)
  • sandbox: add v0.8 attribute enumeration & node comparison (516beb4)
  • sandbox: add window.location (24ee9fd)
  • sandbox: add XMLHttpRequest stub (016e07a)
  • sandbox: bridge fetch() through QuickJS to RN's network stack (092f52e)
  • sandbox: finish v0.6 Node & Style API roadmap (49d4a6e)
  • spec: add setDialogCallbacks to HtmlSandbox Nitro spec (d761eff)
  • spec: add setFetchCallback to native HtmlSandbox spec (b3687c7)
  • spec: collapse Nitro spec to initialize/evaluate/serialize (0019789)
  • ts: add onAlert/onConfirm/onPrompt options; wire setDialogCallbacks (13a0a6a)

🐛 Bug Fixes

  • a11y: add table semantics (f512b76)
  • android: resolve QuickJS stack overflow on async thread (31276b0)
  • bindings: guard JS_NewClassID against multi-runtime overwrite (276c246)
  • bindings: propagate JS_EXCEPTION from JS_ToString in dialog fns (f4a7b20)
  • classList: implement full DOMTokenList token contract (f43ca89)
  • custom-event: consume bubbles/cancelable getter exceptions (23cc760)
  • docs: remove unimplemented option (c02eb4b)
  • dom: resolve JSValue leaks and listener key collision in DOMBindings (2267aa5)
  • element: use-after-free in removedNodes, comment textContent, insertBefore ownership (0a9004f)
  • events: dedup listeners, honor removal during dispatch, document receiver (59a82b0)
  • example: add jest as a devDependency for react-native-harness (5267a51), closes #15
  • fetch: propagate exceptions, guard callbacks, fix headers, json() as promise (59c30f1)
  • harness: point iOS runner at an installed simulator (54d6e4f)
  • hybrid: match generated Promise/Promise signatures (f8228f1)
  • hybrid: use await().get() for confirm/prompt callbacks (09441d9)
  • ios: resolve iOS build failures (cf934e0), closes #include
  • lexbor: apply review fixes (b82b482)
  • location: resolve relative URLs against current href (87b3a9f)
  • mutation-observer: capture siblings after insertion; null attributeName (af9c2bd)
  • mutation-observer: empty() fast-path with active_count tracking (d4364c7)
  • mutation-observer: generation counter prevents stale dispatch after takeRecords (ba3db53)
  • mutation-observer: prevent UAF from detached subtree and removedNodes (a510f20)
  • mutation-observer: re-observe must not clear pending queue (a7d5e7c)
  • mutation-observer: skip oldValue capture when no observer needs it (a213387)
  • quickjs: apply review fixes (0bb1ce8)
  • quickjs: resolve memory safety issues in QuickJSRuntime (38fe8ea)
  • quickjs: unwrap Promise result after event loop drain (f9c22e0)
  • resolve Android build and runtime crashes (5c82fc4)
  • resolve bundle crash (67b593c)
  • style: skip semicolons inside parentheses when parsing declarations (78900d9)
  • test: correct dispose-with-pending-timers test pattern (ef85fe6)
  • ui: fix mobile architecture overflow (6e6afb7)

💨 Performance Improvements

  • ci: reduce build times for iOS and Android (b8a7eda)
  • jsdom: call setDialogCallbacks only when a dialog option is set (3f1a832)

🔄 Code Refactors

  • bindings: separate Node and Element JS class IDs (4d28567)
  • cpp: reorganize into lexbor/ quickjs/ subdirs (63960fe)
  • example: extract components to folder (6d936ff)
  • move submodules to packages/ dir (bb51971)
  • quickjs: introduce RuntimeContext, migrate get_doc (d4a97b8)
  • sandbox: split DOMBindings.cpp into per-concern modules (d2fe06f)

📚 Documentation

  • add project overview with architecture, API reference and roadmap (3107dd0)
  • add v0.6 roadmap from jsdom parity audit (b083fe5)
  • example: update API usage (09cd3b8)
  • fix inaccurate claims and example (39bb43e)
  • fix roadmap heading hierarchy (c672b94)
  • mark alert/confirm/prompt as shipped; add options to create() example (0e24fe4)
  • mark fetch complete in v0.4 roadmap (092877e)
  • mark localStorage/sessionStorage complete in v0.4 roadmap (e2be8ef)
  • narrow jsdom compatibility claim (d810b93)
  • rewrite readme, add contributing guide (c879f31)
  • sync overview with evaluate-only API (29b2ed6)
  • tick v0.3 roadmap checkboxes (44c173f)
  • up CLAUDE.md (3866201)
  • update roadmap completion status (a3f67b2)

🛠️ Other changes

  • add generated and config files from pod install and yarn (7d7bb82)
  • example: gitignore react-native-harness cache directory (89a8caf)
  • remove aiworkers from CLAUDE.md (5d164f9)
  • remove dependabot config (94d5ec2)
  • scripts: add docs commands (23e80af)
  • up lock (94c2615)
  • up lock file (8caf8c1)