Background
ʻ, the ʻOkina, Unicode code point U+02BB MODIFIER LETTER TURNED COMMA, is:
a unicameral consonant letter used within the Latin script to mark the phonemic glottal stop, in many Polynesian languages
Not to be confused with ' or even ‘, which are straight and curly single-quotation marks, respectively.
Question
Why does this:
[...'hiʻ'].sort((a, b) => a.localeCompare(b)).join('')
Yield hʻi as its answer? In other words, on what basis does localeCompare judge that the ʻOkina comes after H and before I in the alphabet?
The ECMAScript standard simply mentions that "The two Strings are compared in an implementation-defined fashion", yet both Chromium and Firefox are in agreement about this ordering, at least in the en-US locale.
It seems most (all?) languages that include ‘ in their alphabets simply place it at the end. Is there some Unicode standard somewhere that defines alphabetical ordering that both Chromium and Firefox use? Or if not, where did they both get the idea that ‘ falls between H and I?