Both slip and jscl takes the same time in my computer: 63 seconds to run the loop.
(disassemble (lambda () (loop for i below (expt 10 8) count t)))
Seems TAGBODY is compiled into a while(true) which sets an exception handler on each iteration. (and then, LOOP macroexpands into a TAGBODY). I don't think there's a better way to do it, BTW — JS is simply not a friendly compilation target. But `try` on each iteration is quite costly, that's most probably the bottleneck here.But JSCL is much faster on the fib example, that's why I thought it should be generally faster. After all, it compiles to JS.