// ♓🌟 Piscēs ∷ value.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
// file, You can obtain one at <https://mozilla.org/MPL/2.0/>.
-import { call } from "./function.js";
+export const {
+ /** The welknown `@@asyncIterator` symbol. */
+ asyncIterator: ASYNC_ITERATOR,
+
+ /** The welknown `@@hasInstance` symbol. */
+ hasInstance: HAS_INSTANCE,
+
+ /** The welknown `@@isConcatSpreadable` symbol. */
+ isConcatSpreadable: IS_CONCAT_SPREADABLE,
+
+ /** The welknown `@@iterator` symbol. */
+ iterator: ITERATOR,
+
+ /** The welknown `@@match` symbol. */
+ match: MATCH,
+
+ /** The welknown `@@matchAll` symbol. */
+ matchAll: MATCH_ALL,
+
+ /** The welknown `@@replace` symbol. */
+ replace: REPLACE,
+
+ /** The welknown `@@species` symbol. */
+ species: SPECIES,
+
+ /** The welknown `@@split` symbol. */
+ split: SPLIT,
+
+ /** The welknown `@@toPrimitive` symbol. */
+ toPrimitive: TO_PRIMITIVE,
+
+ /** The welknown `@@toStringTag` symbol. */
+ toStringTag: TO_STRING_TAG,
+
+ /** The welknown `@@unscopables` symbol. */
+ unscopables: UNSCOPABLES,
+} = Symbol;
/** The null primitive. */
export const NULL = null;
export const {
/**
* Returns the primitive value of the provided object per its
- * `toString` and `valueOf` methods.
+ * `.toString` and `.valueOf` methods.
*
- * If the provided hint is "string", then `toString` takes
- * precedence; otherwise, `valueOf` does.
+ * If the provided hint is "string", then `.toString` takes
+ * precedence; otherwise, `.valueOf` does.
*
* Throws an error if both of these methods are not callable or do
* not return a primitive.
*
* The provided preferred type, if specified, should be "string",
* "number", or "default". If the provided input has a
- * `[Symbol.toPrimitive]` method, this function will throw rather
+ * `.[Symbol.toPrimitive]` method, this function will throw rather
* than calling that method with a preferred type other than one of
* the above.
*/
toPrimitive,
} = (() => {
- const { toPrimitive: toPrimitiveSymbol } = Symbol;
+ const { apply: call } = Reflect;
return {
ordinaryToPrimitive: (O, hint) => {
);
} else if (type($) === "object") {
// The provided value is an object.
- const exoticToPrim = $[toPrimitiveSymbol] ?? undefined;
+ const exoticToPrim = $[TO_PRIMITIVE] ?? undefined;
if (exoticToPrim !== undefined) {
// The provided value has an exotic primitive conversion
// method.
if (typeof exoticToPrim !== "function") {
// The method is not callable.
throw new TypeError(
- "Piscēs: `[Symbol.toPrimitive]` was neither nullish nor callable.",
+ "Piscēs: `.[Symbol.toPrimitive]` was neither nullish nor callable.",
);
} else {
// The method is callable.