title: Manipulate html <input>'s value retaining undo capabilities
body: <p>If I have a simple <code>&lt;input type="text"&gt;</code> and never mess with its <code>value</code> property, I can undo (and redo) my actions at will [I mean, keyboard typing and clipboard cut and paste].</p>
  
  <p>But once some event sets its <code>value</code> the undo stack is gone. I understand that for an arbitrary event it would be very hard (and unnatural, from user perspective) to define how the undo stack should cope with changes introduced by direct attribution to <code>value</code>.</p>
  
  <p>But I'm thinking about edit events, like <code>&lt;input&gt;</code>'s own <code>input</code> and <code>paste</code> events (to give you some context, I'm planning to apply some field masking).</p>
  
  <p>Is it possible to change the object associated with the event (<code>InputEvent</code> and <code>ClipboardEvent</code>) instead of manipulating the <code>value</code> property, so the stack can be preserved? Or otherwise inform "the stack" programmatically how to "undo from here"?</p>