             var guard:IGuard;
             var trueGuard:IGuard;//the guard allowing a state transition
             var submachine:IFsm;
+            var earlyOut:Boolean;
 
             while (event = _events.shift())
             {

                {
                    // execute exitState action for the current state
                    executeAction(currentState.exitState, event);

                    // execute transition action
                    executeAction(foundTransition.action, event);

                    // complete transition
                    _currentState = foundTransition.to;
                    
                    // execute enterState action for the new state
                    executeAction(currentState.enterState, event);
                }
                else if (noTransitionException)
                {

    import com.phylake.fsm.core.*;
    import com.phylake.util.tryDestroy;
    import flash.errors.IllegalOperationError;

    public class Fsm implements IFsm
    {
