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;
|
prev = v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (prev === NONEXISTENT && !res.delete) return null;
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,6 +124,8 @@ export default class VersionedMap<K, V> {
|
|||||||
del,
|
del,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (!mutations) return;
|
||||||
|
|
||||||
const revisions = [];
|
const revisions = [];
|
||||||
|
|
||||||
let prev: V | symbol = NONEXISTENT;
|
let prev: V | symbol = NONEXISTENT;
|
||||||
@@ -149,7 +153,7 @@ export default class VersionedMap<K, V> {
|
|||||||
|
|
||||||
public *diff(): IterableIterator<[K, V, V]> {
|
public *diff(): IterableIterator<[K, V, V]> {
|
||||||
for (const [key, revisions] of this.map) {
|
for (const [key, revisions] of this.map) {
|
||||||
if (revisions.length === 1) continue;
|
if (revisions.length <= 1) continue;
|
||||||
let first = revisions[0];
|
let first = revisions[0];
|
||||||
let last = revisions[revisions.length - 1];
|
let last = revisions[revisions.length - 1];
|
||||||
if (first === NONEXISTENT && last === NONEXISTENT) continue;
|
if (first === NONEXISTENT && last === NONEXISTENT) continue;
|
||||||
|
|||||||
Reference in new issue
Block a user