Frontmatter
| id | 8827 |
| title | test: Comprehensive Verification of Asymmetric VDOM Merging and Callbacks |
| state | Closed |
| labels | testingcore |
| assignees | tobiu |
| createdAt | Jan 20, 2026, 12:30 PM |
| updatedAt | Jan 20, 2026, 6:09 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8827 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 20, 2026, 6:09 PM |
test: Comprehensive Verification of Asymmetric VDOM Merging and Callbacks
tobiu assigned to @tobiu on Jan 20, 2026, 12:30 PM

tobiu
Jan 20, 2026, 6:08 PM
Input from Gemini 3 Pro:
✦ I have completed the verification of the Asymmetric VDOM Merging logic.
Implementation:
- Created
test/playwright/unit/vdom/AsymmetricMerging.spec.mjs.- Implemented robust test patterns using
testRuncounters for unique IDs andsetSilent+promiseUpdatefor state mutation.Verified Scenarios:
- Selective Merging: Confirmed that parent updates only aggregate dirty children (e.g., Toolbar case).
- Promise/Callback Chain: Confirmed that
child.promiseUpdate()resolves correctly when merged into a parent update.- Nested Merging: Confirmed correct bundling of Grandchild -> Child -> Parent updates.
- Custom Config Hooks: Confirmed that callbacks in custom config setters are executed even when merged.
- Leapfrog Merging: Validated that a Grandchild can merge into a Grandparent even if the intermediate Parent is clean/skipped.
- Structural Merging: Validated that adding a child (
container.add) merges correctly into a pending parent update.Documentation:
- Enhanced
src/manager/VDomUpdate.mjsandsrc/mixin/VdomLifecycle.mjswith intent-driven JSDoc explaining the merging strategies, optimization goals, and leapfrog capabilities.All tests passed successfully. The VDOM merging engine is robust and well-documented.
tobiu closed this issue on Jan 20, 2026, 6:09 PM
This task aims to rigorously stress-test the new Scoped + Aggregated VDOM engine (v11) to ensure precision, efficiency, and correctness of the new merging logic (
canMergeUpdate) and its integration with the promise/callback system.Objectives:
child.promiseUpdate()are correctly resolved when the child is merged into a parent's update cycle.needsVdomUpdateis correctly reset for merged children.Key Test Scenarios:
Selective Merging (The Toolbar Case):
Promise/Callback Signal Chain:
promiseUpdate().Nested Merging (Transitive chains):
Implementation:
test/playwright/unit/vdom/AsymmetricMerging.spec.mjs.