fix(events): a listener's return ends that listener, not the dispatch
Listeners are compiled into one @ev_<E> function and return branched to its exit, so every listener declared after one that returned early - and every foreign listener - never heard the event. The per-kind listener shape (return unless it is my kind) answered only the first-declared kind. examples/events/answer.ludic holds it; seed regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
45e14dbb99
commit
f5ab5cf88a
8 changed files with 11240 additions and 11128 deletions
7
changes/listener-return.md
Normal file
7
changes/listener-return.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
bump: patch
|
||||
type: fix
|
||||
**A `return` inside an `@On` listener ends that listener, not the whole dispatch.** Listeners are
|
||||
compiled into one `@ev_<E>` function, and `return` branched to its exit: every listener declared
|
||||
after the one that returned, and every foreign listener, never heard the event. The shape it
|
||||
broke is the common one - a listener per kind that returns early for every kind but its own -
|
||||
where only the first-declared kind was ever answered. `examples/events/answer.ludic` holds it.
|
||||
Loading…
Add table
Add a link
Reference in a new issue