A JavaScript State Chart interpreter that fully implements the W3C's upcoming SCXML recommendation in Web browsers.
The name should be pronounced "JessieXML" or just "Jessie".
It is distributed under a MIT license.
Official website: jsscxml.org
- ECMAScript is the only supported datamodel
- core algorithm is fully conformant
- all executable content works as specified, except
<send>
in some cases (see below) - DOM Event I/O
- JavaScript API including events
<fetch>
custom executable element- connection-like
invoke
- speech synthesis extensions
- pause/resume functionality (also pauses delayed events' and setTimeout timers)
- graphical debugger
- works in WebKit-based browsers
Latest version: 0.9.1
See the version history and goals.
You can't <send>
or receive remote events (of any type) with I/O Processors, but you can already use the included custom <fetch>
and <invoke type="event-stream">
elements to get similar results in a client-server fashion.
As mentionned above, you can't <send>
SCXML events over HTTP. But you can listen to remote events after invoking a connection with event-stream type.
(that I'm not going to fix right now)
-
Variables whose name matched a predefined window variable are pre-declared in the datamodel. You should not delete them if you don't understand what it means and how the datamodel is implemented in JSSC.
-
The JavaScript expression in the
location
attribute of an<assign>
element is currently being evaluated twice while executing the<assign>
. That could cause a bug if it has side-effects. You should perform any such actions in a<script>
, and use read-only expressions inlocation
attributes. Or you can just write the whole assignment in a<script>
, of course. -
In ECMAScript content, the keyword "this" references a hidden window by default. You should only use it in constructors and object methods, never in a default context, unless you really know what you're doing.