Briefly touched on in #3, this task is to:
- Correct the transaction logic so that in the event of a runtime error while applying an instruction set we can correctly abort
- Ensure that on
COMMIT_UPDATES we only rebuild the graph if the active roots have changed
I think that in order to handle the first bullet we'll likely have to split out the setProperty step into (1) validating the incoming property and (2) actually applying it. Perhaps in (2), the actual setProperty method should be noexcept. This way we can validate all property changes in the instruction set to identify if we can commit the transaction or abort, and then set them. Maybe coincides with a getPropTypes method and an automatic runtime type check?
Briefly touched on in #3, this task is to:
COMMIT_UPDATESwe only rebuild the graph if the active roots have changedI think that in order to handle the first bullet we'll likely have to split out the setProperty step into (1) validating the incoming property and (2) actually applying it. Perhaps in (2), the actual
setPropertymethod should benoexcept. This way we can validate all property changes in the instruction set to identify if we can commit the transaction or abort, and then set them. Maybe coincides with agetPropTypesmethod and an automatic runtime type check?