Skip to content

Stdlib: AOT replaceChild after createElement without DomRegistry (#27216) - #27247

Merged
PurHur merged 1 commit into
masterfrom
agent/issue-27216-aot-dom-replacechild
Aug 3, 2026
Merged

PurHur merged 1 commit into
masterfrom
agent/issue-27216-aot-dom-replacechild

Conversation

@PurHur

@PurHur PurHur commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Summary

Closes #27216

Test plan

  • Issue repro: Zend/VM/JIT/AOT print 1:b; AOT --repeat 10/10
  • php vendor/bin/phpunit test/aot/AotTest.php --filter dom_node_replacechild — OK 2 tests
  • #27044 live length repro still before=2 / after=3

Verification transcript

zend=1:b
vm=1:b
jit=1:b
aot=1:b (exit 0)
repeat_ok=10/10
live27044=before=2 after=3
AotTest filter dom_node_replacechild: OK (2 tests, 10 assertions)

Gate snapshot (pre-existing master, not this PR): inventory OK 6883/6883; user_release_ready: no (helper-runtime prelink stale + north-star5-fast gen-0 mismatch).

Made with Cursor

)

Thin-AOT materializes createElement nodes as LLVM-only objects; the NestedJIT
DomRegistry replaceChild bridge segfaulted. Sync firstChild/parentNode slots
like ParentNode::append, and seed childNodes length when the slot was never set.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur merged commit d604f8d into master Aug 3, 2026
1 check failed
@PurHur
PurHur deleted the agent/issue-27216-aot-dom-replacechild branch August 3, 2026 11:28
@PurHur
PurHur restored the agent/issue-27216-aot-dom-replacechild branch August 3, 2026 11:34
@PurHur
PurHur deleted the agent/issue-27216-aot-dom-replacechild branch August 5, 2026 08:12
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.

Regression: AOT DOMDocument::replaceChild() segfaults after build — VM/JIT match Zend (ext/dom/node.c)

1 participant