Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
"use strict";
|
2014-05-29 23:46:23 +09:00
|
|
|
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const fs = require("fs");
|
|
|
|
const ttest = require("ttest");
|
2014-05-29 23:46:23 +09:00
|
|
|
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
|
2014-05-29 23:46:23 +09:00
|
|
|
|
|
|
|
function parseOptions() {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const yargs = require("yargs")
|
Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
.usage(
|
|
|
|
"Compare the results of two stats files.\n" +
|
|
|
|
"Usage:\n $0 <BASELINE> <CURRENT> [options]"
|
|
|
|
)
|
2014-05-29 23:46:23 +09:00
|
|
|
.demand(2)
|
Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
.string(["groupBy"])
|
|
|
|
.describe(
|
|
|
|
"groupBy",
|
|
|
|
"How statistics should grouped. Valid options: " +
|
|
|
|
VALID_GROUP_BYS.join(" ")
|
|
|
|
)
|
|
|
|
.default("groupBy", "browser,stat");
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const result = yargs.argv;
|
2014-05-29 23:46:23 +09:00
|
|
|
result.baseline = result._[0];
|
|
|
|
result.current = result._[1];
|
|
|
|
if (result.groupBy) {
|
|
|
|
result.groupBy = result.groupBy.split(/[;, ]+/);
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
function group(stats, groupBy) {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const vals = [];
|
|
|
|
for (let i = 0; i < stats.length; i++) {
|
|
|
|
const curStat = stats[i];
|
|
|
|
const keyArr = [];
|
|
|
|
for (let j = 0; j < groupBy.length; j++) {
|
2020-03-25 17:42:50 +09:00
|
|
|
keyArr.push(curStat[groupBy[j]]);
|
2014-05-29 23:46:23 +09:00
|
|
|
}
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const key = keyArr.join(",");
|
2014-05-29 23:46:23 +09:00
|
|
|
if (vals[key] === undefined) {
|
|
|
|
vals[key] = [];
|
|
|
|
}
|
2020-04-17 19:06:27 +09:00
|
|
|
vals[key].push(curStat.time);
|
2014-05-29 23:46:23 +09:00
|
|
|
}
|
|
|
|
return vals;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Flatten the stats so that there's one row per stats entry.
|
|
|
|
* Also, if results are not grouped by 'stat', keep only 'Overall' results.
|
|
|
|
*/
|
|
|
|
function flatten(stats) {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
let rows = [];
|
2020-04-14 19:28:14 +09:00
|
|
|
stats.forEach(function (curStat) {
|
2020-04-17 19:06:27 +09:00
|
|
|
curStat.stats.forEach(function (s) {
|
2014-05-29 23:46:23 +09:00
|
|
|
rows.push({
|
2020-04-17 19:06:27 +09:00
|
|
|
browser: curStat.browser,
|
|
|
|
page: curStat.page,
|
|
|
|
pdf: curStat.pdf,
|
|
|
|
round: curStat.round,
|
|
|
|
stat: s.name,
|
|
|
|
time: s.end - s.start,
|
2014-05-29 23:46:23 +09:00
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
// Use only overall results if not grouped by 'stat'
|
Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
if (!options.groupBy.includes("stat")) {
|
2020-04-14 19:28:14 +09:00
|
|
|
rows = rows.filter(function (s) {
|
Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
return s.stat === "Overall";
|
2017-02-03 20:58:08 +09:00
|
|
|
});
|
2014-05-29 23:46:23 +09:00
|
|
|
}
|
|
|
|
return rows;
|
|
|
|
}
|
|
|
|
|
|
|
|
function pad(s, length, dir /* default: 'right' */) {
|
Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
s = "" + s;
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const spaces = new Array(Math.max(0, length - s.length + 1)).join(" ");
|
Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
return dir === "left" ? spaces + s : s + spaces;
|
2014-05-29 23:46:23 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
function mean(array) {
|
|
|
|
function add(a, b) {
|
|
|
|
return a + b;
|
|
|
|
}
|
|
|
|
return array.reduce(add, 0) / array.length;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Comparator for row key sorting. */
|
|
|
|
function compareRow(a, b) {
|
Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
a = a.split(",");
|
|
|
|
b = b.split(",");
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
for (let i = 0; i < Math.min(a.length, b.length); i++) {
|
|
|
|
const intA = parseInt(a[i], 10);
|
|
|
|
const intB = parseInt(b[i], 10);
|
|
|
|
const ai = isNaN(intA) ? a[i] : intA;
|
|
|
|
const bi = isNaN(intB) ? b[i] : intB;
|
2014-05-29 23:46:23 +09:00
|
|
|
if (ai < bi) {
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
if (ai > bi) {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Dump various stats in a table to compare the baseline and current results.
|
|
|
|
* T-test Refresher:
|
|
|
|
* If I understand t-test correctly, p is the probability that we'll observe
|
|
|
|
* another test that is as extreme as the current result assuming the null
|
|
|
|
* hypothesis is true. P is NOT the probability of the null hypothesis. The null
|
|
|
|
* hypothesis in this case is that the baseline and current results will be the
|
|
|
|
* same. It is generally accepted that you can reject the null hypothesis if the
|
|
|
|
* p-value is less than 0.05. So if p < 0.05 we can reject the results are the
|
|
|
|
* same which doesn't necessarily mean the results are faster/slower but it can
|
|
|
|
* be implied.
|
|
|
|
*/
|
|
|
|
function stat(baseline, current) {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const baselineGroup = group(baseline, options.groupBy);
|
|
|
|
const currentGroup = group(current, options.groupBy);
|
2014-05-29 23:46:23 +09:00
|
|
|
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const keys = Object.keys(baselineGroup);
|
2014-05-29 23:46:23 +09:00
|
|
|
keys.sort(compareRow);
|
|
|
|
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const labels = options.groupBy.slice(0);
|
Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
labels.push("Count", "Baseline(ms)", "Current(ms)", "+/-", "% ");
|
2014-05-29 23:46:23 +09:00
|
|
|
if (ttest) {
|
Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
labels.push("Result(P<.05)");
|
2014-05-29 23:46:23 +09:00
|
|
|
}
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const rows = [];
|
2014-05-29 23:46:23 +09:00
|
|
|
// collect rows and measure column widths
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const width = labels.map(function (s) {
|
2017-02-03 20:58:08 +09:00
|
|
|
return s.length;
|
|
|
|
});
|
2014-05-29 23:46:23 +09:00
|
|
|
rows.push(labels);
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
for (let k = 0; k < keys.length; k++) {
|
|
|
|
const key = keys[k];
|
|
|
|
const baselineMean = mean(baselineGroup[key]);
|
|
|
|
const currentMean = mean(currentGroup[key]);
|
|
|
|
const row = key.split(",");
|
Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
row.push(
|
|
|
|
"" + baselineGroup[key].length,
|
|
|
|
"" + Math.round(baselineMean),
|
|
|
|
"" + Math.round(currentMean),
|
|
|
|
"" + Math.round(currentMean - baselineMean),
|
|
|
|
((100 * (currentMean - baselineMean)) / baselineMean).toFixed(2)
|
|
|
|
);
|
2014-05-29 23:46:23 +09:00
|
|
|
if (ttest) {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const p =
|
Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
baselineGroup[key].length < 2
|
|
|
|
? 1
|
|
|
|
: ttest(baselineGroup[key], currentGroup[key]).pValue();
|
2014-05-29 23:46:23 +09:00
|
|
|
if (p < 0.05) {
|
Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
row.push(currentMean < baselineMean ? "faster" : "slower");
|
2014-05-29 23:46:23 +09:00
|
|
|
} else {
|
Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
row.push("");
|
2014-05-29 23:46:23 +09:00
|
|
|
}
|
|
|
|
}
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
for (let i = 0; i < row.length; i++) {
|
2014-05-29 23:46:23 +09:00
|
|
|
width[i] = Math.max(width[i], row[i].length);
|
|
|
|
}
|
|
|
|
rows.push(row);
|
|
|
|
}
|
|
|
|
|
|
|
|
// add horizontal line
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const hline = width.map(function (w) {
|
Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
return new Array(w + 1).join("-");
|
2017-02-03 20:58:08 +09:00
|
|
|
});
|
2014-05-29 23:46:23 +09:00
|
|
|
rows.splice(1, 0, hline);
|
|
|
|
|
|
|
|
// print output
|
Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const groupCount = options.groupBy.length;
|
|
|
|
for (let r = 0; r < rows.length; r++) {
|
|
|
|
const row = rows[r];
|
|
|
|
for (let i = 0; i < row.length; i++) {
|
Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
|
2014-05-29 23:46:23 +09:00
|
|
|
}
|
Enable auto-formatting of the entire code-base using Prettier (issue 11444)
Note that Prettier, purposely, has only limited [configuration options](https://prettier.io/docs/en/options.html). The configuration file is based on [the one in `mozilla central`](https://searchfox.org/mozilla-central/source/.prettierrc) with just a few additions (to avoid future breakage if the defaults ever changes).
Prettier is being used for a couple of reasons:
- To be consistent with `mozilla-central`, where Prettier is already in use across the tree.
- To ensure a *consistent* coding style everywhere, which is automatically enforced during linting (since Prettier is used as an ESLint plugin). This thus ends "all" formatting disussions once and for all, removing the need for review comments on most stylistic matters.
Many ESLint options are now redundant, and I've tried my best to remove all the now unnecessary options (but I may have missed some).
Note also that since Prettier considers the `printWidth` option as a guide, rather than a hard rule, this patch resorts to a small hack in the ESLint config to ensure that *comments* won't become too long.
*Please note:* This patch is generated automatically, by appending the `--fix` argument to the ESLint call used in the `gulp lint` task. It will thus require some additional clean-up, which will be done in a *separate* commit.
(On a more personal note, I'll readily admit that some of the changes Prettier makes are *extremely* ugly. However, in the name of consistency we'll probably have to live with that.)
2019-12-25 23:59:37 +09:00
|
|
|
console.log(row.join(" | "));
|
2014-05-29 23:46:23 +09:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function main() {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
let baseline, current;
|
2014-05-29 23:46:23 +09:00
|
|
|
try {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const baselineFile = fs.readFileSync(options.baseline).toString();
|
2014-05-29 23:46:23 +09:00
|
|
|
baseline = flatten(JSON.parse(baselineFile));
|
2016-12-13 04:18:48 +09:00
|
|
|
} catch (e) {
|
2014-05-29 23:46:23 +09:00
|
|
|
console.log('Error reading file "' + options.baseline + '": ' + e);
|
|
|
|
process.exit(0);
|
|
|
|
}
|
|
|
|
try {
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const currentFile = fs.readFileSync(options.current).toString();
|
2014-05-29 23:46:23 +09:00
|
|
|
current = flatten(JSON.parse(currentFile));
|
2016-12-13 04:18:48 +09:00
|
|
|
} catch (e) {
|
2014-05-29 23:46:23 +09:00
|
|
|
console.log('Error reading file "' + options.current + '": ' + e);
|
|
|
|
process.exit(0);
|
|
|
|
}
|
|
|
|
stat(baseline, current);
|
|
|
|
}
|
|
|
|
|
Enable the ESLint `no-var` rule in the `test/stats/` folder
Note that the majority of these changes were done automatically, by using the `gulp lint --fix` command, and the manual changes were limited to the following diff:
```diff
diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js
index 7c4dbf1d3..22d535a5a 100644
--- a/test/stats/statcmp.js
+++ b/test/stats/statcmp.js
@@ -1,13 +1,7 @@
"use strict";
const fs = require("fs");
-
-try {
- var ttest = require("ttest");
-} catch (e) {
- console.log('\nttest is not installed -- to intall, run "npm install ttest"');
- console.log("Continuing without significance test...\n");
-}
+const ttest = require("ttest");
const VALID_GROUP_BYS = ["browser", "pdf", "page", "round", "stat"];
@@ -134,9 +128,7 @@ function stat(baseline, current) {
if (ttest) {
labels.push("Result(P<.05)");
}
- let i,
- row,
- rows = [];
+ const rows = [];
// collect rows and measure column widths
const width = labels.map(function (s) {
return s.length;
@@ -146,7 +138,7 @@ function stat(baseline, current) {
const key = keys[k];
const baselineMean = mean(baselineGroup[key]);
const currentMean = mean(currentGroup[key]);
- row = key.split(",");
+ const row = key.split(",");
row.push(
"" + baselineGroup[key].length,
"" + Math.round(baselineMean),
@@ -165,7 +157,7 @@ function stat(baseline, current) {
row.push("");
}
}
- for (i = 0; i < row.length; i++) {
+ for (let i = 0; i < row.length; i++) {
width[i] = Math.max(width[i], row[i].length);
}
rows.push(row);
@@ -181,8 +173,8 @@ function stat(baseline, current) {
console.log("-- Grouped By " + options.groupBy.join(", ") + " --");
const groupCount = options.groupBy.length;
for (let r = 0; r < rows.length; r++) {
- row = rows[r];
- for (i = 0; i < row.length; i++) {
+ const row = rows[r];
+ for (let i = 0; i < row.length; i++) {
row[i] = pad(row[i], width[i], i < groupCount ? "right" : "left");
}
console.log(row.join(" | "));
@@ -208,5 +200,5 @@ function main() {
stat(baseline, current);
}
-var options = parseOptions();
+const options = parseOptions();
main();
```
2021-03-14 18:03:09 +09:00
|
|
|
const options = parseOptions();
|
2014-05-29 23:46:23 +09:00
|
|
|
main();
|