jenkins-bot has submitted this change and it was merged.

Change subject: [jshint] Enable `freeze` option
......................................................................


[jshint] Enable `freeze` option

Change-Id: I733a9e5697d3db49ac1d4607049918ca2787342b
---
M .jshintrc
M lib/html2wt/escapeWikitext.js
M lib/utils/Util.js
M lib/wt2html/parser.defines.js
M lib/wt2html/tt/AttributeExpander.js
M lib/wt2html/tt/ParagraphWrapper.js
M lib/wt2html/tt/PreHandler.js
M lib/wt2html/tt/Sanitizer.js
M lib/wt2html/tt/TokenStreamPatcher.js
9 files changed, 36 insertions(+), 47 deletions(-)

Approvals:
  Subramanya Sastry: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/.jshintrc b/.jshintrc
index 1f1718a..b73be56 100644
--- a/.jshintrc
+++ b/.jshintrc
@@ -7,6 +7,7 @@
        "bitwise": true,
        "curly": true,
        "eqeqeq": true,
+       "freeze": true,
        "latedef": true,
        "laxbreak": true,
        "loopfunc": true,
diff --git a/lib/html2wt/escapeWikitext.js b/lib/html2wt/escapeWikitext.js
index ed1381e..9c30413 100644
--- a/lib/html2wt/escapeWikitext.js
+++ b/lib/html2wt/escapeWikitext.js
@@ -3,6 +3,7 @@
 
 var wtConsts = require('../config/WikitextConstants.js');
 var DU = require('../utils/DOMUtils.js').DOMUtils;
+var Util = require('../utils/Util.js').Util;
 var PegTokenizer = require('../wt2html/tokenizer.js').PegTokenizer;
 var pd = require('../wt2html/parser.defines.js');
 var SanitizerConstants = 
require('../wt2html/tt/Sanitizer.js').SanitizerConstants;
@@ -246,7 +247,7 @@
                var tc = t.constructor;
 
                // Ignore non-whitelisted html tags
-               if (t.isHTMLTag()) {
+               if (Util.isHTMLTag(t)) {
                        if (linksOnly) {
                                continue;
                        }
@@ -340,7 +341,7 @@
                                continue;
                        }
                        // Ignore table tokens outside of tables
-                       if (t.name in {td: 1, tr: 1, th: 1} && !t.isHTMLTag() 
&& state.wikiTableNesting === 0) {
+                       if (t.name in {td: 1, tr: 1, th: 1} && 
!Util.isHTMLTag(t) && state.wikiTableNesting === 0) {
                                continue;
                        }
 
diff --git a/lib/utils/Util.js b/lib/utils/Util.js
index 412d5a8..f637b21 100644
--- a/lib/utils/Util.js
+++ b/lib/utils/Util.js
@@ -1292,6 +1292,27 @@
                }
                return md5.digest('hex');
        },
+
+       /**
+        * Determine whether the current token was an HTML tag in wikitext.
+        *
+        * @return {boolean}
+        */
+       isHTMLTag: function(token) {
+               switch (token.constructor) {
+               case String:
+               case pd.NlTk:
+               case pd.CommentTk:
+               case pd.EOFTk:
+                       return false;
+               case pd.TagTk:
+               case pd.EndTagTk:
+               case pd.SelfclosingTagTk:
+                       return token.dataAttribs.stx === 'html';
+               default:
+                       console.assert(false, 'Unhandled token type');
+               }
+       },
 };
 
 // FIXME: There is also a DOMUtils.getJSONAttribute. Consolidate
diff --git a/lib/wt2html/parser.defines.js b/lib/wt2html/parser.defines.js
index 003f495..bc640b2 100644
--- a/lib/wt2html/parser.defines.js
+++ b/lib/wt2html/parser.defines.js
@@ -9,10 +9,6 @@
        }
 }; // initialized later to avoid circular dependency
 
-// To support isHTMLTag querying
-String.prototype.isHTMLTag = function() {
-       return false;
-};
 
 /**
  * @class
@@ -229,17 +225,6 @@
        /**
         * @member Token
         *
-        * Determine whether the current token was an HTML tag in wikitext.
-        *
-        * @return {boolean}
-        */
-       isHTMLTag: function() {
-               return this.dataAttribs.stx === 'html';
-       },
-
-       /**
-        * @member Token
-        *
         * Get the wikitext source of a token.
         *
         * @param {MWParserEnvironment} env
@@ -317,7 +302,7 @@
  */
 TagTk.prototype.toString = function(compact) {
        requireUtil();
-       if (this.isHTMLTag()) {
+       if (Util.isHTMLTag(this)) {
                if (compact) {
                        return "<HTML:" + this.name + ">";
                } else {
@@ -371,7 +356,7 @@
  * @return {string}
  */
 EndTagTk.prototype.toString = function() {
-       if (this.isHTMLTag()) {
+       if (Util.isHTMLTag(this)) {
                return "</HTML:" + this.name + ">";
        } else {
                return "</" + this.name + ">";
@@ -557,7 +542,7 @@
  * @return {string}
  */
 SelfclosingTagTk.prototype.toString = function(compact, indent) {
-       if (this.isHTMLTag()) {
+       if (Util.isHTMLTag(this)) {
                return "<HTML:" + this.name + " />";
        } else {
                var f = SelfclosingTagTk.prototype.tagToStringFns[this.name];
@@ -607,17 +592,6 @@
        toString: function() {
                return "\\n";
        },
-
-       /**
-        * @method
-        *
-        * Tell the caller that this isn't an HTML tag.
-        *
-        * @return {boolean} Always false
-        */
-       isHTMLTag: function() {
-               return false;
-       },
 };
 
 /**
@@ -645,10 +619,6 @@
        toString: function() {
                return "<!--" + this.value + "-->";
        },
-
-       isHTMLTag: function() {
-               return false;
-       },
 };
 
 /* -------------------- EOFTk -------------------- */
@@ -662,10 +632,6 @@
 
        toString: function() {
                return "";
-       },
-
-       isHTMLTag: function() {
-               return false;
        },
 };
 
diff --git a/lib/wt2html/tt/AttributeExpander.js 
b/lib/wt2html/tt/AttributeExpander.js
index a458ae2..08b6e6c 100644
--- a/lib/wt2html/tt/AttributeExpander.js
+++ b/lib/wt2html/tt/AttributeExpander.js
@@ -237,7 +237,7 @@
        var newAttrs = null;
        var nlTkPos = -1;
        var i, l;
-       var nlTkOkay = !(!token.isHTMLTag() && Util.isTableTag(token));
+       var nlTkOkay = !(!Util.isHTMLTag(token) && Util.isTableTag(token));
 
        // Identify attributes that were generated in full or in part using 
templates
        for (i = 0, l = oldAttrs.length; i < l; i++) {
diff --git a/lib/wt2html/tt/ParagraphWrapper.js 
b/lib/wt2html/tt/ParagraphWrapper.js
index 115be0b..b62b1ba 100644
--- a/lib/wt2html/tt/ParagraphWrapper.js
+++ b/lib/wt2html/tt/ParagraphWrapper.js
@@ -91,9 +91,9 @@
        var newRes = null;
        for (var i = 0, n = res.length; i < n; i++) {
                var t = res[i];
-               if (i + 2 < n && t.constructor === TagTk && t.name === 'p' && 
!t.isHTMLTag() &&
+               if (i + 2 < n && t.constructor === TagTk && t.name === 'p' && 
!Util.isHTMLTag(t) &&
                        Consts.HTML.FormattingTags.has((res[i + 1].name || 
'').toUpperCase()) &&
-                       res[i + 2].constructor === EndTagTk && res[i + 2].name 
=== 'p' && !res[i + 2].isHTMLTag()) {
+                       res[i + 2].constructor === EndTagTk && res[i + 2].name 
=== 'p' && !Util.isHTMLTag(res[i + 2])) {
                        // Init newRes
                        if (newRes === null) {
                                newRes = i === 0 ? [] : res.slice(0, i);
@@ -509,7 +509,7 @@
                }
 
                // Deal with HTML P-tokens.
-               if (token.name === 'p' && token.isHTMLTag()) {
+               if (token.name === 'p' && Util.isHTMLTag(token)) {
                        if (tc === TagTk) {
                                // Close unclosed HTML P-tag.
                                if (this.hasOpenHTMLPTag) {
diff --git a/lib/wt2html/tt/PreHandler.js b/lib/wt2html/tt/PreHandler.js
index f67bc42..b781a0f 100644
--- a/lib/wt2html/tt/PreHandler.js
+++ b/lib/wt2html/tt/PreHandler.js
@@ -382,7 +382,7 @@
                                if (Util.isSolTransparent(env, token)) { // 
continue watching
                                        this.solTransparentTokens.push(token);
                                } else if (Util.isTableTag(token) ||
-                                       (token.isHTMLTag() && 
Util.isBlockTag(token.name))) {
+                                       (Util.isHTMLTag(token) && 
Util.isBlockTag(token.name))) {
                                        ret = this.getResultAndReset(token);
                                        this.moveToIgnoreState();
                                } else {
diff --git a/lib/wt2html/tt/Sanitizer.js b/lib/wt2html/tt/Sanitizer.js
index 2a658f9..65f20a2 100644
--- a/lib/wt2html/tt/Sanitizer.js
+++ b/lib/wt2html/tt/Sanitizer.js
@@ -684,7 +684,7 @@
        var attribs = token.attribs;
        var noEndTagSet = this.constants.noEndTagSet;
 
-       if (token.isHTMLTag && token.isHTMLTag() &&
+       if (Util.isHTMLTag(token) &&
                
(!WikitextConstants.Sanitizer.TagWhiteList.has(token.name.toUpperCase()) ||
                        (token.constructor === EndTagTk && 
noEndTagSet.has(token.name)))
        ) { // unknown tag -- convert to plain text
diff --git a/lib/wt2html/tt/TokenStreamPatcher.js 
b/lib/wt2html/tt/TokenStreamPatcher.js
index 461b671..4228777 100644
--- a/lib/wt2html/tt/TokenStreamPatcher.js
+++ b/lib/wt2html/tt/TokenStreamPatcher.js
@@ -229,7 +229,7 @@
                case TagTk:
                        if (token.getAttribute("typeof") === "mw:Nowiki") {
                                this.inNowiki = true;
-                       } else if (this.atTopLevel && !token.isHTMLTag()) {
+                       } else if (this.atTopLevel && !Util.isHTMLTag(token)) {
                                if (token.name === 'table') {
                                        this.wikiTableNesting++;
                                } else if (this.wikiTableNesting === 0 &&
@@ -243,7 +243,7 @@
                case EndTagTk:
                        if (token.getAttribute("typeof") === "mw:Nowiki") {
                                this.inNowiki = false;
-                       } else if (this.atTopLevel && !token.isHTMLTag() && 
token.name === 'table') {
+                       } else if (this.atTopLevel && !Util.isHTMLTag(token) && 
token.name === 'table') {
                                if (this.wikiTableNesting > 0) {
                                        this.wikiTableNesting--;
                                } else {

-- 
To view, visit https://gerrit.wikimedia.org/r/255329
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I733a9e5697d3db49ac1d4607049918ca2787342b
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Arlolra <abrea...@wikimedia.org>
Gerrit-Reviewer: Cscott <canan...@wikimedia.org>
Gerrit-Reviewer: Subramanya Sastry <ssas...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to