private void AppendUnicodeCodePoint(StringBuilder/*!*/ builder, int codepoint) {
if (codepoint >= 0xd800 && codepoint <= 0xdfff || codepoint > 0x10ffff) {
throw MakeError("invalid Unicode range");
} else if (codepoint < 0x10000) {
AppendEscaped(builder, codepoint);
} else {
codepoint -= 0x10000;
Append((char)((codepoint / 0x400) + 0xd800));
Append((char)((codepoint % 0x400) + 0xdc00));
}
}