An example is Ruby MJIT's: https://blog.heroku.com/ruby-mjit. I'm not a big fan of this strategy - as a matter of fact, Ruby's future (reference) JIT is a conventional JIT.
I didn’t know Ruby did this - cool. I agree it’s not the most robust way to write a jit, but it’s prob the easiest