Running JS in a killable 'thread'; detecting and canceling long-running processes
Summary : How can I execute a JavaScript function, but then "execute" (kill) it if it does not finish with a timeframe (e.g. 2 seconds)? Details I'm writing a web application for interactively writing and testing PEG grammars . Unfortunately, the JavaScript library I'm using for parsing using a PEG has a 'bug' where certain poorly-written or unfinished grammars cause infinite execution (not even detected by some browsers). You can be happily typing along, working on your grammar, when suddenly the browser locks up and you lose all your hard work. Right now my code is (very simplified):