We should never hit the HeapId::pre barrier in normal engine usage. If we ever do start using this, the fact that strings are not caught here will be a bug.
Created attachment 607733 [details] [diff] [review]
I'm not sure if the JS_UNLIKELYs make sense after this patch. I don't really know what the common case is here -- JSID_IS_VOID maybe? Perhaps, if we do know what to expect as a common case, it would be better to detect it and exit early with a single branch here?