Subramanya Sastry has uploaded a new change for review.
https://gerrit.wikimedia.org/r/135084
Change subject: WTS: Code cleanup to improve readability.
......................................................................
WTS: Code cleanup to improve readability.
* Code clarity tweak: Update modification flag first
* Got rid of confusing trace output for current node (whose flag
hasn't been updated yet).
* Emit trace output for diff-marker nodes as well.
* This doesn't affect any parser test results.
But, doing this cleanup here minimizes diffs in the upcoming
dom-diff and selser improvement patches.
Change-Id: I9a4507bd672251a2f632d908929cc8dcc640971a
---
M lib/mediawiki.WikitextSerializer.js
1 file changed, 19 insertions(+), 20 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid
refs/changes/84/135084/1
diff --git a/lib/mediawiki.WikitextSerializer.js
b/lib/mediawiki.WikitextSerializer.js
index 6c28e5e..ac217d8 100644
--- a/lib/mediawiki.WikitextSerializer.js
+++ b/lib/mediawiki.WikitextSerializer.js
@@ -967,23 +967,25 @@
WSP._serializeNode = function( node, state, cb) {
var prev, next, nextNode;
+ // First things first -- update modification flag
+ state.prevNodeUnmodified = state.currNodeUnmodified;
+
// serialize this node
switch( node.nodeType ) {
case node.ELEMENT_NODE:
- // Ignore DiffMarker metas, but clear unmodified node
state
- if (DU.isMarkerMeta(node, "mw:DiffMarker")) {
- state.prevNodeUnmodified =
state.currNodeUnmodified;
- state.currNodeUnmodified = false;
- state.sep.lastSourceNode = node;
- return node;
- }
-
if (state.selserMode) {
this.trace("NODE:", node.nodeName,
- "; prev-flag: ",
state.prevNodeUnmodified,
- "; curr-flag: ",
state.currNodeUnmodified);
+ "; prev-unmodified: ",
state.prevNodeUnmodified,
+ "; SOL: ", state.onSOL);
} else {
this.trace("NODE:", node.nodeName, "; SOL: ",
state.onSOL);
+ }
+
+ // Ignore DiffMarker metas, but clear unmodified node
state
+ if (DU.isMarkerMeta(node, "mw:DiffMarker")) {
+ state.currNodeUnmodified = false;
+ state.sep.lastSourceNode = node;
+ return node.nextSibling;
}
var dp = DU.getDataParsoid( node );
@@ -1074,7 +1076,6 @@
}
if ( !handled ) {
- state.prevNodeUnmodified =
state.currNodeUnmodified;
state.currNodeUnmodified = false;
// console.warn("USED NEW");
if ( domHandler && domHandler.handle ) {
@@ -1107,12 +1108,11 @@
break;
case node.TEXT_NODE:
- state.prevNodeUnmodified = state.currNodeUnmodified;
- state.currNodeUnmodified = false;
-
this.trace("TEXT:",
- function() { return
JSON.stringify(node.nodeValue); },
- "; SOL:", state.onSOL);
+ function() { return
JSON.stringify(node.nodeValue); },
+ "; SOL:", state.onSOL);
+
+ state.currNodeUnmodified = false;
if (!this.handleSeparatorText(node, state)) {
// Text is not just whitespace
@@ -1134,13 +1134,12 @@
}
break;
case node.COMMENT_NODE:
- state.prevNodeUnmodified = state.currNodeUnmodified;
- state.currNodeUnmodified = false;
-
this.trace("CMT :",
- function() { return
JSON.stringify("<!--"+node.nodeValue+"-->"); },
+ function() { return
JSON.stringify(WTSUtils.commentWT(node.nodeValue)); },
"; SOL: ", state.onSOL);
+ state.currNodeUnmodified = false;
+
// delay the newline creation until after the comment
if (!this.handleSeparatorText(node, state)) {
cb(WTSUtils.commentWT(node.nodeValue), node);
--
To view, visit https://gerrit.wikimedia.org/r/135084
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9a4507bd672251a2f632d908929cc8dcc640971a
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Subramanya Sastry <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits