diff --git a/lib/infer/finders.js b/lib/infer/finders.js index 791cb7afd..394f24ce6 100644 --- a/lib/infer/finders.js +++ b/lib/infer/finders.js @@ -22,9 +22,9 @@ function findTarget(path) { path = path.declaration; } - // var x = TARGET; + // var x = init; if (t.isVariableDeclaration(path)) { - return path.declarations[0].init; + return path.declarations[0]; } // foo.x = TARGET diff --git a/lib/infer/params.js b/lib/infer/params.js index 31278ac71..511a3a9b5 100644 --- a/lib/infer/params.js +++ b/lib/infer/params.js @@ -162,6 +162,12 @@ function inferParams() { return shouldSkipInference(function inferParams(comment) { var node = finders.findTarget(comment.context.ast); + // In case of `/** */ var x = function () {}` findTarget returns + // the declarator. + if (t.isVariableDeclarator(node)) { + node = node.init; + } + if (!t.isFunction(node)) { return comment; } diff --git a/test/lib/infer/params.js b/test/lib/infer/params.js index 4f48dae76..b318918c4 100644 --- a/test/lib/infer/params.js +++ b/test/lib/infer/params.js @@ -21,6 +21,22 @@ test('inferParams', function (t) { function f(x) {} }).params, [{lineNumber: 3, name: 'x', title: 'param'}]); + t.deepEqual(evaluate(function () { + /** Test */ + var f = function (x) {}; + }).params, [{lineNumber: 3, name: 'x', title: 'param'}]); + + t.deepEqual(evaluate('/** Test */ var f = (x) => {}').params, + [{lineNumber: 1, name: 'x', title: 'param'}]); + + t.deepEqual(evaluate(function () { + var x = 1, + g = function (y) {}, + /** Test */ + f = function (x) {}; + }).params, [{lineNumber: 5, name: 'x', title: 'param'}]); + + t.deepEqual(evaluate('/** Test */ export function f(x) {}').params, [{lineNumber: 1, name: 'x', title: 'param'}]);
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: