Zaslat SMS: Extending Basic Block Versioning with Typed Object Shapes