tinymce.full.js
function (callback1, callback2) {
          var lastLevel, bookmark;

          if (self.transact(callback1)) {
            bookmark = data[index].bookmark;
            lastLevel = data[index - 1];
            Levels.applyToEditor(editor, lastLevel, true);

            if (self.transact(callback2)) {
              data[index - 1].beforeBookmark = bookmark;
            }
          }
        }
function (callback1, callback2) {
          var lastLevel, bookmark;

          if (self.transact(callback1)) {
            bookmark = data[index].bookmark;
            lastLevel = data[index - 1];
            Levels.applyToEditor(editor, lastLevel, true);

            if (self.transact(callback2)) {
              data[index - 1].beforeBookmark = bookmark;
            }
          }
        }
function ( callback1 , callback2 ) { var lastLevel , bookmark ; if ( self . transact ( callback1 ) ) { bookmark = data [ index ] . bookmark ; lastLevel = data [ index - 1 ] ; Levels . applyToEditor ( editor , lastLevel , true ) ; if ( self . transact ( callback2 ) ) { data [ index - 1 ] . beforeBookmark = bookmark ; } } }
Adds an extra "hidden" undo level by first applying the first mutation and store that to the undo stack
then roll back that change and do the second mutation on top of the stack. This will produce an extra
undo level that the user doesn't see until they undo.

@method extra
@param {function} callback1 Function that does mutation but gets stored as a "hidden" extra undo level.
@param {function} callback2 Function that does mutation but gets displayed to the user.
Adds an extra hidden undo level by first applying the first mutation and store that to the undo stack then roll back that change and do the second mutation on top of the stack . This will produce an extra undo level that the user doesn t see until they undo .