Loop de temporizador infinito com javascript (sem setInterval)?

Foi-me pedido (por um amigo) para construir um temporizador (um infinito que escreve uma linha a cada segundo), mas semsetInterval.

I resolvido com :

var i = 0;

    function k(myId, cb)
    {
        setTimeout(function ()
        {
            console.log(myId);
            cb();
        }, 1000);
    }

    function go()
    {
        i++;
        k(i, go);
    }

    go();

E isso está funcionando.

O problema é que temo que haja uma pressão de memória. Na verdade, cria uma recursão e depois de um tempo (semana ou algo assim) - o processo consumirá muita memória. (a pilha nunca é desalocada)

Como posso alterar meu código para não ter muito consumo de memória?