aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/persistent-hash-map.mjs8
1 files changed, 8 insertions, 0 deletions
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);