Comments (2)
This works as expected according to the SCXML semantics of conflicting transitions (see removeConflictingTransitions.
However, we have tweaked rules around reentrancy of source states (see here). Essentially, for many purposes we are using LCA over LCCA algorithms to detect "transitions containment". This makes this part of the mentioned removeConflictingTransitions
algorithm outdated for us:
Transitions that aren't contained within a single child force the state machine to leave the ancestor (even if they reenter it later).
Our own implementation is still using our own computeExitSet
though so it could work correctly already - maybe there is a small bug there. I'm still trying to think through this case but it feels like - given the above - you are right that this should work.
Note though that:
- respective source regions are still exited here (and reentered). It's just that the parallel region itself isn't reentered here whereas in SCXML it would be
- using
on
in afinal
state is forbidden by SCXML but it turns out that we don't quite enforce this
from xstate.
We're going to look into this a bit more... may be a bug.
from xstate.
Related Issues (20)
- Bug: @xstate/inspect has 4x peer dependency HOT 2
- Bug: type error when referencing guard with `check` inside `setup` HOT 1
- Bug: UnifiedArg drops the type of emitter from its "self" property HOT 1
- Bug: Spawned child machines should inherit the parent's clock HOT 1
- Bug: Type Error with Actions outside of Setup()
- Bug: Spawn and TS error HOT 1
- Bug: typegen.ts ist incomplete when moving state node configs to separate files HOT 3
- Bug: Promise actor error handling doesn't work as documented HOT 3
- Bug: types broken with assign HOT 2
- Bug: supplying generic input argument to setup actors for stubbing breaks invoke type inference
- Bug: When child state transitioned to final state, did not trigger onDone event and transition to next state
- Bug: [@xstate/store] typings broken HOT 2
- Bug: Bug with After event on restoring snapshot
- Bug: [Typescript] event target doesn't get restricted to declared state HOT 3
- Bug: HOT 3
- Methods like `provide` are lost when implementing Higher Level Actor Logic HOT 1
- Bug: system.get(id) not working after restoring a snapshot HOT 2
- Bug: Importing Xstate in a React-Native android project errors HOT 1
- Bug: History state in parallel machines is changing states unexpectedly HOT 2
- Bug: State entry action's actor value mismatch
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xstate.