Как остановить Flash

Ralf Bokelberg однажды спросил в конференции FlashCoders: как быстро остановить выполнение кода в Flash Player? Ответов последовало большое множество, но методы Питера Холла [Peter Hall] кажутся наиболее оптимальными:

1. Одной строкой:

((a={}).__proto__=a).a;

Применение этого метода приводит к образованию бесконечной цепочки прототипов (она бесконечна, поскольку замкнута в кольцо), и, вследствие того, что Flash Player распознает такие ситуации, выполнение скрипта останавливается и в окне output выдается сообщение:

256 levels of prototype chain were exceeded.
This is probably a circular prototype chain.
Further execution of actions has been disabled in this movie.

То есть: проигрыватель понимает, что цепочка прототипов состоит из более чем 256 уровней, делает предположение, что эта цепочка замкнута, и прекращает выполнение кода в клипе.

2. Две строки, но меньше символов:

Такой метод основан на том же принципе, что и предыдущий — это использование зацикливаний, мгновенно распознаваемых проигрывателем (в отличие от конструкций типа while(true), на определение зациклености которых проигрывателю требуется 15 секунд).

function f(){f()};
f();

Этот код выводит в окно output:

256 levels of recursion were exceeded in one action list.
This is probably an infinite loop.
Further execution of actions has been disabled in this movie.

То есть: проигрыватель понимает, что образовалось более 256 уровней рекурсии (функция вызывает сама себя), делает предположение, что этот цикл бесконечен, и прекращает выполнение кода в клипе, как и с предыдущем примере.

Может быть, есть лучшие способы? while(true) не предлагать, потому что.