ctrl-shift-f historyValues.shift/push/splice, it is impossible for them to get out of sync. It would be substantially slower to use objects, and it would mean I can't use native buffers like I plan to do eventually. Trust me, I thought this through :D .