* Remove the overhead of serializing and then re-parsing client-side,
instead assign it directly as native object literal.
* Move code for array slicing to PHP.
Change-Id: Iedcc8d57d3bddd3fa32a78b4e7ecc25615d94277
The server always defines this message as `cite-tool-definition.json`
in CiteVisualEditorModule.php, including a transparent fallback that
defines it with the content of `visualeditor-cite-tool-definition.json`.
Change-Id: I27426ed1947c1665e5284e64ec1946b1abeff7d1
Rather than depending on a separate module with one line of generated
JS code, generate it as a prepended statement to the same module.
Should be a no-op.
Depends-On: I809951d34feb2dbd01b7ae0f4bd98dac7c3f6fe2
Change-Id: I5886bf9f82025048976b7750e8cb751681021fb4
In Ifb0ba3caf8d we removed this reference equality check and replaced
it with a deep object comparison, however due to the fact that
hashes for MWReferenceNodes were simplified in I8c26686d7b to
improve visual diffs, this resulted in a overly simplified comparison
that couldn't distinguish references with the same "name".
Instead do a deep object comparions of the standard node hash object.
Tests added in Ia0bbd40528 assert that this doesn't result in the
regression that caused T296044.
Bug: T296086
Change-Id: I7b37fb54e14bfe28a07f722a2c45fd4e4a2d44f2
In our first case we have a reference re-used before it
is defined, but that doesn't trigger the bug that caused
T296044.
Change-Id: Ia0bbd40528228275f0a978a0a459388a04ea2e79
The name/version/desc keys are not used and usually not set when the
repo package is marked "private", as the case for repos where npm is
only used for development purposes.
Change-Id: Idf796dfa5cc269109c7be397764850ee4ffe04e6
Previously we checked the elements were reference-equal
which is fragile and breaks when linear data freezing is
enabled in debug mode.
Change-Id: Ifb0ba3caf8d3e5a67c9694358cac12cc412fe723
We added this line in order to make the sidebar show/hide behavior
the same as the new VisualEditor template dialog, but it should have
only affected this one button. When additional actions are added,
such as Citoid's "change reference type" button, these should still
be available.
Bug: T293280
Change-Id: I6b2c716fff991781e36ba21b541ea2ff918cfeb3
Use @property to provide the types of undeclared variables to Phan and
PHPStorm, as in my NodeData patch. Declare $dp->tmp since it is
commonly used and does not affect the JSON serialized output since it is
always stripped.
I omitted the constructor, instead of following the suggestion in the
massageLoadedDataParsoid doc comment which proposed injesting a
JSON-like data structure in the constructor. I thought it would be more
efficient to have the initial property assignments inline in the calling
code. This means breaking up many object cast expressions into
individual assignments.
In IncludeOnly, the coalescing null operator was only handling the case
where $start->dataAttribs was unset, which seems unlikely. I made it so
that it checks whether $start->dataAttribs->tsr is unset.
I added strongly typed clone() methods, to preserve type information for
static analysis.
DataParsoid is the type of the data in both the DOM and in tokens. To
simplify the changes to the Token hierarchy, I removed the duplicate
definitions of the public properties $attribs and $dataAttribs.
Change-Id: I16172083e7e9bcb94601d1d6862d1d202a7e3660