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