From 26a09f08cf1ed43c640879f23fdad56c5c9282f7 Mon Sep 17 00:00:00 2001 From: HelenHuang <LinHuang@pollex.com.tw> Date: 星期四, 09 六月 2022 15:02:38 +0800 Subject: [PATCH] TODO#139884 Banner 1 文案調整 --- PAMapp/node_modules/@babel/helper-create-regexp-features-plugin/lib/util.js | 71 +++++++++++++++++++++-------------- 1 files changed, 43 insertions(+), 28 deletions(-) diff --git a/PAMapp/node_modules/@babel/helper-create-regexp-features-plugin/lib/util.js b/PAMapp/node_modules/@babel/helper-create-regexp-features-plugin/lib/util.js index 8a365c8..7bb6d40 100644 --- a/PAMapp/node_modules/@babel/helper-create-regexp-features-plugin/lib/util.js +++ b/PAMapp/node_modules/@babel/helper-create-regexp-features-plugin/lib/util.js @@ -3,53 +3,68 @@ Object.defineProperty(exports, "__esModule", { value: true }); +exports.canSkipRegexpu = canSkipRegexpu; exports.generateRegexpuOptions = generateRegexpuOptions; +exports.transformFlags = transformFlags; var _features = require("./features"); -function generateRegexpuOptions(node, features) { - let useUnicodeFlag = false, - dotAllFlag = false, - unicodePropertyEscape = false, - namedGroup = false; +function generateRegexpuOptions(toTransform) { + const feat = (name, ok = "transform") => { + return (0, _features.hasFeature)(toTransform, _features.FEATURES[name]) ? ok : false; + }; + + return { + unicodeFlag: feat("unicodeFlag"), + unicodeSetsFlag: feat("unicodeSetsFlag") || feat("unicodeSetsFlag_syntax", "parse"), + dotAllFlag: feat("dotAllFlag"), + unicodePropertyEscapes: feat("unicodePropertyEscape"), + namedGroups: feat("namedCaptureGroups"), + onNamedGroup: () => {} + }; +} + +function canSkipRegexpu(node, options) { const { flags, pattern } = node; - const flagsIncludesU = flags.includes("u"); - if (flagsIncludesU) { - if (!(0, _features.hasFeature)(features, _features.FEATURES.unicodeFlag)) { - useUnicodeFlag = true; - } + if (flags.includes("v")) { + if (options.unicodeSetsFlag === "transform") return false; + } - if ((0, _features.hasFeature)(features, _features.FEATURES.unicodePropertyEscape) && /\\[pP]{/.test(pattern)) { - unicodePropertyEscape = true; + if (flags.includes("u")) { + if (options.unicodeFlag === "transform") return false; + + if (options.unicodePropertyEscapes === "transform" && /\\[pP]{/.test(pattern)) { + return false; } } - if ((0, _features.hasFeature)(features, _features.FEATURES.dotAllFlag) && flags.indexOf("s") >= 0) { - dotAllFlag = true; + if (flags.includes("s")) { + if (options.dotAllFlag === "transform") return false; } - if ((0, _features.hasFeature)(features, _features.FEATURES.namedCaptureGroups) && /\(\?<(?![=!])/.test(pattern)) { - namedGroup = true; + if (options.namedGroups === "transform" && /\(\?<(?![=!])/.test(pattern)) { + return false; } - if (!namedGroup && !unicodePropertyEscape && !dotAllFlag && (!flagsIncludesU || useUnicodeFlag)) { - return null; + return true; +} + +function transformFlags(regexpuOptions, flags) { + if (regexpuOptions.unicodeSetsFlag === "transform") { + flags = flags.replace("v", "u"); } - if (flagsIncludesU && flags.indexOf("s") >= 0) { - dotAllFlag = true; + if (regexpuOptions.unicodeFlag === "transform") { + flags = flags.replace("u", ""); } - return { - useUnicodeFlag, - onNamedGroup: () => {}, - namedGroup, - unicodePropertyEscape, - dotAllFlag, - lookbehind: true - }; + if (regexpuOptions.dotAllFlag === "transform") { + flags = flags.replace("s", ""); + } + + return flags; } \ No newline at end of file -- Gitblit v1.8.0