I think it is more how any JS script works, Chrome and Firefox (at least) slow down the process (for CPU consumption, to save battery... etc). Since that script is working using a setInterval to look ahead, he needs to wrap the setInterval in a Web Worker, so that thread is never runned slowly.