diff options
author | Daniel Bevenius <daniel.bevenius@gmail.com> | 2017-07-03 06:27:58 +0200 |
---|---|---|
committer | Daniel Bevenius <daniel.bevenius@gmail.com> | 2017-08-10 07:24:30 +0200 |
commit | 7f81400723f602467e9f611cbef5addb31ced616 (patch) | |
tree | 9bdef84825d55e523160e08723d7bedb2c009dd3 /tools | |
parent | a439cf4354c4781c7ac0026c7f69f7160e8439fb (diff) | |
download | android-node-v8-7f81400723f602467e9f611cbef5addb31ced616.tar.gz android-node-v8-7f81400723f602467e9f611cbef5addb31ced616.tar.bz2 android-node-v8-7f81400723f602467e9f611cbef5addb31ced616.zip |
tools: fix tools/addon-verify.js
The current implementation of addon-verify.js is including the code
for the "Function arguments" section in test/addons/01_callbacks and
there is no directory generated or the "Function arguments section".
This continues and leads to the last section, "AtExit", code to be
excluded. There is an test/addons/07_atexit_hooks but it contains code
from the "Passing wrapped objects around" section.
This commit modifies addon-verify to associate headers with code and
then iterates over the set and generates the files as a separate step.
PR-URL: https://github.com/nodejs/node/pull/14048
Reviewed-By: Michaƫl Zasso <targos@protonmail.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/doc/addon-verify.js | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/tools/doc/addon-verify.js b/tools/doc/addon-verify.js index 9af040b339..2e72abb77f 100644 --- a/tools/doc/addon-verify.js +++ b/tools/doc/addon-verify.js @@ -11,29 +11,29 @@ const verifyDir = path.resolve(rootDir, 'test', 'addons'); const contents = fs.readFileSync(doc).toString(); const tokens = marked.lexer(contents); -let files = null; let id = 0; -// Just to make sure that all examples will be processed -tokens.push({ type: 'heading' }); - -for (var i = 0; i < tokens.length; i++) { - var token = tokens[i]; +let currentHeader; +const addons = {}; +tokens.forEach((token) => { if (token.type === 'heading' && token.text) { - const blockName = token.text; - if (files && Object.keys(files).length !== 0) { - verifyFiles(files, - blockName, - console.log.bind(null, 'wrote'), - function(err) { if (err) throw err; }); - } - files = {}; - } else if (token.type === 'code') { + currentHeader = token.text; + addons[currentHeader] = { + files: {} + }; + } + if (token.type === 'code') { var match = token.text.match(/^\/\/\s+(.*\.(?:cc|h|js))[\r\n]/); - if (match === null) - continue; - files[match[1]] = token.text; + if (match !== null) { + addons[currentHeader].files[match[1]] = token.text; + } } +}); +for (var header in addons) { + verifyFiles(addons[header].files, + header, + console.log.bind(null, 'wrote'), + function(err) { if (err) throw err; }); } function once(fn) { |