Re:Brimstone: ES2025 JavaScript engine written in Rust
by xeonmc on Sunday November 16, 2025 @01:37PM
(#45947293)
Does that include emojis?
[ Parent
| on HN ]
Re:Brimstone: ES2025 JavaScript engine written in Rust
by jcranmer on Sunday November 16, 2025 @02:04PM
(#45947489)
Emojis are complicated from a font rendering perspective. But from a string processing perspective, they're generally going to be among the simplest characters: they don't have a lot of complex properties with a lot of variation between individual characters. Compare something like the basic Latin characters, where the mappings for precomposed characters are going to vary wildly from 'a' to 'b' to 'c', etc., whereas the list of precomposed characters for the emoji blocks amounts to "none."
Re:Brimstone: ES2025 JavaScript engine written in Rust
by necovek on Sunday November 16, 2025 @02:56PM
(#45947902)
Agreed!
FWIW, they are not even "complicated" from a font rendering perspective: they're simple non-combining characters and they are probably never used in ligatures either (though nothing really stops you; just like you can have locale-specific variants with locl tables). It's basically "draw whatever is in a font at this codepoint".
Yes, if you want to call them out based on Unicode names, you need to have them in the database, and there are many of them, so a font needs to have them all, but really, they are the simplest of characters Unicode could have.
Re:Brimstone: ES2025 JavaScript engine written in Rust
by overfeed on Sunday November 16, 2025 @03:45PM
(#45948245)
> they're simple non-combining characters
Skin-tone emoji's are combined characters: base emoji + tone.
Re:Brimstone: ES2025 JavaScript engine written in Rust
by necovek on Monday November 17, 2025 @02:15AM
(#45951462)
TIL, thanks for pointing it out.
Re:Brimstone: ES2025 JavaScript engine written in Rust
by nicoburns on Sunday November 16, 2025 @03:13PM
(#45948028)
"draw whatever is in a font at this codepoint" is doing quite a lot of work there. Some emoji fonts just embed a PNG which is easy. But COLRv1 fonts define an entire vector graphics imaging model which is similar what you need to render an SVG.
Re:Brimstone: ES2025 JavaScript engine written in Rust
by kibwen on Sunday November 16, 2025 @03:33PM
(#45948157)
Yes, but at this point we're completely outside the scope of Unicode, which has nothing to do with how anything actually gets drawn to the screen.
Re:Brimstone: ES2025 JavaScript engine written in Rust
by SkiFire13 on Monday November 17, 2025 @02:35AM
(#45951571)
To add to the skintone emojis example, country flags emojis are combined characters using two letter characters corresponding to the country code. The various "family" emojis are also combined characters of individual person emojis, and so on.
Re:Brimstone: ES2025 JavaScript engine written in Rust
by nine_k on Sunday November 16, 2025 @10:40PM
(#45950667)
Sorry, what? You mean, emoji composition rules are simpler than combining diacritics? https://blog.codepoints.net/emojis-under-the-hood.html