diff --git a/lib/jsdoc/tag/dictionary/definitions.js b/lib/jsdoc/tag/dictionary/definitions.js
index 4c9b68f7..0bd66713 100644
--- a/lib/jsdoc/tag/dictionary/definitions.js
+++ b/lib/jsdoc/tag/dictionary/definitions.js
@@ -251,9 +251,9 @@ exports.defineTags = function(dictionary) {
// TODO: handle escaped quotes in values
doclet.defaultvalue = 'null';
}
- else if (doclet.meta.code.type === 'OBJECTLIT'){
+ else if (doclet.meta.code.type === 'OBJECTLIT') {
doclet.defaultvalue = String(doclet.meta.code.node.toSource());
- doclet.defaultobject = true;
+ doclet.defaultvaluetype = 'object';
}
}
}
diff --git a/templates/default/static/styles/jsdoc-default.css b/templates/default/static/styles/jsdoc-default.css
index 327b17ad..cbcff70f 100644
--- a/templates/default/static/styles/jsdoc-default.css
+++ b/templates/default/static/styles/jsdoc-default.css
@@ -202,6 +202,7 @@ h6
.details ul { list-style-type: none; }
.details li { margin-left: 30px; padding-top: 6px; }
.details pre.prettyprint { margin: 0 }
+.details .object-value { padding-top: 0; }
.description {
margin-bottom: 1em;
diff --git a/templates/default/tmpl/details.tmpl b/templates/default/tmpl/details.tmpl
index 141bd58a..a18dfdc0 100644
--- a/templates/default/tmpl/details.tmpl
+++ b/templates/default/tmpl/details.tmpl
@@ -1,12 +1,12 @@
" + data.defaultvalue + "";
- default_object_css = ' style="padding-top: 0;" ';
+ defaultObjectClass = ' class="object-value"';
}
?>
@@ -67,7 +67,7 @@ if (data.defaultvalue && data.defaultobject){
- Default Value:
diff --git a/test/fixtures/defaulttag.js b/test/fixtures/defaulttag.js
index e14d4f74..996033a7 100644
--- a/test/fixtures/defaulttag.js
+++ b/test/fixtures/defaulttag.js
@@ -37,3 +37,11 @@ var header = getHeaders(request);
@default
*/
var obj = { value_a : 'a', value_b : 'b' };
+
+/**
+ * @default
+ */
+var multilineObject = {
+ value_a : 'a',
+ value_b : 'b'
+};
diff --git a/test/specs/tags/defaulttag.js b/test/specs/tags/defaulttag.js
index bd5987d4..c9a83032 100644
--- a/test/specs/tags/defaulttag.js
+++ b/test/specs/tags/defaulttag.js
@@ -7,7 +7,8 @@ describe("@default tag", function() {
rerrored = (docSet.getByLongname('rerrored') || [])[0],
win = (docSet.getByLongname('win') || [])[0],
header = (docSet.getByLongname('header') || [])[0],
- obj = docSet.getByLongname('obj')[0];
+ obj = docSet.getByLongname('obj')[0],
+ multilineObject = docSet.getByLongname('multilineObject')[0];
it('When symbol set to null has a @default tag with no text, the doclet\'s defaultValue property should be: null', function() {
expect(request.defaultvalue).toBe('null');
@@ -37,9 +38,14 @@ describe("@default tag", function() {
expect(header.defaultvalue).toBeUndefined();
});
- it('When symbol has a @default tag with an object.', function(){
+ it('When symbol has a @default tag with an object, the doclet\'s defaultValue property should contain the stringified object', function() {
var expected_value = "{value_a: 'a', value_b: 'b'}";
expect(obj.defaultvalue).toEqual(expected_value);
- })
+ });
+
+ it('When symbol has a @default tag with a multiline object, the doclet\'s defaultValue property should contain the properly stringified object', function() {
+ var expected_value = "{value_a: 'a', value_b: 'b'}";
+ expect(obj.defaultvalue).toEqual(expected_value);
+ });
});