Pode evitar que o Chrome cause um loop infinito ao exibir alertas no evento de foco, sem desativar e reativar o evento?

Considere o seguinte código. Se eu clicar no cmbMonkeys, ele causará um loop infinito de mensagens de alerta no Google Chrome. Minha solução alternativa para o cmbPeople funciona bem. Alguém conhece outra maneira de evitar loops infinitos ao exibir alertas em eventos de foco ou desfoque, sem desativar e reativar o evento?

<html>
<head>
    <script>
        var eventHandler;

        function cmbPeople_OnFocusHandler() {
            alert("focus");
        }

        function cmbPeople_CallFocusHandler(control) {
            eventHandler = control.onfocus;
            control.onfocus = null;
            cmbPeople_OnFocusHandler();
        }

        function cmbPeople_CallBlurHandler(control) {
            control.onfocus = eventHandler;
        }

        function cmbMonkeys_FocusHandler(control) {
            alert("I like monkeys");
        }
    </script>
</head>
<body>
    monkeys <select id="cmbMonkeys" onfocus="cmbMonkeys_FocusHandler(this)"></select>
    people <select id="cmbPeople" onfocus="cmbPeople_CallFocusHandler(this)" onblur="cmbPeople_CallBlurHandler(this)"></select>
</body>
</html>

questionAnswers(1)

yourAnswerToTheQuestion