fireUpdate = function fireUpdate(previousData) {
      var self = _assertThisInitialized(_this);

      var eventData = {
        get previousData() {
          return (0, _helpers.getIn)(previousData, self.solvedPath).data;
        },

        get currentData() {
          return self.get();
        }

      };
      if (_this.state.recording && !_this.state.undoing) _this.archive.add(eventData.previousData);
      _this.state.undoing = false;
      return _this.emit('update', eventData);
    }
Function in charge of actually trigger the cursor's updates and
deal with the archived records.

@note: probably should wrap the current solvedPath in closure to avoid
for tricky cases where it would fail.

@param {mixed} previousData - the tree's previous data.