+ *
+ * ☡ This function throws if the provided argument is not a symbol.
+ */
+export const getSymbolDescription = createCallableFunction(
+ Object.getOwnPropertyDescriptor(Symbol.prototype, "description").get,
+ { name: "getSymbolDescription" },
+);
+
+/**
+ * Returns a string representation of the provided symbol.
+ *
+ * ※ Use `getSymbolDescription` instead if you just want the text
+ * description of a symbol.
+ *
+ * ※ This is effectively an alias for the `Symbol::toString`.
+ *
+ * ☡ This function throws if the provided argument is not a symbol.
+ */
+export const symbolToString = createCallableFunction(
+ Symbol.prototype.toString,
+ { name: "symbolToString" },
+);
+
+/**
+ * Returns the value of the provided symbol.
+ *
+ * ※ This is effectively an alias for the `Symbol::valueOf`.
+ *
+ * ☡ This function throws if the provided argument is not a symbol and
+ * does not have a `[[SymbolData]]` slot.