From ccde7ca268640e3f39a75f6606a088ac6d04dbd7 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Fri, 14 Jun 2024 23:21:29 +0800 Subject: [PATCH] Revert "Revert "Switch `kRegex` to use RegExp with `u` directly"" (#15644) * Revert "Revert "Switch `kRegex` to use RegExp with `u` directly" (#15643)" This reverts commit 52375f57eb86933340a7722b02d293c12646f3c9. --- scripts/build/build-javascript-module.js | 4 ++++ src/language-markdown/constants.evaluate.js | 7 +------ src/language-markdown/utils.js | 8 +++----- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/scripts/build/build-javascript-module.js b/scripts/build/build-javascript-module.js index 699eb416e..0dd907ec7 100644 --- a/scripts/build/build-javascript-module.js +++ b/scripts/build/build-javascript-module.js @@ -258,6 +258,10 @@ function getEsbuildOptions({ file, files, shouldCollectLicenses, cliOptions }) { outfile: path.join(DIST_DIR, cliOptions.saveAs ?? file.output.file), // https://esbuild.github.io/api/#main-fields mainFields: file.platform === "node" ? ["module", "main"] : undefined, + supported: { + // https://github.com/evanw/esbuild/issues/3471 + "regexp-unicode-property-escapes": true, + }, }; if (file.platform === "universal") { diff --git a/src/language-markdown/constants.evaluate.js b/src/language-markdown/constants.evaluate.js index d05924062..83e46b34f 100644 --- a/src/language-markdown/constants.evaluate.js +++ b/src/language-markdown/constants.evaluate.js @@ -24,11 +24,6 @@ const CJK_REGEXP = new RegExp( `(?:${cjkCharset.toString()})(?:${variationSelectorsCharset.toString()})?`, ); -const K_REGEXP = new Charset( - unicodeRegex({ Script: ["Hangul"] }), - unicodeRegex({ Script_Extensions: ["Hangul"] }), -).toRegExp(); - // http://spec.commonmark.org/0.25/#ascii-punctuation-character const asciiPunctuationCharset = /* prettier-ignore */ new Charset( @@ -57,4 +52,4 @@ const PUNCTUATION_REGEXP = new Charset( unicodePunctuationCharset, ).toRegExp(); -export { CJK_REGEXP, K_REGEXP, PUNCTUATION_REGEXP }; +export { CJK_REGEXP, PUNCTUATION_REGEXP }; diff --git a/src/language-markdown/utils.js b/src/language-markdown/utils.js index f1b2d88f3..cec131aaf 100644 --- a/src/language-markdown/utils.js +++ b/src/language-markdown/utils.js @@ -1,10 +1,6 @@ import assert from "node:assert"; -import { - CJK_REGEXP, - K_REGEXP, - PUNCTUATION_REGEXP, -} from "./constants.evaluate.js"; +import { CJK_REGEXP, PUNCTUATION_REGEXP } from "./constants.evaluate.js"; import { locEnd, locStart } from "./loc.js"; const INLINE_NODE_TYPES = new Set([ @@ -40,6 +36,8 @@ const KIND_CJ_LETTER = "cj-letter"; const KIND_K_LETTER = "k-letter"; const KIND_CJK_PUNCTUATION = "cjk-punctuation"; +const K_REGEXP = /\p{Script_Extensions=Hangul}/u; + /** * @typedef {" " | "\n" | ""} WhitespaceValue * @typedef { KIND_NON_CJK | KIND_CJ_LETTER | KIND_K_LETTER | KIND_CJK_PUNCTUATION } WordKind