The same rich object model that Common Lisp, Dylan, SELF, JavaScript, Smalltalk enjoy while having JIT support.
For example in Smalltalk, you can destroy all JIT assumptions about a given object by sending a become: message.
https://gbracha.blogspot.com/2009/07/miracle-of-become.html