in scripts/font-compiler/font-compiler.js [264:303]
function shouldSkip(ch) {
if (!blocks) {
blocks = []
for (let ll of blocksSrc.split(/\n/)) {
let m = /U\+([A-F0-9]{4}) - U\+([A-F0-9]{4})\s+(.*)/.exec(ll)
if (m) {
let k = parseInt(m[1], 16)
let ee = parseInt(m[2], 16)
let desc = m[3]
while (k <= ee) {
blocks[k++] = desc
}
}
}
}
if (/extended|supplement/.test(blocks[ch]) && !/latin/.test(blocks[ch]))
return true
if (/private|Compatibility|Presentation|Runic|IPA Extensions/i.test(blocks[ch]))
return true
// control chars
if (ch < 32) return true
if (128 <= ch && ch <= 159) return true
if (0xe000 <= ch && ch <= 0xf8ff) return true // private use
if (0xf900 <= ch && ch <= 0xFEFF) return true // presentation forms
if (0x300 <= ch && ch <= 0x36f) return true // combining
if (ch >= 0xfff0) return true // specials
if (0x2000 <= ch && ch <= 0x2bff) {
if (0x20A0 <= ch && ch <= 0x20CF)
return false // currency
if (0x2190 <= ch && ch <= 0x2199)
return false // a few arrows
return true
}
return false
}