C. Scott Ananian has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/398099 )

Change subject: Use a Set for trace/debug/dump flags.
......................................................................

Use a Set for trace/debug/dump flags.

Change-Id: I6044c97e67714bb9728dcdd09df8227b3dcfe822
---
M bin/parserTests.js
M lib/html2wt/SelectiveSerializer.js
M lib/html2wt/WikitextSerializer.js
M lib/logger/ParsoidLogger.js
M lib/utils/Util.js
M lib/wt2html/DOMPostProcessor.js
M lib/wt2html/TokenTransformManager.js
M lib/wt2html/pp/processors/computeDSR.js
M lib/wt2html/pp/processors/wrapSections.js
M lib/wt2html/pp/processors/wrapTemplates.js
M lib/wt2html/tokenizer.js
M lib/wt2html/tt/TemplateHandler.js
12 files changed, 32 insertions(+), 32 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid 
refs/changes/99/398099/1

diff --git a/bin/parserTests.js b/bin/parserTests.js
index 1a4bf04..43a9d19 100755
--- a/bin/parserTests.js
+++ b/bin/parserTests.js
@@ -367,7 +367,7 @@
        }
 
        if (this.env.conf.parsoid.dumpFlags &&
-               this.env.conf.parsoid.dumpFlags.indexOf("dom:post-changes") !== 
-1) {
+               this.env.conf.parsoid.dumpFlags.has("dom:post-changes")) {
                DU.dumpDOM(body, 'Original DOM');
        }
 
@@ -382,7 +382,7 @@
        }
 
        if (this.env.conf.parsoid.dumpFlags &&
-               this.env.conf.parsoid.dumpFlags.indexOf("dom:post-changes") !== 
-1) {
+               this.env.conf.parsoid.dumpFlags.has("dom:post-changes")) {
                console.warn("Change tree : " + JSON.stringify(item.changes));
                DU.dumpDOM(body, 'Edited DOM');
        }
diff --git a/lib/html2wt/SelectiveSerializer.js 
b/lib/html2wt/SelectiveSerializer.js
index 66f286d..0844c8a 100644
--- a/lib/html2wt/SelectiveSerializer.js
+++ b/lib/html2wt/SelectiveSerializer.js
@@ -30,7 +30,7 @@
 
        // Debug options
        this.trace = this.env.conf.parsoid.traceFlags &&
-                       (this.env.conf.parsoid.traceFlags.indexOf("selser") !== 
-1);
+                       this.env.conf.parsoid.traceFlags.has("selser");
 
        // Performance Timing option
        this.metrics = this.env.conf.parsoid.metrics;
@@ -97,7 +97,7 @@
                        p = Promise.resolve(this.env.page.src);
                } else {
                        if (this.trace || (this.env.conf.parsoid.dumpFlags &&
-                               
this.env.conf.parsoid.dumpFlags.indexOf('dom:post-dom-diff') !== -1)) {
+                               
this.env.conf.parsoid.dumpFlags.has('dom:post-dom-diff'))) {
                                DU.dumpDOM(body, 'DOM after running DOMDiff', {
                                        storeDiffMark: true,
                                        env: this.env,
diff --git a/lib/html2wt/WikitextSerializer.js 
b/lib/html2wt/WikitextSerializer.js
index bdaba5e..0e8ac71 100644
--- a/lib/html2wt/WikitextSerializer.js
+++ b/lib/html2wt/WikitextSerializer.js
@@ -1429,7 +1429,7 @@
        (new Normalizer(state)).normalizeDOM(body);
 
        var psd = this.env.conf.parsoid;
-       if (psd.dumpFlags && (psd.dumpFlags.indexOf("dom:post-normal") !== -1)) 
{
+       if (psd.dumpFlags && psd.dumpFlags.has("dom:post-normal")) {
                DU.dumpDOM(body, 'DOM: post-normal');
        }
 
diff --git a/lib/logger/ParsoidLogger.js b/lib/logger/ParsoidLogger.js
index 63b2db4..d44690d 100644
--- a/lib/logger/ParsoidLogger.js
+++ b/lib/logger/ParsoidLogger.js
@@ -90,13 +90,9 @@
        // TRACE / DEBUG: Make trace / debug regexp with appropriate postfixes,
        // depending on the command-line options passed in.
        function buildTraceOrDebugFlag(parsoidFlags, logType) {
-               if (Array.isArray(parsoidFlags)) {
-                       var escapedFlags = parsoidFlags.map(Util.escapeRegExp);
-                       var combinedFlag = logType + "\/(" + 
escapedFlags.join("|") + ")(\\/|$)";
-                       return new RegExp(combinedFlag);
-               } else {
-                       return null;
-               }
+               var escapedFlags = 
Array.from(parsoidFlags).map(Util.escapeRegExp);
+               var combinedFlag = logType + "\/(" + escapedFlags.join("|") + 
")(\\/|$)";
+               return new RegExp(combinedFlag);
        }
 
        // Register separate backend for tracing / debugging events.
diff --git a/lib/utils/Util.js b/lib/utils/Util.js
index f8cbc7e..0ca4085 100644
--- a/lib/utils/Util.js
+++ b/lib/utils/Util.js
@@ -79,8 +79,12 @@
                                console.warn("Warning: Generic tracing is no 
longer supported. Ignoring --trace flag. Please provide handler-specific 
tracing flags, e.g. '--trace pre,html5', to turn it on.");
                        } else {
                                // Add any new trace flags to the list of 
existing trace flags (if
-                               // any were inherited from debug); otherwise, 
create a new list.
-                               parsoidOptions.traceFlags = 
(parsoidOptions.traceFlags || []).concat(this.splitFlags(cliOpts.trace));
+                               // any were inherited from debug); otherwise, 
create a new set.
+                               parsoidOptions.traceFlags =
+                                       new Set(parsoidOptions.traceFlags || 
[]);
+                               
this.splitFlags(cliOpts.trace).forEach(function(opt) {
+                                       parsoidOptions.traceFlags.add(opt);
+                               });
                        }
                }
 
@@ -106,9 +110,9 @@
         * @return {Array}
         */
        splitFlags: function(origFlag) {
-               var objFlags = origFlag.split(",");
-               if (objFlags.indexOf("selser") !== -1 && 
objFlags.indexOf("wts") === -1) {
-                       objFlags.push("wts");
+               var objFlags = new Set(origFlag.split(","));
+               if (objFlags.has("selser") && !objFlags.has("wts")) {
+                       objFlags.add("wts");
                }
                return objFlags;
        },
diff --git a/lib/wt2html/DOMPostProcessor.js b/lib/wt2html/DOMPostProcessor.js
index e2d3840..113073f 100644
--- a/lib/wt2html/DOMPostProcessor.js
+++ b/lib/wt2html/DOMPostProcessor.js
@@ -470,11 +470,11 @@
        var env = this.env;
 
        var psd = env.conf.parsoid;
-       if (psd.dumpFlags && (psd.dumpFlags.indexOf("dom:post-builder") !== 
-1)) {
+       if (psd.dumpFlags && psd.dumpFlags.has("dom:post-builder")) {
                DU.dumpDOM(document.body, 'DOM: after tree builder');
        }
 
-       var tracePP = psd.traceFlags && (psd.traceFlags.indexOf("time/dompp") 
!== -1 || psd.traceFlags.indexOf("time") !== -1);
+       var tracePP = psd.traceFlags && (psd.traceFlags.has("time/dompp") || 
psd.traceFlags.has("time"));
 
        // Holder for data-* attributes
        if (this.atTopLevel && env.pageBundle) {
@@ -530,10 +530,10 @@
        // For the top-level document, we generate <head> and add it.
        if (this.atTopLevel) {
                DOMPostProcessor.addMetaData(env, document);
-               if (psd.traceFlags && psd.traceFlags.indexOf('time') !== -1) {
+               if (psd.traceFlags && psd.traceFlags.has('time')) {
                        env.printTimeProfile();
                }
-               if (psd.dumpFlags && psd.dumpFlags.indexOf('wt2html:limits') 
!== -1) {
+               if (psd.dumpFlags && psd.dumpFlags.has('wt2html:limits')) {
                        env.printParserResourceUsage({ 'HTML Size': 
document.outerHTML.length });
                }
                if (env.conf.parsoid.linting) {
diff --git a/lib/wt2html/TokenTransformManager.js 
b/lib/wt2html/TokenTransformManager.js
index 7c75438..eb4e899 100644
--- a/lib/wt2html/TokenTransformManager.js
+++ b/lib/wt2html/TokenTransformManager.js
@@ -154,7 +154,7 @@
  */
 TokenTransformManager.prototype.addTransform = function(transformation, 
debugName, rank, type, name) {
        var traceFlags = this.env.conf.parsoid.traceFlags;
-       var traceTime = traceFlags && (traceFlags.indexOf("time") !== -1);
+       var traceTime = traceFlags && traceFlags.has("time");
        if (traceTime) {
                transformation = this.timeTracer(transformation, debugName);
        }
@@ -551,7 +551,7 @@
 
        // Time tracing related state
        var traceFlags = this.env.conf.parsoid.traceFlags;
-       var traceTime = traceFlags && traceFlags.indexOf('time') !== -1;
+       var traceTime = traceFlags && traceFlags.has('time');
        var startTime = traceTime && Date.now();
        var tokenTimes = 0;
 
@@ -901,7 +901,7 @@
        // Time tracing related state
        var tokenTimes = 0;
        var traceFlags = this.env.conf.parsoid.traceFlags;
-       var traceTime = traceFlags && traceFlags.indexOf('time') !== -1;
+       var traceTime = traceFlags && traceFlags.has('time');
        var startTime = traceTime && Date.now();
 
        // Stack of token arrays to process
diff --git a/lib/wt2html/pp/processors/computeDSR.js 
b/lib/wt2html/pp/processors/computeDSR.js
index 716909f..98d284e 100644
--- a/lib/wt2html/pp/processors/computeDSR.js
+++ b/lib/wt2html/pp/processors/computeDSR.js
@@ -651,7 +651,7 @@
        var endOffset = options.sourceOffsets ? options.sourceOffsets[1] : 
env.page.src.length;
        var psd = env.conf.parsoid;
 
-       if (psd.dumpFlags && (psd.dumpFlags.indexOf("dom:pre-dsr") !== -1)) {
+       if (psd.dumpFlags && psd.dumpFlags.has("dom:pre-dsr")) {
                DU.dumpDOM(rootNode, 'DOM: pre-DSR');
        }
 
@@ -666,7 +666,7 @@
 
        env.log("trace/dsr", "------- done tracing computation -------");
 
-       if (psd.dumpFlags && (psd.dumpFlags.indexOf("dom:post-dsr") !== -1)) {
+       if (psd.dumpFlags && psd.dumpFlags.has("dom:post-dsr")) {
                DU.dumpDOM(rootNode, 'DOM: post-DSR');
        }
 }
diff --git a/lib/wt2html/pp/processors/wrapSections.js 
b/lib/wt2html/pp/processors/wrapSections.js
index f453d23..3252072 100644
--- a/lib/wt2html/pp/processors/wrapSections.js
+++ b/lib/wt2html/pp/processors/wrapSections.js
@@ -295,7 +295,7 @@
                return;
        }
 
-       if (env.conf.parsoid.dumpFlags && 
(env.conf.parsoid.dumpFlags.indexOf("dom:pre-sections") !== -1)) {
+       if (env.conf.parsoid.dumpFlags && 
env.conf.parsoid.dumpFlags.has("dom:pre-sections")) {
                DU.dumpDOM(rootNode, 'DOM: before section wrapping');
        }
 
diff --git a/lib/wt2html/pp/processors/wrapTemplates.js 
b/lib/wt2html/pp/processors/wrapTemplates.js
index 6a45123..13c29cf 100644
--- a/lib/wt2html/pp/processors/wrapTemplates.js
+++ b/lib/wt2html/pp/processors/wrapTemplates.js
@@ -1024,13 +1024,13 @@
 function wrapTemplates(body, env, options) {
        var psd = env.conf.parsoid;
 
-       if (psd.dumpFlags && (psd.dumpFlags.indexOf("dom:pre-encap") !== -1)) {
+       if (psd.dumpFlags && psd.dumpFlags.has("dom:pre-encap")) {
                DU.dumpDOM(body, 'DOM: pre-encapsulation');
        }
 
        wrapTemplatesInTree(body.ownerDocument, env, body);
 
-       if (psd.dumpFlags && (psd.dumpFlags.indexOf("dom:post-encap") !== -1)) {
+       if (psd.dumpFlags && psd.dumpFlags.has("dom:post-encap")) {
                DU.dumpDOM(body, 'DOM: post-encapsulation');
        }
 }
diff --git a/lib/wt2html/tokenizer.js b/lib/wt2html/tokenizer.js
index 6858d3c..4318ed9 100644
--- a/lib/wt2html/tokenizer.js
+++ b/lib/wt2html/tokenizer.js
@@ -52,7 +52,7 @@
        this.env = env;
        // env can be null during code linting
        var traceFlags = env ? env.conf.parsoid.traceFlags : null;
-       this.traceTime = traceFlags && traceFlags.indexOf('time') !== -1;
+       this.traceTime = traceFlags && traceFlags.has('time');
        this.options = options || {};
        this.offsets = {};
 }
diff --git a/lib/wt2html/tt/TemplateHandler.js 
b/lib/wt2html/tt/TemplateHandler.js
index 926aceb..bd19d9b 100644
--- a/lib/wt2html/tt/TemplateHandler.js
+++ b/lib/wt2html/tt/TemplateHandler.js
@@ -788,8 +788,8 @@
                //  this.manager.env.errCB(err);
        }
 
-       var pConf = this.manager.env.conf.parsoid;
-       if (pConf.dumpFlags && pConf.dumpFlags.indexOf("tplsrc") !== -1) {
+       var psd = this.manager.env.conf.parsoid;
+       if (psd.dumpFlags && psd.dumpFlags.has("tplsrc")) {
                console.log("=================================");
                console.log(tplArgs.name);
                console.log("---------------------------------");

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6044c97e67714bb9728dcdd09df8227b3dcfe822
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: C. Scott Ananian <canan...@wikimedia.org>

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

Reply via email to