Orden de ejecución del controlador de eventos de ActionScript

He estado tratando de entender la forma en que se implementan los eventos de ActionScript, pero estoy atascado.

Sé que AS es un solo hilo, lo que significa que solo se ejecutará un controlador de eventos a la vez, y también significa que los controladores se ejecutarán en un orden determinista *.

Por ejemplo, considere el siguiente código:

<code>1: var x = {executed: false};
2: foo.addEventListener("execute", function(){ x.executed = true; });
3: foo.dispatchEvent(new Event("execute"));
4: assert(x.executed);
</code>

Si ActionScript fuera multiproceso, sería posible que la afirmación en la línea 4 pudiera fallar algunas veces y tener éxito en otras.

Pero como AS no es multiproceso, es lógico que la afirmación seasiempre falla² osiempre triunfar³. O, en otras palabras, los eventos serán manejados de una manera determinista.

Entonces, ¿es correcta esta suposición (que los eventos se han manejado de manera determinista)? ¿Adobe aporta alguna documentación definitiva al respecto?

Nota: soysolamente preocupado aquí con los eventos enviados pordispatchEvent - Me doy cuenta de que los eventos "distribuidos externamente" (tráfico de red, entrada de usuarios, tictac de temporizadores, etc.) se comportan de manera diferente.

*: con la excepción, por supuesto, de eventos desencadenados por cosas no deterministas como la entrada del usuario o el tráfico de red.
²: siempre fallaría si, por ejemplo, si el algoritmo de manejo de eventos fuera: "coloque eventos nuevos en una pila, luego saque el evento superior de la pila, ejecútelo hasta que finalice, luego continúe con el siguiente evento" .
³: siempre tendría éxito si los eventos despachados pordispatchEvent fueron manejados tan pronto como fueron enviados.

Respuestas a la pregunta(2)

Su respuesta a la pregunta