From cb4cac3c2b5070f3dff423132e3cf20858e82355 Mon Sep 17 00:00:00 2001 From: Julian Schurhammer Date: Fri, 12 Aug 2022 00:04:53 +1200 Subject: implement equals for maps in javascript --- src/persistent-hash-map.mjs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src') diff --git a/src/persistent-hash-map.mjs b/src/persistent-hash-map.mjs index c2a792c..1851258 100644 --- a/src/persistent-hash-map.mjs +++ b/src/persistent-hash-map.mjs @@ -588,6 +588,7 @@ function forEach(root, fn) { } /** Extra wrapper to keep track of map size */ export class PMap { + static NOT_FOUND = Symbol(); constructor(root, size) { this.root = root; this.size = size; @@ -599,6 +600,13 @@ export class PMap { }); return h; } + equals(o) { + let equal = true; + forEach(this, (v, k) => { + equal = equal && isEqual(v, getWithDefault(o, k, PMap.NOT_FOUND)); + }); + return equal; + } } export function create() { return new PMap(undefined, 0); -- cgit v1.2.3