mediawiki-extensions-Visual.../modules/ve/dm
Roan Kattouw 83e1888275 Don't compare annotations directly with ve.compare()
Annotations' attributes might contain DOM elements, which cause infinite
recursion in ve.compare(). Annotation classes can protect against this
by overriding getHashObject() to summarize DOM nodes, but that doesn't
help if that's not respected everywhere.

Instead, compare the hash objects, those are safe. This does not appear
to be a problem in practice, currently, because the nowiki annotation
is experimental, oo.compare() now short-circuits if a === b, and because
of optimizations in openAndCloseAnnotations() which lead to the relevant
compareToForSerialization() code path being taken very rarely.

Bug: 51948
Change-Id: If1bcc3eee4fd14d107db1935d89dcc5516643b53
2013-07-28 00:10:42 +00:00
..
annotations 'CodeScript' => 'Code' 2013-07-26 11:26:51 +01:00
lineardata Fix getAnnotationIndexesFromOffset for last offset in doc 2013-07-17 19:10:38 +00:00
metaitems The great directory split of 2013 2013-07-02 20:51:38 -07:00
nodes Revert "Add support for <blockquote> elements" 2013-07-09 21:35:47 +00:00
ve.dm.Annotation.js Don't compare annotations directly with ve.compare() 2013-07-28 00:10:42 +00:00
ve.dm.AnnotationFactory.js Convert AnnotationFactory and MetaItemFactory to NamedClassFactories 2013-04-09 12:05:05 -07:00
ve.dm.AnnotationSet.js doc: Clean up spacing that caused <pre> or broken <ul>/<ol> 2013-07-25 04:02:50 +02:00
ve.dm.BranchNode.js Store DM nodes in InternalList 2013-06-03 22:10:07 +01:00
ve.dm.Converter.js Quick optimisation to avoid containsComparableForSerialization 2013-07-27 00:03:11 +01:00
ve.dm.DataString.js Code style fixes 2013-05-06 12:36:52 +01:00
ve.dm.Document.js doc: Clean up spacing that caused <pre> or broken <ul>/<ol> 2013-07-25 04:02:50 +02:00
ve.dm.DocumentSlice.js Invoke getClonedElement() on each element on copy 2013-06-27 14:20:53 -07:00
ve.dm.DocumentSynchronizer.js doc: Clean up spacing that caused <pre> or broken <ul>/<ol> 2013-07-25 04:02:50 +02:00
ve.dm.IndexValueStore.js Preserve location of reference body within key 2013-06-10 02:54:26 +00:00
ve.dm.InternalList.js Some basic async code in the initialization 2013-07-01 13:02:10 -07:00
ve.dm.js Bump copyright notice year range to -2013 over -2012 2013-02-19 15:37:34 -08:00
ve.dm.LeafNode.js Store data in LinearData class with an index-value store for objects 2013-03-30 10:06:34 +00:00
ve.dm.LinearData.js Move common linear data methods into LinearData.static 2013-07-15 11:29:54 +01:00
ve.dm.MetaItem.js Fieldsets and default sort keys 2013-05-10 16:46:08 -07:00
ve.dm.MetaItemFactory.js Make .static.storeHtmlAttributes more versatile 2013-05-07 14:45:26 -07:00
ve.dm.MetaList.js doc: Clean up spacing that caused <pre> or broken <ul>/<ol> 2013-07-25 04:02:50 +02:00
ve.dm.Model.js doc: Clean up spacing that caused <pre> or broken <ul>/<ol> 2013-07-25 04:02:50 +02:00
ve.dm.ModelRegistry.js Handle meta-only transclusions as meta items 2013-07-24 14:27:24 +00:00
ve.dm.Node.js Move getHashObject() from dm.Node up into dm.Model 2013-07-16 19:04:53 -07:00
ve.dm.NodeFactory.js ve.ce.Document: Introduce getRelativeRange method 2013-06-05 13:10:38 +01:00
ve.dm.Surface.js Merge "doc: Clean up spacing that caused <pre> or broken <ul>/<ol>" 2013-07-25 22:36:41 +00:00
ve.dm.SurfaceFragment.js Compare annotations by name only when clearing/toggling 2013-07-16 00:05:11 +01:00
ve.dm.Transaction.js doc: Clean up spacing that caused <pre> or broken <ul>/<ol> 2013-07-25 04:02:50 +02:00
ve.dm.TransactionProcessor.js Actually use op.retainMetadata in structural replace mode 2013-07-12 15:57:26 -07:00