]> Lady’s Gitweb - Pisces/blobdiff - collection.js
Make base32 handling less forgiving
[Pisces] / collection.js
index 20b6feffb32caf1e458b2a662d42021f81f1cc8f..7319b7314399a71ee5bf028c7ae49ea22593d952 100644 (file)
@@ -35,7 +35,7 @@ export const {
  * numeric index string; otherwise, returns undefined.
  *
  * There is no clamping of the numeric index, but note that numbers
- * above 2^53 − 1 are not safe nor valid integer indices.
+ * above 2^53 − 1 are not safe nor valid integer indices.
  */
 export const canonicalNumericIndexString = ($) => {
   if (typeof $ !== "string") {
@@ -188,12 +188,26 @@ export const isArrayIndexString = ($) => {
   }
 };
 
+/** Returns whether the provided value is arraylike. */
+export const isArraylikeObject = ($) => {
+  if (type($) !== "object") {
+    return false;
+  } else {
+    try {
+      lengthOfArraylike($); // throws if not arraylike
+      return true;
+    } catch {
+      return false;
+    }
+  }
+};
+
 /**
  * Returns whether the provided object is a collection.
  *
  * The definition of “collection” used by Piscēs is similar to
  * Ecmascript’s definition of an arraylike object, but it differs in
- * a few ways:—
+ * a few ways :—
  *
  * - It requires the provided value to be a proper object.
  *
@@ -262,7 +276,7 @@ export const items = makeCallable(Array.prototype.values);
  * This can produce larger lengths than can actually be stored in
  * arrays, because no such restrictions exist on arraylike methods.
  */
-export const lengthOfArrayLike = ({ length }) => toLength(length);
+export const lengthOfArraylike = ({ length }) => toLength(length);
 
 /**
  * Returns the result of mapping the provided value with the provided
This page took 0.020845 seconds and 4 git commands to generate.