Revision control
++ <?xml version="1.0" encoding="UTF-8"?><!-- we test that delayexpr uses the current value of var1, not its initial value
++ (If it uses the initial value, event2 will be generated first, before event1. If it uses the current value,
++ event1 will be raised first. Succeed if event1 occurs before event2, otherwise fail --><scxml xmlns="http://www.w3.org/2005/07/scxml" xmlns:conf="http://www.w3.org/2005/scxml-conformance" initial="s0" version="1.0" datamodel="ecmascript">
++ <datamodel>
++ <data id="Var1" expr="'0s'"/>
++ </datamodel>
++
++ <state id="s0">
++ <onentry>
++ <assign location="Var1" expr="'3s'"/>
++ <send delayexpr="Var1" event="event2"/>
++ <send delay="1s" event="event1"/>
++ </onentry>
++
++ <transition event="event1" target="s1"/>
++ <transition event="event2" target="fail"/>
++ </state>
++
++ <state id="s1">
++ <transition event="event2" target="pass"/>
++ <transition event="*" target="fail"/>
++ </state>
++
++ <final id="pass"><onentry><log label="Outcome" expr="'pass'"/></onentry></final>
++ <final id="fail"><onentry><log label="Outcome" expr="'fail'"/></onentry></final>
++
++ </scxml>