<?xml version="1.0" encoding="UTF-8"?><!-- we test that states are added to the active states list as they are entered and before onentry handlers
are executed.  When s0's onentry handler fires we should not be in s01.  But when s01's onentry handler
fires, we should be in s01.  Therefore event1 should not fire, but event2 should.  Either event1 or
timeout also indicates failure  --><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">

     
<state id="s0" initial="s01">
  <onentry>
    <send event="timeout" delay="1s"/>
    <if cond="In('s01')">
      <raise event="event1"/>
      </if>
    </onentry>
  
  <transition event="timeout" target="fail"/> 
  <transition event="event1" target="fail"/>
  <transition event="event2" target="pass"/>
  
  <state id="s01">
    <onentry>
     <if cond="In('s01')">
       <raise event="event2"/>
       </if>
       </onentry>
  </state> 

</state> <!-- end s0 -->
 
<final id="pass"><onentry><log label="Outcome" expr="'pass'"/></onentry></final>
<final id="fail"><onentry><log label="Outcome" expr="'fail'"/></onentry></final>

</scxml>