Fix (de)serialization bug in VersionedMap
This commit is contained in:
1 parent
4be39ed742
commit
49cdd39617
1 file changed
+5
-1
@@ -112,6 +112,8 @@ export default class VersionedMap<K, V> {
|
||||
prev = v;
|
||||
}
|
||||
|
||||
if (prev === NONEXISTENT && !res.delete) return null;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -122,6 +124,8 @@ export default class VersionedMap<K, V> {
|
||||
del,
|
||||
);
|
||||
|
||||
if (!mutations) return;
|
||||
|
||||
const revisions = [];
|
||||
|
||||
let prev: V | symbol = NONEXISTENT;
|
||||
@@ -149,7 +153,7 @@ export default class VersionedMap<K, V> {
|
||||
|
||||
public *diff(): IterableIterator<[K, V, V]> {
|
||||
for (const [key, revisions] of this.map) {
|
||||
if (revisions.length === 1) continue;
|
||||
if (revisions.length <= 1) continue;
|
||||
let first = revisions[0];
|
||||
let last = revisions[revisions.length - 1];
|
||||
if (first === NONEXISTENT && last === NONEXISTENT) continue;
|
||||
|
||||
Reference in new issue
Block a user