It seems we could explore different way to sync DOM with our state.
Instead of tags revalidation, we could explicitly mark "invalid" tags and resolve related opcodes to it.
current glimmer-vm tag invalidation approach:
dirtryTag -> scheduleRerender -> validate all existing tags in application -> iterate over all opcodes and if changed -> execute
approach in issue:
dirtyTag -> scheduleRerender -> getOpcodesForTag(tag) -> execute
It seems we could explore different way to sync DOM with our state. Instead of tags revalidation, we could explicitly mark "invalid" tags and resolve related opcodes to it.
Here is sample implementation concept: https://codepen.io/lifeart/pen/abMzEZm?editors=0110
Includes:
Tldr:
current glimmer-vm tag invalidation approach:
dirtryTag -> scheduleRerender -> validate all existing tags in application -> iterate over all opcodes and if changed -> execute
approach in issue:dirtyTag -> scheduleRerender -> getOpcodesForTag(tag) -> execute