From 8c71640da694db9340b1548208472d5ddc2a642b Mon Sep 17 00:00:00 2001 From: Zaid Abdulla Date: Mon, 28 Jan 2019 18:38:40 -0800 Subject: [PATCH] Fix VersionedMap deserialization issue Resolves #334. --- lib/versioned-map.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/versioned-map.js b/lib/versioned-map.js index 30853cd..e93ff14 100644 --- a/lib/versioned-map.js +++ b/lib/versioned-map.js @@ -127,15 +127,15 @@ class VersionedMap { setRevisions(key, revisionsObj) { const del = revisionsObj.delete || 0; - const maxRev = Object.keys(revisionsObj).reduce( - (acc, cur) => (+cur > acc ? +cur : acc), - 0 + const mutations = Object.keys(revisionsObj).reduce( + (acc, cur) => (cur === "delete" ? acc : acc | (1 << +cur)), + del ); const revisions = []; let prev = NONEXISTENT; - for (let i = 0; i <= maxRev; ++i) { + for (let i = 0; mutations >> i; ++i) { let v = prev; if (del & (1 << i)) v = NONEXISTENT; else if (i in revisionsObj) v = revisionsObj[i];