<?xml version="1.0" encoding="UTF-8"?><!-- test that finalize markup runs before the event is processed.  The invoked process will
return 2 in _event.data.aParam, so that new value should be in force when we select
the transtitions.   --><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="1"/>
  </datamodel>
     
<state id="s0">
  <onentry>
    <send event="timeout" delay="3s"/>
    </onentry>
  <invoke type="http://www.w3.org/TR/scxml/">
     <content>
      <scxml initial="subFinal" version="1.0" datamodel="ecmascript">
          <final id="subFinal">
            <onentry>
            <send target="#_parent" event="childToParent">
            <param name="aParam" expr="2"/>
               </send> 
          </onentry> 
          </final>
         </scxml>
     </content>
        <finalize>
      <assign location="Var1" expr="_event.data.aParam"/>
      </finalize>
      </invoke>
      
  <transition event="childToParent" cond="Var1===2" 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>