summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorTobias Nießen <tniessen@tnie.de>2018-09-08 11:40:05 +0200
committerTobias Nießen <tniessen@tnie.de>2018-09-12 11:47:08 +0200
commit1f5261b7c844ea17cf6235d2f1b33190a4f64db1 (patch)
tree6cfb202f80241a4c34283db9385a7d9bb965003d /tools
parentb36c581d5bd7e6087aab794af222e122e5a32f03 (diff)
downloadandroid-node-v8-1f5261b7c844ea17cf6235d2f1b33190a4f64db1.tar.gz
android-node-v8-1f5261b7c844ea17cf6235d2f1b33190a4f64db1.tar.bz2
android-node-v8-1f5261b7c844ea17cf6235d2f1b33190a4f64db1.zip
tools: fix doc tool behavior for version arrays
Even though the doc tool supports version arrays in theory, it fails to sort them properly causing the tool to crash. PR-URL: https://github.com/nodejs/node/pull/22766 Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/doc/common.js2
-rw-r--r--tools/doc/html.js14
2 files changed, 12 insertions, 4 deletions
diff --git a/tools/doc/common.js b/tools/doc/common.js
index 7d8aefb65d..86daae6cfc 100644
--- a/tools/doc/common.js
+++ b/tools/doc/common.js
@@ -43,4 +43,4 @@ function extractAndParseYAML(text) {
return meta;
}
-module.exports = { isYAMLBlock, extractAndParseYAML };
+module.exports = { arrify, isYAMLBlock, extractAndParseYAML };
diff --git a/tools/doc/html.js b/tools/doc/html.js
index 5babe1c97e..c0a94b6534 100644
--- a/tools/doc/html.js
+++ b/tools/doc/html.js
@@ -308,7 +308,9 @@ function parseYAML(text) {
.use(htmlStringify)
.processSync(change.description).toString();
- result += `<tr><td>${change.version}</td>\n` +
+ const version = common.arrify(change.version).join(', ');
+
+ result += `<tr><td>${version}</td>\n` +
`<td>${description}</td></tr>\n`;
});
@@ -326,10 +328,16 @@ function parseYAML(text) {
return result;
}
+function minVersion(a) {
+ return common.arrify(a).reduce((min, e) => {
+ return !min || versionSort(min, e) < 0 ? e : min;
+ });
+}
+
const numberRe = /^\d*/;
function versionSort(a, b) {
- a = a.trim();
- b = b.trim();
+ a = minVersion(a).trim();
+ b = minVersion(b).trim();
let i = 0; // Common prefix length.
while (i < a.length && i < b.length && a[i] === b[i]) i++;
a = a.substr(i);