From 224e796428d724eca8589852dc44f37f8c8da177 Mon Sep 17 00:00:00 2001 From: Jeff Williams Date: Sun, 29 Nov 2015 14:53:55 -0800 Subject: [PATCH] prevent crash when exporting an anonymous class (#1113) --- lib/jsdoc/src/astnode.js | 5 +++-- test/fixtures/anonymousclass.js | 4 ++++ test/specs/documentation/anonymousclass.js | 11 +++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 test/fixtures/anonymousclass.js create mode 100644 test/specs/documentation/anonymousclass.js diff --git a/lib/jsdoc/src/astnode.js b/lib/jsdoc/src/astnode.js index e5dbdd1b..f5db7c4c 100644 --- a/lib/jsdoc/src/astnode.js +++ b/lib/jsdoc/src/astnode.js @@ -326,10 +326,11 @@ var getInfo = exports.getInfo = function(node) { break; - // like: "class Foo {}" + // like: "class Foo {}" + // or "class" in: "export default class {}" case Syntax.ClassDeclaration: info.node = node; - info.name = nodeToValue(node.id); + info.name = node.id ? nodeToValue(node.id) : ''; info.type = info.node.type; info.paramnames = []; diff --git a/test/fixtures/anonymousclass.js b/test/fixtures/anonymousclass.js new file mode 100644 index 00000000..307beef9 --- /dev/null +++ b/test/fixtures/anonymousclass.js @@ -0,0 +1,4 @@ +/** @module */ + +/** Test class */ +export default class { } diff --git a/test/specs/documentation/anonymousclass.js b/test/specs/documentation/anonymousclass.js new file mode 100644 index 00000000..42384162 --- /dev/null +++ b/test/specs/documentation/anonymousclass.js @@ -0,0 +1,11 @@ +'use strict'; + +describe('anonymous class', function() { + it('should not crash JSDoc', function() { + function getDocs() { + return jasmine.getDocSetFromFile('test/fixtures/anonymousclass.js'); + } + + expect(getDocs).not.toThrow(); + }); +});