[Cycle.js Neo] The new DOM driver by jvanbruegge · Pull Request #969 · cyclejs/cyclejs

added 2 commits

April 27, 2021 16:56
All of the calls to the helper factory have been marked as PURE, so
that optimizer like terser can drop the usused hyperscript helpers

@jvanbruegge

This implements the basic event delegation for bubbling events. It
already takes total and sibling isolation into account, but is currently
still lacking the ability to simulate the capture phase. It also does
not take non-bubbling listeners into account at the moment.

staltz

This makes it easier to use `isolate()` with a single string as
argument instead of providing an isolation scope per driver. In general
this should be allowed for all drivers and by convention, a simple
string should default to the tightest, ie total, isolation.
If the user does not use a master wrapper like @cycle/state, they no
longer have to manually pass an empty array to `run`.

@jvanbruegge

@jvanbruegge

@jvanbruegge

@jvanbruegge

Before this change, if an element was updated or added, only the new
element would be notified to the user, not the updated result of their
query

@jvanbruegge

@jvanbruegge

@jvanbruegge

Before this, when an elementListener was added and the elements it
listens to were patched afterwards, the user would be notified twice.
Now there is only one `patch` per animation frame and the user is only
notified once

@jvanbruegge

@jvanbruegge

As one id is generated for every event, using a number would lead to a
wrap-around of ids. This might lead to very subtle bugs for long running
applications. As we are only incrementing the ids by one and not do any
arithmetic on them, using bigint does not create any performance impact

@jvanbruegge

@jvanbruegge

@jvanbruegge

@jvanbruegge

@jvanbruegge

@jvanbruegge

@jvanbruegge

@jvanbruegge

@jvanbruegge

@jvanbruegge

@jvanbruegge