function shouldSkip()

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
}