Not that uncommon for a language interpreter? Pretty sure MicroPython does some setjmp/longjmp for non-local returns.