You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
622 B
26 lines
622 B
var decodeMap = require("../maps/decode.json"); |
|
|
|
module.exports = decodeCodePoint; |
|
|
|
// modified version of https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119 |
|
function decodeCodePoint(codePoint){ |
|
|
|
if((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF){ |
|
return "\uFFFD"; |
|
} |
|
|
|
if(codePoint in decodeMap){ |
|
codePoint = decodeMap[codePoint]; |
|
} |
|
|
|
var output = ""; |
|
|
|
if(codePoint > 0xFFFF){ |
|
codePoint -= 0x10000; |
|
output += String.fromCharCode(codePoint >>> 10 & 0x3FF | 0xD800); |
|
codePoint = 0xDC00 | codePoint & 0x3FF; |
|
} |
|
|
|
output += String.fromCharCode(codePoint); |
|
return output; |
|
}
|
|
|