Fork me on GitHub

@flyboarder no, it's the opposite, there's never a need to not propagate, so there's no need to check if the value has changed


it's a tradeoff that javelin makes


that normally the time saved by not propagating values that haven't changed will outweigh the cost of the equality check to decide if the value did change


in the case of a cell that wraps a db with no extra logic (the conn in datascript is normally an atom, but it works the same way) then as soon as i write to the db then i know it should propagate, no need to check what i already know by scanning the whole db row by row 🙂


@dm3 i haven't looked at the code as deeply as you have (not at all yet :P), i wonder if this could be as simple as running the equality check on cell= but not cell? when a cell changes it would have to be in response to a swap! or reset! so, seems like an OK assumption to just forward the value on without testing it?


I think the best approach is to have a customizable equality predicate


your suggestion makes sense - we could skip propagation on input cell reset


when the value is the same