dispatchEvent вызывает clone
переданного события, если это событие уже «используется» (т.е. отправлено). Исходя из того, что вы говорите, я совершенно уверен, что вы не переопределили clone
-метод *1003* и, таким образом, он использует реализацию Event
, которая возвращает простой ваниль Event
. Это источник вашей ошибки.
Вам необходимо переопределить метод clone
в FooEvent
, чтобы вернуть соответствующие экземпляры FooEvent
.