JSSCxml
A JavaScript State Chart interpreter that fully implements the W3C's upcoming SCXML recommendation
Install / Use
/learn @Touffy/JSSCxmlREADME
JSSCxml
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
Main Features:
- 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
Development status
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.
Known issues
(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
locationattribute 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 inlocationattributes. 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.
Related Skills
node-connect
347.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.6kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.6kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
