readline: simplify isFullWidthCodePoint()
The non-ICU-based isFullWidthCodePoint() can be simplified to a single `return` statement. This commit removes the extra branching logic. PR-URL: https://github.com/nodejs/node/pull/28640 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de>
This commit is contained in:
parent
223ba43434
commit
a13054549e
@ -82,48 +82,38 @@ if (internalBinding('config').hasIntl) {
|
|||||||
* Unicode code point is full-width. Otherwise returns false.
|
* Unicode code point is full-width. Otherwise returns false.
|
||||||
*/
|
*/
|
||||||
isFullWidthCodePoint = function isFullWidthCodePoint(code) {
|
isFullWidthCodePoint = function isFullWidthCodePoint(code) {
|
||||||
if (!Number.isInteger(code)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Code points are derived from:
|
// Code points are derived from:
|
||||||
// http://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt
|
// http://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt
|
||||||
if (
|
return Number.isInteger(code) && code >= 0x1100 && (
|
||||||
code >= 0x1100 && (
|
code <= 0x115f || // Hangul Jamo
|
||||||
code <= 0x115f || // Hangul Jamo
|
code === 0x2329 || // LEFT-POINTING ANGLE BRACKET
|
||||||
code === 0x2329 || // LEFT-POINTING ANGLE BRACKET
|
code === 0x232a || // RIGHT-POINTING ANGLE BRACKET
|
||||||
code === 0x232a || // RIGHT-POINTING ANGLE BRACKET
|
// CJK Radicals Supplement .. Enclosed CJK Letters and Months
|
||||||
// CJK Radicals Supplement .. Enclosed CJK Letters and Months
|
code >= 0x2e80 && code <= 0x3247 && code !== 0x303f ||
|
||||||
code >= 0x2e80 && code <= 0x3247 && code !== 0x303f ||
|
// Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A
|
||||||
// Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A
|
code >= 0x3250 && code <= 0x4dbf ||
|
||||||
code >= 0x3250 && code <= 0x4dbf ||
|
// CJK Unified Ideographs .. Yi Radicals
|
||||||
// CJK Unified Ideographs .. Yi Radicals
|
code >= 0x4e00 && code <= 0xa4c6 ||
|
||||||
code >= 0x4e00 && code <= 0xa4c6 ||
|
// Hangul Jamo Extended-A
|
||||||
// Hangul Jamo Extended-A
|
code >= 0xa960 && code <= 0xa97c ||
|
||||||
code >= 0xa960 && code <= 0xa97c ||
|
// Hangul Syllables
|
||||||
// Hangul Syllables
|
code >= 0xac00 && code <= 0xd7a3 ||
|
||||||
code >= 0xac00 && code <= 0xd7a3 ||
|
// CJK Compatibility Ideographs
|
||||||
// CJK Compatibility Ideographs
|
code >= 0xf900 && code <= 0xfaff ||
|
||||||
code >= 0xf900 && code <= 0xfaff ||
|
// Vertical Forms
|
||||||
// Vertical Forms
|
code >= 0xfe10 && code <= 0xfe19 ||
|
||||||
code >= 0xfe10 && code <= 0xfe19 ||
|
// CJK Compatibility Forms .. Small Form Variants
|
||||||
// CJK Compatibility Forms .. Small Form Variants
|
code >= 0xfe30 && code <= 0xfe6b ||
|
||||||
code >= 0xfe30 && code <= 0xfe6b ||
|
// Halfwidth and Fullwidth Forms
|
||||||
// Halfwidth and Fullwidth Forms
|
code >= 0xff01 && code <= 0xff60 ||
|
||||||
code >= 0xff01 && code <= 0xff60 ||
|
code >= 0xffe0 && code <= 0xffe6 ||
|
||||||
code >= 0xffe0 && code <= 0xffe6 ||
|
// Kana Supplement
|
||||||
// Kana Supplement
|
code >= 0x1b000 && code <= 0x1b001 ||
|
||||||
code >= 0x1b000 && code <= 0x1b001 ||
|
// Enclosed Ideographic Supplement
|
||||||
// Enclosed Ideographic Supplement
|
code >= 0x1f200 && code <= 0x1f251 ||
|
||||||
code >= 0x1f200 && code <= 0x1f251 ||
|
// CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane
|
||||||
// CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane
|
code >= 0x20000 && code <= 0x3fffd
|
||||||
code >= 0x20000 && code <= 0x3fffd
|
);
|
||||||
)
|
|
||||||
) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user