From 0383947ed7bd44fd4a80ef955ab70ef32363a634 Mon Sep 17 00:00:00 2001 From: cjihrig Date: Thu, 11 Jul 2019 10:38:51 -0400 Subject: [PATCH] readline: simplify isFullWidthCodePoint() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-By: Ruben Bridgewater Reviewed-By: Rich Trott Reviewed-By: Michaël Zasso Reviewed-By: Jeremiah Senkpiel Reviewed-By: Benjamin Gruenbaum Reviewed-By: Tobias Nießen --- lib/internal/readline.js | 70 +++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 40 deletions(-) diff --git a/lib/internal/readline.js b/lib/internal/readline.js index c3f40c4fc4b6b8..c6cd13a6bd19eb 100644 --- a/lib/internal/readline.js +++ b/lib/internal/readline.js @@ -82,48 +82,38 @@ if (internalBinding('config').hasIntl) { * Unicode code point is full-width. Otherwise returns false. */ isFullWidthCodePoint = function isFullWidthCodePoint(code) { - if (!Number.isInteger(code)) { - return false; - } - // Code points are derived from: // http://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt - if ( - code >= 0x1100 && ( - code <= 0x115f || // Hangul Jamo - code === 0x2329 || // LEFT-POINTING ANGLE BRACKET - code === 0x232a || // RIGHT-POINTING ANGLE BRACKET - // CJK Radicals Supplement .. Enclosed CJK Letters and Months - code >= 0x2e80 && code <= 0x3247 && code !== 0x303f || - // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A - code >= 0x3250 && code <= 0x4dbf || - // CJK Unified Ideographs .. Yi Radicals - code >= 0x4e00 && code <= 0xa4c6 || - // Hangul Jamo Extended-A - code >= 0xa960 && code <= 0xa97c || - // Hangul Syllables - code >= 0xac00 && code <= 0xd7a3 || - // CJK Compatibility Ideographs - code >= 0xf900 && code <= 0xfaff || - // Vertical Forms - code >= 0xfe10 && code <= 0xfe19 || - // CJK Compatibility Forms .. Small Form Variants - code >= 0xfe30 && code <= 0xfe6b || - // Halfwidth and Fullwidth Forms - code >= 0xff01 && code <= 0xff60 || - code >= 0xffe0 && code <= 0xffe6 || - // Kana Supplement - code >= 0x1b000 && code <= 0x1b001 || - // Enclosed Ideographic Supplement - code >= 0x1f200 && code <= 0x1f251 || - // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane - code >= 0x20000 && code <= 0x3fffd - ) - ) { - return true; - } - - return false; + return Number.isInteger(code) && code >= 0x1100 && ( + code <= 0x115f || // Hangul Jamo + code === 0x2329 || // LEFT-POINTING ANGLE BRACKET + code === 0x232a || // RIGHT-POINTING ANGLE BRACKET + // CJK Radicals Supplement .. Enclosed CJK Letters and Months + code >= 0x2e80 && code <= 0x3247 && code !== 0x303f || + // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A + code >= 0x3250 && code <= 0x4dbf || + // CJK Unified Ideographs .. Yi Radicals + code >= 0x4e00 && code <= 0xa4c6 || + // Hangul Jamo Extended-A + code >= 0xa960 && code <= 0xa97c || + // Hangul Syllables + code >= 0xac00 && code <= 0xd7a3 || + // CJK Compatibility Ideographs + code >= 0xf900 && code <= 0xfaff || + // Vertical Forms + code >= 0xfe10 && code <= 0xfe19 || + // CJK Compatibility Forms .. Small Form Variants + code >= 0xfe30 && code <= 0xfe6b || + // Halfwidth and Fullwidth Forms + code >= 0xff01 && code <= 0xff60 || + code >= 0xffe0 && code <= 0xffe6 || + // Kana Supplement + code >= 0x1b000 && code <= 0x1b001 || + // Enclosed Ideographic Supplement + code >= 0x1f200 && code <= 0x1f251 || + // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane + code >= 0x20000 && code <= 0x3fffd + ); }; }