DeferTermination can throw the TerminationException on destruction of the scope object. operationMaterializeObjectInOSR() was using DeferTermination resulting in the TerminationException being thrown on exit. This trips up validateDFGExceptionHandling testing which is enabled on Debug builds. The solution is simply to use DeferTerminationForAWhile instead, and let a more natural trap checkpoint throw the TerminationException instead. rdar://89428235
<rdar://problem/89450245>
Created attachment 453165 [details] proposed patch.
Created attachment 453167 [details] proposed patch.
Comment on attachment 453167 [details] proposed patch. r=me
<rdar://problem/89428235>
Turns out the watchdog timeout takes too long on a Release build, and the newly added test has ended with a StackOverflow error before a TerminationException is even thrown. I'll just skip the test on Release builds. It is only relevant for Debug builds anyway.
Created attachment 453173 [details] [fast-cq] patch for landing.
Committed r290517 (?): <https://commits.webkit.org/r290517> All reviewed patches have been landed. Closing bug and clearing flags on attachment 453173 [details].