Skip to content

AOT DOM: fix DTD isId regression and setIdAttributeNode(null) LLVM verify (#34821, #33758) - #35648

Merged
PurHur merged 1 commit into
masterfrom
agent/ext-dom-34821-33758-aot
Aug 28, 2026
Merged

PurHur merged 1 commit into
masterfrom
agent/ext-dom-34821-33758-aot

Conversation

@PurHur

@PurHur PurHur commented Aug 28, 2026

Copy link
Copy Markdown
Owner

Summary

php-src: ext/dom/attr.c (dom_attr_is_id), ext/dom/element.c (setIdAttributeNode).

Test plan

./script/aot-smoke.sh
# 8 passed, 0 failed

PHP_COMPILER_HELPER_RUNTIME_O=0 ./script/phpunit.sh --filter 'DomSetIdAttrNodeNull33758AotTest|Issue34821DomDtdIsIdAotTest|DomAttrIsIdCreateElementAotTest'
# OK (5 tests, 20 assertions)

Not covered: prelinked/helper-runtime/.../DomSetIdAttributeJitHelper unit refresh (signature changed — run php script/emit-helper-runtime-object.php --unit /ext/dom/DomSetIdAttributeJitHelper.php before relying on default PHP_COMPILER_HELPER_RUNTIME_O=1 cache). Targeted tests above use PHP_COMPILER_HELPER_RUNTIME_O=0 explicitly.

Closes #34821
Closes #33758

Made with Cursor

…rify (#34821, #33758)

Restore compile-time isIdBearingLiteral before the activeFunction guard so loadXML
DTD ATTLIST ID attrs report isId() true again after #35627. Rework setIdNode*Argv to
take only the Attr (Context bridge) — nested JIT mis-lowers two consecutive
ObjectEntry params — and add VmDom::setIdAttributeNodeOnAttrOwner for the helper body.

php-src: ext/dom/attr.c (dom_attr_is_id), ext/dom/element.c (setIdAttributeNode).
Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur merged commit 43972b7 into master Aug 28, 2026
1 check failed
@PurHur
PurHur deleted the agent/ext-dom-34821-33758-aot branch August 28, 2026 19:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant