This is really funny and I do feel ashamed for my laziness.
I didn't expect ChatGPT to make such trivial mistake, although, I have no idea which model do they use on the free plan these days.
The correct code is, of course:
text.replace("—", "\U00010EAD\U00010EAC")
...in case anyone is curious.
Curiously enough, after telling it "your code is broken, can you find the mistake?" it was able to correct the code:
Might be a good idea in general to throw out a few preventative iterations of "Your code is broken, can you find the mistake?" before you even bother reading its initial output
But if there's no mistake, it may change something unrelated and break something else...
Maybe this should be the last line of the system prompt...