From b719e68907d3e331d1ad3b2ef9cffd7173538528 Mon Sep 17 00:00:00 2001 From: Jeff Williams Date: Tue, 4 Jul 2017 15:49:02 -0700 Subject: [PATCH] parse do expressions --- lib/jsdoc/src/astbuilder.js | 2 ++ lib/jsdoc/src/syntax.js | 1 + lib/jsdoc/src/walker.js | 4 ++++ 3 files changed, 7 insertions(+) diff --git a/lib/jsdoc/src/astbuilder.js b/lib/jsdoc/src/astbuilder.js index f21303f0..4c5cae4c 100644 --- a/lib/jsdoc/src/astbuilder.js +++ b/lib/jsdoc/src/astbuilder.js @@ -8,6 +8,7 @@ var parserOptions = exports.parserOptions = { ranges: true, sourceType: 'module', plugins: [ + 'doExpressions', 'estree', 'jsx', 'objectRestSpread' @@ -22,6 +23,7 @@ function parse(source, filename) { try { ast = babylon.parse(source, parserOptions); + // console.log(JSON.stringify(ast, null, 2)); } catch (e) { logger.error('Unable to parse %s: %s', filename, e.message); diff --git a/lib/jsdoc/src/syntax.js b/lib/jsdoc/src/syntax.js index 86cbc9b5..f8bc1bc3 100644 --- a/lib/jsdoc/src/syntax.js +++ b/lib/jsdoc/src/syntax.js @@ -21,6 +21,7 @@ exports.Syntax = { ConditionalExpression: 'ConditionalExpression', ContinueStatement: 'ContinueStatement', DebuggerStatement: 'DebuggerStatement', + DoExpression: 'DoExpression', DoWhileStatement: 'DoWhileStatement', EmptyStatement: 'EmptyStatement', ExperimentalRestProperty: 'ExperimentalRestProperty', diff --git a/lib/jsdoc/src/walker.js b/lib/jsdoc/src/walker.js index a90aa5c5..63e322e7 100644 --- a/lib/jsdoc/src/walker.js +++ b/lib/jsdoc/src/walker.js @@ -179,6 +179,10 @@ walkers[Syntax.ContinueStatement] = leafNode; walkers[Syntax.DebuggerStatement] = leafNode; +walkers[Syntax.DoExpression] = function(node, parent, state, cb) { + cb(node.body, node, state); +}; + walkers[Syntax.DoWhileStatement] = function(node, parent, state, cb) { cb(node.test, node, state); cb(node.body, node, state);