This PR implements the fix for adding a merge operator as per Issue #19. It also naively addresses issue #22.
Atomic changes are handled by the following:
The PropertyDispatcher has been updated to sort all subscriptions to ensure that binding subscriptions are first. This guarantees that all property values are updated before any lifting. Since all lift operators use the get() method which directly calls backwards through the property chain eventually stopping at a Property, the values returned from get() will always be correct since all properties have updated their value first.
The combine operator has been updated to not emit duplicate values in a row.
This PR implements the fix for adding a
merge
operator as per Issue #19. It also naively addresses issue #22.Atomic changes are handled by the following:
PropertyDispatcher
has been updated to sort all subscriptions to ensure that binding subscriptions are first. This guarantees that all property values are updated before any lifting. Since all lift operators use theget()
method which directly calls backwards through the property chain eventually stopping at aProperty
, the values returned fromget()
will always be correct since all properties have updated their value first.