Fix VersionedMap deserialization issue

Resolves #334.
This commit is contained in:
Zaid Abdulla committed 2019-01-28 18:38:40 -08:00
1 parent 85aadf6cb1
commit 8c71640da6
1 file changed
+4 -4
+4 -4
View File
@@ -127,15 +127,15 @@ class VersionedMap {
setRevisions(key, revisionsObj) { setRevisions(key, revisionsObj) {
const del = revisionsObj.delete || 0; const del = revisionsObj.delete || 0;
const maxRev = Object.keys(revisionsObj).reduce( const mutations = Object.keys(revisionsObj).reduce(
(acc, cur) => (+cur > acc ? +cur : acc), (acc, cur) => (cur === "delete" ? acc : acc | (1 << +cur)),
0 del
); );
const revisions = []; const revisions = [];
let prev = NONEXISTENT; let prev = NONEXISTENT;
for (let i = 0; i <= maxRev; ++i) { for (let i = 0; mutations >> i; ++i) {
let v = prev; let v = prev;
if (del & (1 << i)) v = NONEXISTENT; if (del & (1 << i)) v = NONEXISTENT;
else if (i in revisionsObj) v = revisionsObj[i]; else if (i in revisionsObj) v = revisionsObj[i];