I'm confused. How does this 'fix' the abort problem?

The reason we have `abort` in there is to turn the `jsmess_main_loop` into an asynchronously called loop. If you do not abort, it will loop synchronously forever until the browser kills your script. We `abort` to stop the program before it does that, so the asynchronous loop can take over execution.