aboutsummaryrefslogtreecommitdiff
path: root/node_modules/entities/lib/decode_codepoint.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/entities/lib/decode_codepoint.js')
-rw-r--r--node_modules/entities/lib/decode_codepoint.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/node_modules/entities/lib/decode_codepoint.js b/node_modules/entities/lib/decode_codepoint.js
new file mode 100644
index 000000000..730d5bfa2
--- /dev/null
+++ b/node_modules/entities/lib/decode_codepoint.js
@@ -0,0 +1,26 @@
+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;
+}