2 /* eslint-disable yoda */
3 module.exports = x => {
8 // code points are derived from:
9 // http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt
12 x <= 0x115f || // Hangul Jamo
13 x === 0x2329 || // LEFT-POINTING ANGLE BRACKET
14 x === 0x232a || // RIGHT-POINTING ANGLE BRACKET
15 // CJK Radicals Supplement .. Enclosed CJK Letters and Months
16 (0x2e80 <= x && x <= 0x3247 && x !== 0x303f) ||
17 // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A
18 (0x3250 <= x && x <= 0x4dbf) ||
19 // CJK Unified Ideographs .. Yi Radicals
20 (0x4e00 <= x && x <= 0xa4c6) ||
21 // Hangul Jamo Extended-A
22 (0xa960 <= x && x <= 0xa97c) ||
24 (0xac00 <= x && x <= 0xd7a3) ||
25 // CJK Compatibility Ideographs
26 (0xf900 <= x && x <= 0xfaff) ||
28 (0xfe10 <= x && x <= 0xfe19) ||
29 // CJK Compatibility Forms .. Small Form Variants
30 (0xfe30 <= x && x <= 0xfe6b) ||
31 // Halfwidth and Fullwidth Forms
32 (0xff01 <= x && x <= 0xff60) ||
33 (0xffe0 <= x && x <= 0xffe6) ||
35 (0x1b000 <= x && x <= 0x1b001) ||
36 // Enclosed Ideographic Supplement
37 (0x1f200 <= x && x <= 0x1f251) ||
38 // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane
39 (0x20000 <= x && x <= 0x3fffd)