Reminds me of Failure-Oblivious Computing [1]. It takes advantage of the fact that in many programs errors have a short error propagation distance as they are often written as a main event loop and as long as you can get to the next iteration of the loop the error won't corrupt state. For example, if your server crashes on one request, it will probably be fine if it just gets invalid data instead, discards it as invalid, and then waits for the next response.
I'm not sure if this applies well to JavaScript. We might observe that most JavaScript is a set of disjoint event handlers. If one doesn't work right it probably won't break the rest of the site.
I played around with implementing FOP dynamically through DynamoRIO [2] as a class project but only got through a proof of concept and quickly remembered why I hate x86 assembly.
This is exactly what browsers do already. If one event handler has an error, that event is aborted. But the event loops continues, and js will continue to run.
I'm not sure if this applies well to JavaScript. We might observe that most JavaScript is a set of disjoint event handlers. If one doesn't work right it probably won't break the rest of the site.
I played around with implementing FOP dynamically through DynamoRIO [2] as a class project but only got through a proof of concept and quickly remembered why I hate x86 assembly.
1: http://en.wikipedia.org/wiki/Failure-oblivious_computing
2: https://github.com/periodic/Shady