mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-11-12 02:13:04 +08:00
The generated localeCompare table now agrees with Node on spellings that tie at the primary and secondary levels. "l·" and "L·" collate as one unit, equal to U+0140 and U+013F, through a contraction table. Precomposed characters take their decompositions' elements after the case weights are assigned, so U+0130 equals I + U+0307. Ligatures whose spelled-out letters tie with them (ij and ij) get the case weight Node places them at among their first letter's case forms, and ligatures with their own secondary (Æ) keep their own case. The generator's check now also compares every covered character's decompositions, case forms and ligature spellings in four contexts. A per-thread class table lets the lazy primary comparison find characters that need element lists with one lookup.