Steps to reproduce:
- In VisualEditor standalone, edit <p>abc<!--de--></p>
- Select from between b and c to the end of the paragraph (so range 3-6)
- Press Delete
Expected behaviour:
c<!--de--> is deleted
Actual behaviour:
An Error is thrown with the following stacktrace:
ve.dm.TreeModifier.js:534 Uncaught Error: Remover and inserter unexpectedly diverged
at VeDmTreeModifier.ve.dm.TreeModifier.processRetain (ve.dm.TreeModifier.js:534)
at VeDmTreeModifier.ve.dm.TreeModifier.processLinearOperation (ve.dm.TreeModifier.js:407)
at VeDmTreeModifier.ve.dm.TreeModifier.calculateTreeOperations (ve.dm.TreeModifier.js:390)
at VeDmTreeModifier.ve.dm.TreeModifier.process (ve.dm.TreeModifier.js:355)
at VeDmTransactionProcessor.ve.dm.TransactionProcessor.process (ve.dm.TransactionProcessor.js:111)
at VeDmDocument.ve.dm.Document.commit (ve.dm.Document.js:341)
at VeDmSurface.ve.dm.Surface.changeInternal (ve.dm.Surface.js:950)
at VeDmSurface.ve.dm.Surface.change (ve.dm.Surface.js:918)
at VeDmSurfaceFragment.ve.dm.SurfaceFragment.change (ve.dm.SurfaceFragment.js:126)
at VeDmSurfaceFragment.ve.dm.SurfaceFragment.delete (ve.dm.SurfaceFragment.js:965)This is because if the ve.dm.TreeCursor is at the end of a text node and an ignored node follows, #crossIgnoredNodes should step out of the text node and cross the ignored node, but in fact it does not.