From ce435bed5188301fdca089cd1f3758c14b699f0f Mon Sep 17 00:00:00 2001 From: Michael Mathews Date: Thu, 27 Oct 2011 00:20:33 +0100 Subject: [PATCH] Members of enum automatically get a default value. --- package.json | 2 +- rhino_modules/jsdoc/src/parser.js | 4 ++++ test/t/cases/enumtag.js | 5 ++++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index ccc591ae..2257aeb5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "JSDoc", "version": "3.0.0alpha", - "revision": "1319151616566", + "revision": "1319671194463", "description": "An automatic documentation generator for javascript.", "keywords": [ "documentation", "javascript" ], "licenses": [ diff --git a/rhino_modules/jsdoc/src/parser.js b/rhino_modules/jsdoc/src/parser.js index 72665037..0cc74198 100644 --- a/rhino_modules/jsdoc/src/parser.js +++ b/rhino_modules/jsdoc/src/parser.js @@ -319,6 +319,7 @@ function visitNode(node) { // members of an enum inherit the enum's type if (parent.doclet.type && !e.doclet.type) { e.doclet.type = parent.doclet.type; } delete e.doclet.undocumented; + e.doclet.defaultvalue = e.doclet.meta.code.value; parent.doclet.properties.push(e.doclet); } } @@ -511,6 +512,9 @@ function nodeToString(node) { else if (node.type === Token.GETELEM) { str = node.toSource(); // like: Foo['Bar'] } + else if (node.type === Token.NEG || node.type === Token.TRUE || node.type === Token.FALSE) { + str = node.toSource(); // like -1 + } else { str = getTypeName(node); } diff --git a/test/t/cases/enumtag.js b/test/t/cases/enumtag.js index 7969614a..3ca3109d 100644 --- a/test/t/cases/enumtag.js +++ b/test/t/cases/enumtag.js @@ -15,7 +15,10 @@ test('If no no comment is given for the property it is still included in the enum.', function() { assert.equal(tristate.properties[1].longname, 'TriState.FALSE'); assert.equal(typeof tristate.properties[1].undocumented, 'undefined'); - + }); + + test('A property of an enum gets its defaultvalue set.', function() { + assert.equal(tristate.properties[1].defaultvalue, -1); }); test('If a @type is given for the property it is reflected in the property value.', function() {