`ObjectSpace.dump` of a 47-byte string shows `"embedded":true`. If you then call `str << "x"` enough times to exceed the slot's inline capacity, what happens to that object's identity and storage?
require 'objspace'
s = "x" * 47
p JSON.parse(ObjectSpace.dump(s))["embedded"] # true
s << ("y" * 500)
# what is true of s now?