1function fib(n) { 2 return n < 2 ? 1 : fib(n - 1) + fib(n - 2); 3} 4 5function eternal_fib() { 6 var started = Date.now(); 7 while(true) { 8 fib(20); 9 // Make page responsive by making a break every 100 ms. 10 if (Date.now() - started >= 100) { 11 setTimeout(eternal_fib, 0); 12 return; 13 } 14 } 15} 16 17function run_fib() { 18 // Let the page do initial rendering, then go. 19 setTimeout(eternal_fib, 200); 20} 21