Skip to content

Bump QuickJS-NG to 0.15.1#21

Merged
dannote merged 4 commits into
masterfrom
quickjs-update
Jun 29, 2026
Merged

Bump QuickJS-NG to 0.15.1#21
dannote merged 4 commits into
masterfrom
quickjs-update

Conversation

@dannote

@dannote dannote commented Jun 29, 2026

Copy link
Copy Markdown
Member

Summary

  • bump vendored QuickJS-NG to 0.15.1
  • preserve QuickBEAM-specific QuickJS patches: per-context memory accounting/limits, coverage, and bytecode disassembly
  • adjust reset-cycle memory test tolerance for the new QuickJS allocator behavior
  • fix DOM cleanup with QuickJS 0.15 GC by freeing contexts before runtime GC and clearing the document opaque pointer during finalization
  • reserve QuickJS class IDs in every runtime to keep global QuickBEAM class IDs aligned with QuickJS 0.15's per-runtime class ID allocator

Validation

CI is green:

  • C static analysis
  • test (OTP 27.0 / Elixir 1.18)
  • UBSan + Zig Debug
  • AddressSanitizer

Local checks run during review:

QUICKBEAM_BUILD=1 mix compile
QUICKBEAM_BUILD=1 mix test test/dom --trace --max-cases 1
QUICKBEAM_BUILD=1 mix test test/core/memory_test.exs --trace --max-cases 1
QUICKBEAM_BUILD=1 mix test test/dom test/core/memory_test.exs test/napi_test.exs --max-cases 8

Results observed locally:

  • compile passed
  • DOM tests: 350 passed, 1 skipped
  • memory tests: 10 passed
  • DOM + memory + local N-API subset no longer reproduces the QuickJS 0.15 class-ID/DOM alignment panic

Known local environment caveat:

  • some N-API tests in my local mix npm.install checkout still look for package paths without the -gnu suffix, while installed packages use *-linux-x64-gnu; CI covers the canonical environment and passes

Notes

QuickJS changes include BC_VERSION 26 and the 0.15.1 upstream opcode/atom updates, including explicit resource management opcodes and Symbol.dispose / Symbol.asyncDispose atoms.

@dannote dannote merged commit 47559c5 into master Jun 29, 2026
4 checks passed
@dannote dannote deleted the quickjs-update branch June 29, 2026 18:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant