UNPKG

7.76 kBMarkdownView Raw
1v3.0.1
2------
3
4Included babel-polyfill runtime dependency in the browser build.
5
6v3.0.0
7------
8
9Refactored out dead code.
10Exposed SCION compiler-internals.
11Exposed new `model.prepare` API to dynamically fetch external script tags. Fixes issue #320.
12
13v2.0.14
14-------
15
16Updated README.
17Report data model (aka javascript) compilation errors before the FSM is executed.
18Support backwards compatibility by only reporting js compilation errors when context.reportAllErrors=true passed to the model compiler.
19Adorn generated action functions with tagname, line, and column properties to provide more context to error.execution and onError listeners when a runtime error occurs when executing an action tag.
20Support send/content/@expr.
21Added preliminary support for preserving custom namespaced attributes, based more or less on the python lxml2 API: http://lxml.de/tutorial.html#namespaces.
22Parse cdata.
23Check foreach system variable.
24Refactoring: changed internal property "type" to "$type" so as not to conflict with SCXML @type attribute on <history>, <transition> and <send> elements. Closes #326, #330.
25Added simple node repl for interactive testing.
26Merge branch '2.0.0-w3c-ecma' of github.com:jbeard4/SCION into 2.0.0-w3c-ecma.
27Support for text data and external "file:" data.
28Fix canceling delayed events.
29Fixed an error on illegal datamodel expression.
30Catching illegal assignment in js expressions.
31Hoist variable declarations from foreach tag to global datamodel scope.
32Add context parameter to xxxToModel APIs to allow host container to pass in additional context.
33Added support for send/@target='#_internal'.
34
35v0.0.10
36-------
37
38Various bug fixes.
39
40v0.0.9
41------
42
43* Removed use of JsonML internally. Instead, DOM is now used directly to transform SCXML to JSON. To see the internal JSON representation of an SCXML document, you can run node `node lib/core/util/annotate-scxml-json.js path/to/document.scxml`
44* Improved the platform API so that it can be exposed as part of the SCION API, and used to more easily embed SCION in other languages and environments.
45
46v0.0.8
47------
48
49* Added support for `<if>`, `<elseif>`, `<else>`, and `<foreach>` action tags.
50* Refactored architecture by which action code gets evaluated, such that all action code is evaluated within the document scope. This should provide more efficient execution, as datamodel variables can be referenced as local variables and strings expressions can be referenced as string constants. The disadvantage is that some some datamodel variable names must be reserved for the interpreter. These currently are: `$log`, `$cancel`, `$send`, and `$origin`
51
52v0.0.7
53------
54
55* Improved handling of platform dependencies, such that each "blessed" platform (currently node.js, Rhino, and the browser) declares an adapter which exposes a standard API for network, filesystem, and DOM. This allows the portable interpreter core to be cleanly separated out from platform dependencies.
56* Changed script evaluation semantics so that each SCXML document instance declares its own scope.
57 * Global scripts are evaluated at the top level of that scope, and all other action code is evaluated in separate function contexts within that scope.
58 * Variables declared in the SCXML document datamodel are visible to the entire document scope, including inside of functions declared in top-level scripts, and all other action code. Furthermore, datamodel variables now MUST be legal ECMAScript identifiers.
59* Better support for Rhino delayed send: fixed a bug where a reference kept to a Timer instance would keep the timer thread running and not allow the process to terminate.
60* Added integration with travis-ci continuous integration service.
61* Added support for @src attribute on data and script tags.
62 * This entailed a change in API, such that `scion.documentToModel` and `scion.documentStringToModel` are now asynchronous, as scripts referenced in SCXML may be downloaded asynchronously.
63 * This also entailed a change in the testing protocol and associated test scripts, such that test documents are now passed around as URLs instead of document strings, and are loaded using `scion.urlToModel`, rather than `scion.documentStringToModel`.
64
65v0.0.6
66------
67
68* Better support for "blessed" environments of node.js, Rhino and the browser
69 * Created a single unified API for the browser, node.js and Rhino, as well as generic front-end that should load environment-specific front-ends as needed.
70 * Used modified version of stitch to make sure that only environment-specific js bundles are built.
71* Made `gen` method more flexible in what input it accepts, allowing the user to pass in event object with name and data properties as first argument, OR pass in name string and data object as separate positional argument.
72* Better support and testing for Rhino.
73
74v0.0.5
75------
76
77* Removed parsePage module, which would automatically instantiate SCXML markup on a page. This did not integrate well with regular HTML, and overall was deemed too leaky an abstraction.
78* Optimization: state depth, ancestors, descendants, and transition LCA are always generated at parse time and stored in the SCXML model.
79* Removed underscore.js dependency in favor of regular ES5 APIs. It should be possible to provide cross-browser compatibility through a shim, like: https://github.com/kriskowal/es5-shim
80* Fixed bug in interpreter where composite states being entered would not have their enter actions triggered if the transition targeted one of their descendants.
81* Preliminary support for attaching state change listeners to SCION interpreter instances, and connecting them to remote graphical debuggers, such as the scxmlgui project: http://code.google.com/p/scxmlgui/
82
83v0.0.4
84------
85
86* Fixed bug where ancestors would not be properly computed in function getAncestors.
87
88v0.0.3
89------
90
91* Rewrote core SCXML interpreter from CoffeeScript to JavaScript.
92* Converted tabs to spaces.
93* Moved out demos and testing framework into their own projects. Added HTTP test server to be run with test client included in scxml-test-framework.
94* New interpreter features:
95 * Event Matching:
96 * Added support for scxml events of the form "foo.bar.*". These get normalized to the form "foo.bar".
97 * Added support for scxml wildcard ("*") event.
98 * Added support for SCXML prefix events (e.g transition with trigger "foo" will match event names "foo", "foo.bar", "foo.bar.bat", but not "foobar").
99 * Added support for specifying multiple events on a single transition.
100 * Added interpreter support and tests for targetless transitions (a.k.a. static reactions, described in Statemate/Rhapsody).
101 * Changed semantics of `<assign>` tag to match JavaScript semantics, so that the datamodel is updated immediately, in the same small-step. Added tests for this. Next Small-Step assignment semantics are still available using the `setData()`/`getData()` functions in a `<script>` tag.
102
103 * Added check to `SCXML.gen` so that it would throw an error on recursive calls, which are not supported.
104 * If attribute initial and initial state are not specified, the first state will be taken as the default initial state.
105
106 * Changed the interpreter API so that `start()` and `gen()` return the new configuration.
107
108 * Updated interpreter to use `raise` to send events in next small-step (add to inner queue), and `send` to send events after a timeout.
109
110 * Added support and tests for the following attributes and child nodes of `<send>`:
111 * namelist
112 * params
113 * content
114 * eventexpr
115 * targetexpr
116 * delayexpr
117
118
119v0.0.2
120------
121
122* Changed the license from LGPLv3 to Apache-2.0.
123* Updated build process.
124
125v0.0.1
126------
127
128* Initial release.