Speed up JSLint checks by only checking files that have changed.
This speedup makes it feasible to run updateJS.js on every build invocation. This ensures that new javascript files are always picked up.
Add comments that explain the caching method.
More verbose output for circular dependencies and small type fixes.
Ensure the event trap has a minimum height

0px height elements are not able to receive an active selection in most
browsers. Setting a minimum height ensures the event trap is still able
to be selected when in an empty paragraph.
Add paragraph alignment to the benchmark

This is disabled by default because it is very very slow (8s @ 10pages)
Batch up calls that refresh the canvas CSS, size or annotations

These calls are UI render-related operations, and don't need to be done
immediately after every operation. Batching these up and doing them all
once after all ops are processed greatly improves the performance of
paragraph alignment updates with multiple paragraphs selected.
Re-use new styles when applying direct paragraph styling

We only create a new paragraph style once per unique paragraph style
name. This vastly reduces the number of new styles created when
formatting a number of paragraphs that all share the same existing
paragraph style.
Save and restore focus once per batch of operations

Focus saving and restoring is expensive on most browsers, so major gains
in performance are realised by not doing this for every operation. A new
pair of signals implemented by operation routers denotes when a batch of
operations is about to processed, and when the router has completed this
batch.

Note, there is no implied promises about how many operations are executed
within a batch. This is left as a choice to the router implementations.
Remove circular dependency between OdtDocument and OdtCursor.
OdtCursor does not depend on OdtDocument any more. In fact, it is not specific
to ODF any more so at some point it could be renamed.
Make ShadowCursor independent from OdtDocument.
Update EditorSession to the new document API.
Rename ops.Document.getCursors to ops.Document.getMemberIds.
Make gui.Caret, gui.UndoManager and ops.Operation 100% typed.
Make gui.TrivialUndoManager and gui.UndoStateRules 100% typed.
Adapt PullboxOperationRouter to batch processing signals

Missing from 26a9252edbe9295fc1c2f027096d6d2f22ea6f52
Automatically update karma.conf.js.
When javascript files are changed, removed or added, the build system will
update karma.conf.js.
Reduce visible caret flicker when caret transitions from large to small

There are significant performance costs with calculating the caret
size, so still want to avoid computing this until all ops have been
performed. However, if the caret size is wildly incorrect for it's new
position after an update (e.g., caret moving from beside an image to
beside text), the caret will be user visible before the render occurs,
and results in a large caret momentarily flashing before shrinking to
an appropriate size. To prevent this flicker, we hide the caret until
it is redrawn, as an absent caret is far less noticeable than an
oversized one.
Remove unmaintained adapter to nowjs-based server
Create direct linking between matching annotation and annotation-end elements
Fix incorrect (by pattern) check of compareDocumentPosition result