An Undo / Redo history module for JavaScript