-
Marius Wachtler authored
We can't directly do OSR from the bjit frame because it will cause issues with exception handling. Reason is that the bjit and the OSRed code share the same python frame and the way invokes are implemented in the bjit. During unwinding we will see the OSR frame and will remove it and continue to unwind but the try catch block inside ASTInterpreter::execJITedBlock will rethrow the exception which causes another frame deinit, which is wrong because it already got removed. Instead we return back to the interpreter loop with special value (osr_dummy_value) which will trigger the OSR from there.
82c676a1