()
| 2058 | // be awkward, slow, and error-prone), but instead updates are |
| 2059 | // batched and then all combined and executed at once. |
| 2060 | function startOperation() { |
| 2061 | updateInput = userSelChange = textChanged = null; |
| 2062 | changes = []; selectionChanged = false; callbacks = []; |
| 2063 | } |
| 2064 | function endOperation() { |
| 2065 | var reScroll = false, updated; |
| 2066 | if (maxLengthChanged) computeMaxLength(); |