Switch core/style.js to strict mode.
Code style fixes.
Extracted bit flags from an awful condition.
Extracted complex conditions to their own functions.
Switch iterator.js to strict mode.
Documentation for iterator.
Extracted logic starting iterator from iterator#getNextParagraph.
Range#shrink should not cross an editable border.
Iterator should yield non-editable block and blocks inside its nested editables.
Nested editables should inherit configuration from parents.
Refactored ugly condition into readable function.
While iterating over DOM, skip entire non-editable or non-styleable elements, to avoid messing up their contents.
Iterate only over nested editables which are not nested inside another non-editable element.
Styles should not override non-editable elements.
Apply inline styles on nested editables.
Introduced dom.element#forEach.
Made iterator looking for editables using DFS rather than CSS selector + nesting depth check.
Optimized the nested editables lookup inside iterator - do this only once and cache everything.
Made styles system looking for editables using DFS rather than CSS selector + nesting depth check.
Minor fix - both consts have the same value.