… but there's some trouble buffering JSON streams. Need smarter, line-oriented buffering.
… I think i will use a promise API instead, as simple callbacks are nto scaling well with the complexity.
Also, broke out defaultTransitionSelector into its own module.
…ierarchical lookups. All tests pass.
Implemented ahead-of-time, transformational optimization: transition flattening. Added flattenTransitions.xsl to implement this transformation. Integrated flattening of test cases into build and test infrastructure. This exposed a bug in the interpretation algorithm (e.g. for an example of this bug, see the transition-flattened version of parallel+interrupt/test19.scxml). Fixed the bug in the interpreter in a slightly clever way, checking each state's selected transitions for consistency, before comparing all selected transitions for consistency. Decided that convention over configuration would be better in the naming of test scripts, so updated all JSON test scripts to remove redundant information: test name, group, and location of associated SCXML file. All tests, both flattened and non-flattened, with all optimizations pass under rhino and node.
…cestors, descendants, state depth, and transition LCA), and caches it in the model used at runtime. This will potentially speed up stachechart execution.
…d on positional arguments), which I think is much cleaner.
…t testing harness. Passes all tests under both node and rhino.
…object, as state order is important in many optimizations.
…ts pass for all transition-select optimizations and non-optimized executions under node and rhino. Next step is to implement and test other optimizations.
…make, and less like Ant.
…ition selection. Just finished the modules that will generate code for this. Next step is to integrate and test it.
…datamodel returned by scxmlToJSON. There was too much redundancy in the having two models. Having one model should make it easier to implement many of the ahead-of-time optimizations.
…. Created launcher scripts for starting test harnesses for node and spartan shell. Integrated with Makefile. Moved some duplicate code from test harnesses out into their own models. Generalized runner.js so that it could also be used when running under node.
…es, to be used for running tests in spartan shells.
… under spartan js shell environments using RequireJS.
…t shells that only expose load() and print() functions. Can be found in my requirejs fork on github.
…they still work. Created new make task that will convert all scxml tests to json and put them in build/tests, while preserving directory structure. Uses xsltproc, and runs fast (about 5 seconds to convert all tests, on my netbook).
…e possible, delegated to Make in the maven build. The reason for this is that building the project with maven would take over 20 seconds, whereas with Make, it takes about 2 seconds. Maven will still be used to download java dependencies, and as a frontend to launch the rhino runner.js entry point.
…s. Next step is to do the same for the coffeescript implementation.
…is will facilitate ahead-of-time conversion of SCXML, and thus provide the possibility to remove runtime dependency on XML DOM parser. First integrating this into the python implementation. Not all tests pass with this new approach yet.
…t to be more easily parsed by the interpreter.
…impl in browser environment. This commit includes a browser test harness coffeescript module, html runner context, and changes to doc2model to get tests working in Firefox. Not all tests pass yet, and tests run slowly.
… directory layout.
…aking delays longer in some cases. Augmented interpreter to support _events variable in action code. All tests now pass for coffeescript implementation.
…dSend tests now pass.
…or script do not yet work.