]> Lady’s Gitweb - Pisces/blobdiff - string.js
Make base32 handling less forgiving
[Pisces] / string.js
index 28412fc98b8854b9b26f248c5e8b8ae98526d033..eb6f6fb4db0fa5444496190ce61ba766a81cbbd8 100644 (file)
--- a/string.js
+++ b/string.js
@@ -1,7 +1,7 @@
 // ♓🌟 Piscēs ∷ string.js
 // ====================================================================
 //
 // ♓🌟 Piscēs ∷ string.js
 // ====================================================================
 //
-// Copyright © 2022 Lady [@ Lady’s Computer].
+// Copyright © 2022–2023 Lady [@ Lady’s Computer].
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 import { bind, call, identity, makeCallable } from "./function.js";
 import {
   defineOwnProperties,
 import { bind, call, identity, makeCallable } from "./function.js";
 import {
   defineOwnProperties,
+  getOwnPropertyDescriptors,
   getPrototype,
   objectCreate,
   setPrototype,
 } from "./object.js";
   getPrototype,
   objectCreate,
   setPrototype,
 } from "./object.js";
+import { type } from "./value.js";
 
 export const {
   /**
 
 export const {
   /**
@@ -33,6 +35,8 @@ export const {
   const { exec: reExec, toString: reToString } = rePrototype;
   const getDotAll =
     Object.getOwnPropertyDescriptor(rePrototype, "dotAll").get;
   const { exec: reExec, toString: reToString } = rePrototype;
   const getDotAll =
     Object.getOwnPropertyDescriptor(rePrototype, "dotAll").get;
+  const getFlags =
+    Object.getOwnPropertyDescriptor(rePrototype, "flags").get;
   const getGlobal =
     Object.getOwnPropertyDescriptor(rePrototype, "global").get;
   const getHasIndices =
   const getGlobal =
     Object.getOwnPropertyDescriptor(rePrototype, "global").get;
   const getHasIndices =
@@ -174,6 +178,16 @@ export const {
       }
     }
 
       }
     }
 
+    /**
+     * Gets the flags present on this Matcher.
+     *
+     * ※ This needs to be defined because the internal RegExp object
+     * may have flags which are not yet recognized by ♓🌟 Piscēs.
+     */
+    get flags() {
+      return call(getFlags, this.#regExp, []);
+    }
+
     /** Gets whether the global flag is present on this Matcher. */
     get global() {
       return call(getGlobal, this.#regExp, []);
     /** Gets whether the global flag is present on this Matcher. */
     get global() {
       return call(getGlobal, this.#regExp, []);
@@ -213,12 +227,25 @@ export const {
       return call(getUnicode, this.#regExp, []);
     }
   };
       return call(getUnicode, this.#regExp, []);
     }
   };
-  const matcherPrototype = setPrototype(
-    Matcher.prototype,
-    rePrototype,
+
+  const matcherConstructor = defineOwnProperties(
+    class extends RegExp {
+      constructor(...args) {
+        return new Matcher(...args);
+      }
+    },
+    {
+      name: { value: "Matcher" },
+      length: { value: 1 },
+    },
+  );
+  const matcherPrototype = defineOwnProperties(
+    matcherConstructor.prototype,
+    getOwnPropertyDescriptors(Matcher.prototype),
+    { constructor: { value: matcherConstructor } },
   );
 
   );
 
-  return { Matcher };
+  return { Matcher: matcherConstructor };
 })();
 
 export const {
 })();
 
 export const {
This page took 0.051494 seconds and 4 git commands to generate.