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(); + }); +});