An important question that was not addressed is whether the general path will be slower to account for what is needed to check first if the fast path can be used.
An important question that was not addressed is whether the general path will be slower to account for what is needed to check first if the fast path can be used.
It's not - the general path is a bailout for the fast path which continues where the fast path stopped, so you don't have to check the whole object for fastness (and you get the fast path up until the bailout)