Please sign in to comment.
[IR] Breaks and non-local returns handled entirely via IR instrs.
* Removed last bits of special case handling of breaks and non-local returns from the interpreter by adding global exception handling in methods (those that receive nonlocal returns) and all closures (for stopping uncaught breaks in lambdas). Since there is no syntactic/lexical way of distinguishing lambda closures from proc and other closures, we need this check in all closures. * This patch does affect performance of intepreted code in some cases. For example, most of the perf. benefits gained from recent patches are lost with this change. * Worth investigating more closely and maybe selectively enabling this only for JIT-ted code, if necessary, for example.
- Loading branch information...
Showing with 98 additions and 21 deletions.