()
| 1858 | // be awkward, slow, and error-prone), but instead updates are |
| 1859 | // batched and then all combined and executed at once. |
| 1860 | function startOperation() { |
| 1861 | updateInput = userSelChange = textChanged = null; |
| 1862 | changes = []; selectionChanged = false; callbacks = []; |
| 1863 | } |
| 1864 | function endOperation() { |
| 1865 | var reScroll = false, updated; |
| 1866 | if (maxLengthChanged) computeMaxLength(); |