It's sometimes clever to run
compromise
in a
webworker
.
This way you can keep the synchronous operations off the main-thread,
and run multiple tasks (potentially) in parallel.
original text:
webworker response: