En Chrome, la función de deshacer no funciona correctamente para el elemento de entrada después de que los contenidos se modificaron programáticamente

En Chrome, noté que deshacer no funciona correctamente para el elemento de entrada después de que el contenido del elemento se haya modificado mediante programación. Aunque tengo diferentes comportamientos para diferentes navegadores, no son tan malos como Chrome.

FF20      good
IE9       some support (undo stack cleared when input loses focus)
Safari5   some support (undo stack cleared when input loses focus)
Chrome26  unreliable

Por ejemplo, un script que recorta espacios (vea también jsfiddle abajo)

escribe algunos espacios antes de "hola!",haga clic fuera del elemento de entradahaga clic en el elemento de entrada y presione Ctrl-Z

ahora el texto se ha ido (en Chome)

jsfiddle aquí

<input type="text" id="input1" value="hello!">

document.getElementById("input1").addEventListener('blur', function(evt){elementLosesFocus(evt, this);}, false);

function elementLosesFocus(evt, caller)
{
    caller.value = caller.value.trim();
}

Creo que lo mejor que puedo esperar es un método para borrar de alguna manera el historial de deshacer de la entrada cuando pierde el foco (como es el caso de IE y Safari).

Respuestas a la pregunta(1)

Su respuesta a la pregunta