From f75f1bc66286a9e2b5b5806d717d9d570c35da64 Mon Sep 17 00:00:00 2001 From: Louis Pilfold Date: Sat, 11 Nov 2023 23:17:27 +0000 Subject: JS impl --- src/gleam_stdlib.mjs | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/gleam_stdlib.mjs') diff --git a/src/gleam_stdlib.mjs b/src/gleam_stdlib.mjs index 2a1a6cf..a7405f2 100644 --- a/src/gleam_stdlib.mjs +++ b/src/gleam_stdlib.mjs @@ -796,6 +796,7 @@ export function inspect(v) { if (v instanceof UtfCodepoint) return inspectUtfCodepoint(v); if (v instanceof BitArray) return inspectBitArray(v); if (v instanceof CustomType) return inspectCustomType(v); + if (v instanceof PMap) return inspectMap(v); if (v instanceof Set) return `//js(Set(${[...v].map(inspect).join(", ")}))`; if (v instanceof RegExp) return `//js(${v})`; if (v instanceof Date) return `//js(Date("${v.toISOString()}"))`; @@ -808,6 +809,17 @@ export function inspect(v) { return inspectObject(v); } +function inspectMap(map) { + let body = "map.from_list(["; + let first = true; + map.forEach((value, key) => { + if (!first) body = body + ", "; + body = body + "#(" + inspect(key) + ", " + inspect(value) + ")"; + first = false; + }); + return body + "])"; +} + function inspectObject(v) { const name = Object.getPrototypeOf(v)?.constructor?.name || "Object"; const props = []; -- cgit v1.2.3