diff --git a/.jshintrc b/.jshintrc index 8d076fa4..3569e85e 100644 --- a/.jshintrc +++ b/.jshintrc @@ -15,31 +15,31 @@ "strict": false, "trailing": true, - "asi": true, - "boss": true, - "debug": true, + "asi": false, + "boss": false, + "debug": false, "eqnull": true, "es5": true, "esnext": true, - "evil": true, - "expr": true, - "funcscope": true, - "globalstrict": true, - "iterator": true, - "lastsemic": true, - "laxbreak": true, - "laxcomma": true, + "evil": false, + "expr": false, + "funcscope": false, + "globalstrict": false, + "iterator": false, + "lastsemic": false, + "laxbreak": false, + "laxcomma": false, "loopfunc": true, - "multistr": true, + "multistr": false, "onecase": true, - "proto": true, - "regexdash": true, + "proto": false, + "regexdash": false, "scripturl": true, - "shadow": true, - "smarttabs": true, - "sub": true, - "supernew": true, - "validthis": true, + "shadow": false, + "smarttabs": false, + "sub": false, + "supernew": false, + "validthis": false, "browser": false, "couch": false, diff --git a/jsdoc.js b/jsdoc.js index b5408f33..21eaa02c 100644 --- a/jsdoc.js +++ b/jsdoc.js @@ -89,7 +89,7 @@ include.resolve = function(filepath) { } return env.dirname + '/' + filepath; -} +}; /** Print string/s out to the console. @param {string} ... String/s to print out to console. @@ -172,7 +172,7 @@ app = { parser: new (require('jsdoc/src/parser').Parser)(), name: require('jsdoc/name') } -} +}; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// diff --git a/package.json b/package.json index a105a3e7..128f8e2a 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,10 @@ { "name": "Jannon Frank", "email": "jannon@jannon.net" + }, + { + "name": "Jeff Williams", + "email": "jeffrey.l.williams@gmail.com" } ], "maintainers": [ diff --git a/plugins/markdown.js b/plugins/markdown.js index a4736628..20eab22f 100644 --- a/plugins/markdown.js +++ b/plugins/markdown.js @@ -39,7 +39,7 @@ function getParser(parser, conf) { return function(source) { return parser.renderJsonML(parser.toHTMLTree(source, conf.dialect)); - } + }; } else { throw "unknown Markdown parser: '" + parser + "'"; } diff --git a/rhino_modules/fs.js b/rhino_modules/fs.js index 2dec03be..a32eff3b 100644 --- a/rhino_modules/fs.js +++ b/rhino_modules/fs.js @@ -131,7 +131,7 @@ exports.copyFile = function(inFile, outDir, fileName) { outDir = toDir(outDir); - var inFile = new java.io.File(inFile); + inFile = new java.io.File(inFile); var outFile = new java.io.File(outDir+'/'+fileName); var bis = new Packages.java.io.BufferedInputStream(new Packages.java.io.FileInputStream(inFile), 4096); diff --git a/rhino_modules/jsdoc/augment.js b/rhino_modules/jsdoc/augment.js index 68e2a660..f20202f6 100644 --- a/rhino_modules/jsdoc/augment.js +++ b/rhino_modules/jsdoc/augment.js @@ -18,7 +18,7 @@ var doop = require("jsdoc/util/doop").doop; docs.push(doc); }); }); - } + }; function mapDependencies(index) { var doclets, doc, len, dependencies = {}; diff --git a/rhino_modules/jsdoc/borrow.js b/rhino_modules/jsdoc/borrow.js index 44dba578..dd19dd59 100644 --- a/rhino_modules/jsdoc/borrow.js +++ b/rhino_modules/jsdoc/borrow.js @@ -23,7 +23,7 @@ exports.resolveBorrows = function(docs) { if (doc.borrowed) { doc.borrowed.forEach(function(b, i) { var lent = docs.index[b.from], // lent is an array - asName = b['as'] || b.from; + asName = b.as || b.from; if (lent) { var cloned = doop(lent); @@ -48,4 +48,4 @@ exports.resolveBorrows = function(docs) { delete doc.borrowed; } }); -} +}; diff --git a/rhino_modules/jsdoc/config.js b/rhino_modules/jsdoc/config.js index 9b5bcb0d..61b39253 100644 --- a/rhino_modules/jsdoc/config.js +++ b/rhino_modules/jsdoc/config.js @@ -27,7 +27,7 @@ const defaults = { @param {string} [json] - The contents of config.json. */ function Config(json) { - var json = JSON.parse( (json || "{}") ); + json = JSON.parse( (json || "{}") ); this._config = util.mergeRecurse(defaults, json); } @@ -39,5 +39,4 @@ module.exports = Config; */ Config.prototype.get = function() { return this._config; -} - +}; diff --git a/rhino_modules/jsdoc/doclet.js b/rhino_modules/jsdoc/doclet.js index 66711e54..49c69814 100644 --- a/rhino_modules/jsdoc/doclet.js +++ b/rhino_modules/jsdoc/doclet.js @@ -1,14 +1,14 @@ /** @overview @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. + @license Apache License 2.0 - See file 'LICENSE.md' in this project. */ /** - @module jsdoc/doclet - @requires jsdoc/tag - @requires jsdoc/name - @requires jsdoc/tag/dictionary + @module jsdoc/doclet + @requires jsdoc/tag + @requires jsdoc/name + @requires jsdoc/tag/dictionary */ var jsdoc = { @@ -51,17 +51,17 @@ function codetypeToKind(type) { function unwrap(docletSrc) { if (!docletSrc) { return ''; } - // note: keep trailing whitespace for @examples - // extra opening/closing stars are ignored - // left margin is considered a star and a space - // use the /m flag on regex to avoid having to guess what this platform's newline is - docletSrc = - docletSrc.replace(/^\/\*\*+/, '') // remove opening slash+stars - .replace(/\**\*\/$/, "\\Z") // replace closing star slash with end-marker - .replace(/^\s*(\* ?|\\Z)/gm, '') // remove left margin like: spaces+star or spaces+end-marker - .replace(/\s*\\Z$/g, ''); // remove end-marker + // note: keep trailing whitespace for @examples + // extra opening/closing stars are ignored + // left margin is considered a star and a space + // use the /m flag on regex to avoid having to guess what this platform's newline is + docletSrc = + docletSrc.replace(/^\/\*\*+/, '') // remove opening slash+stars + .replace(/\**\*\/$/, "\\Z") // replace closing star slash with end-marker + .replace(/^\s*(\* ?|\\Z)/gm, '') // remove left margin like: spaces+star or spaces+end-marker + .replace(/\s*\\Z$/g, ''); // remove end-marker - return docletSrc; + return docletSrc; } function split(docletSrc) { @@ -69,14 +69,14 @@ function split(docletSrc) { tagText, tagTitle; - // split out the basic tags, keep surrounding whitespace - // like: @tagTitle tagBody - docletSrc - .replace(/^(\s*)@(\S)/gm, '$1\\@$2') // replace splitter ats with an arbitrary sequence - .split('\\@') // then split on that arbitrary sequence - .forEach(function($) { - if ($) { - var parsedTag = $.match(/^(\S+)(:?\s+(\S[\s\S]*))?/); + // split out the basic tags, keep surrounding whitespace + // like: @tagTitle tagBody + docletSrc + .replace(/^(\s*)@(\S)/gm, '$1\\@$2') // replace splitter ats with an arbitrary sequence + .split('\\@') // then split on that arbitrary sequence + .forEach(function($) { + if ($) { + var parsedTag = $.match(/^(\S+)(:?\s+(\S[\s\S]*))?/); if (parsedTag) { // we don't need parsedTag[0] @@ -91,9 +91,9 @@ function split(docletSrc) { } } } - }); - - return tagSrcs; + }); + + return tagSrcs; } /** @@ -116,9 +116,9 @@ function toTags(docletSrc) { function fixDescription(docletSrc) { if (!/^\s*@/.test(docletSrc)) { - docletSrc = '@description ' + docletSrc; - } - return docletSrc; + docletSrc = '@description ' + docletSrc; + } + return docletSrc; } /** @@ -144,7 +144,7 @@ exports.Doclet = function(docletSrc, meta) { } this.postProcess(); -} +}; /** Called once after all tags have been added. */ exports.Doclet.prototype.postProcess = function() { @@ -172,7 +172,7 @@ exports.Doclet.prototype.postProcess = function() { } } } -} +}; /** Add a tag to this doclet. @param {string} title - The title of the tag being added. @@ -183,7 +183,7 @@ exports.Doclet.prototype.addTag = function(title, text) { newTag = new jsdoc.tag.Tag(title, text, this.meta); if (tagDef && tagDef.onTagged) { - tagDef.onTagged(this, newTag) + tagDef.onTagged(this, newTag); } if (!tagDef) { @@ -192,7 +192,7 @@ exports.Doclet.prototype.addTag = function(title, text) { } applyTag.call(this, newTag); -} +}; /** Set the `memberof` property of this doclet. @param {string} sid - The longname of the symbol that this doclet is a member of. @@ -204,7 +204,7 @@ exports.Doclet.prototype.setMemberof = function(sid) { @type string */ this.memberof = sid.replace(/\.prototype/g, '#'); -} +}; /** Set the `longname` property of this doclet. @param {string} name @@ -220,7 +220,7 @@ exports.Doclet.prototype.setLongname = function(name) { if (jsdoc.tag.dictionary.isNamespace(this.kind)) { this.longname = jsdoc.name.applyNamespace(this.longname, this.kind); } -} +}; /** Add a symbol to this doclet's `borrowed` array. @param {string} source - The longname of the symbol that is the source. @@ -238,7 +238,7 @@ exports.Doclet.prototype.borrow = function(source, target) { this.borrowed = []; } this.borrowed.push(about); -} +}; exports.Doclet.prototype.mix = function(source) { if (!this.mixes) { @@ -249,7 +249,7 @@ exports.Doclet.prototype.mix = function(source) { this.mixes = []; } this.mixes.push(source); -} +}; /** Add a symbol to this doclet's `augments` array. @param {string} base - The longname of the base symbol. @@ -263,7 +263,7 @@ exports.Doclet.prototype.augment = function(base) { this.augments = []; } this.augments.push(base); -} +}; /** Set the `meta` property of this doclet. @@ -329,4 +329,4 @@ exports.Doclet.prototype.setMeta = function(meta) { this.meta.code.paramnames = meta.code.paramnames.concat([]); } } -} +}; diff --git a/rhino_modules/jsdoc/name.js b/rhino_modules/jsdoc/name.js index c5dc8b38..d3d73b40 100644 --- a/rhino_modules/jsdoc/name.js +++ b/rhino_modules/jsdoc/name.js @@ -91,7 +91,7 @@ exports.resolve = function(doclet) { if (about.variation) { doclet.variation = about.variation; } -} +}; /** @inner @@ -113,7 +113,7 @@ function quoteUnsafe(name, kind) { // docspaced names may have unsafe characters RegExp.escape = RegExp.escape || function(str) { var specials = new RegExp("[.*+?|()\\[\\]{}\\\\]", "g"); // .*+?|()[]{}\ return str.replace(specials, "\\$&"); -} +}; /** @method module:jsdoc/name.applyNamespace @@ -123,15 +123,15 @@ RegExp.escape = RegExp.escape || function(str) { */ exports.applyNamespace = function(longname, ns) { var nameParts = exports.shorten(longname), - name = nameParts.name, - longname = nameParts.longname; + name = nameParts.name; + longname = nameParts.longname; if ( !/^[a-zA-Z]+?:.+$/i.test(name) ) { longname = longname.replace( new RegExp(RegExp.escape(name)+'$'), ns + ':' + name ); } return longname; -} +}; /** Given a longname like "a.b#c(2)", slice it up into ["a.b", "#", 'c', '2'], @@ -161,21 +161,22 @@ exports.shorten = function(longname, forcedMemberof) { var name = '', scope = '', // ., ~, or # memberof = '', + parts, variation; longname = longname.replace( /\.prototype\.?/g, '#' ); if (typeof forcedMemberof !== 'undefined') { name = longname.substr(forcedMemberof.length); - var parts = forcedMemberof.match(/^(.*?)([#.~]?)$/); + parts = forcedMemberof.match(/^(.*?)([#.~]?)$/); if (parts[1]) { memberof = parts[1] || forcedMemberof; } if (parts[2]) { scope = parts[2]; } } else { - var parts = longname? - (longname.match( /^(:?(.+)([#.~]))?(.+?)$/ ) || []).reverse() - : ['']; + parts = longname? + (longname.match( /^(:?(.+)([#.~]))?(.+?)$/ ) || []).reverse() + : ['']; name = parts[0] || ''; // ensure name is always initialised to avoid error being thrown when calling replace on undefined [gh-24] scope = parts[1] || ''; // ., ~, or # @@ -198,7 +199,7 @@ exports.shorten = function(longname, forcedMemberof) { //// return {longname: longname, memberof: memberof, scope: scope, name: name, variation: variation}; -} +}; /** Split a string that starts with a name and ends with a description, into its parts. @@ -241,4 +242,4 @@ exports.splitName = function(nameDesc) { } return { name: name, description: desc }; -} \ No newline at end of file +}; diff --git a/rhino_modules/jsdoc/opts/parser.js b/rhino_modules/jsdoc/opts/parser.js index c1cbefc4..b261d911 100644 --- a/rhino_modules/jsdoc/opts/parser.js +++ b/rhino_modules/jsdoc/opts/parser.js @@ -51,14 +51,14 @@ exports.parse = function(args) { ourOptions = argParser.parse(args, defaults); return ourOptions; -} +}; /** Display help message for options. */ exports.help = function() { return argParser.help(); -} +}; /** Get a named option. @@ -75,4 +75,4 @@ exports.get = function(name) { else { return ourOptions[name]; } -} +}; diff --git a/rhino_modules/jsdoc/package.js b/rhino_modules/jsdoc/package.js index 3c645817..9b9cf99d 100644 --- a/rhino_modules/jsdoc/package.js +++ b/rhino_modules/jsdoc/package.js @@ -66,5 +66,4 @@ exports.Package = function(json) { * ] */ this.licenses = json.licenses; -} - +}; diff --git a/rhino_modules/jsdoc/readme.js b/rhino_modules/jsdoc/readme.js index ee09395a..aba292d9 100644 --- a/rhino_modules/jsdoc/readme.js +++ b/rhino_modules/jsdoc/readme.js @@ -33,7 +33,7 @@ function getParser(parser, conf) { return function(source) { return parser.renderJsonML(parser.toHTMLTree(source, conf.dialect)); - } + }; } else { throw 'unknown Markdown parser: "' + parser + '"'; diff --git a/rhino_modules/jsdoc/src/filter.js b/rhino_modules/jsdoc/src/filter.js index 573d9a54..091b37c8 100644 --- a/rhino_modules/jsdoc/src/filter.js +++ b/rhino_modules/jsdoc/src/filter.js @@ -20,7 +20,7 @@ exports.Filter = function(opts) { this.excludePattern = opts.excludePattern? typeof opts.excludePattern === 'string'? new RegExp(opts.excludePattern) : opts.excludePattern : null; -} +}; /** @param {string} filepath - The filepath to check. @@ -40,4 +40,4 @@ exports.Filter.prototype.isIncluded = function(filepath) { } return true; -} \ No newline at end of file +}; diff --git a/rhino_modules/jsdoc/src/parser.js b/rhino_modules/jsdoc/src/parser.js index c128c9c8..49a019bf 100644 --- a/rhino_modules/jsdoc/src/parser.js +++ b/rhino_modules/jsdoc/src/parser.js @@ -83,14 +83,14 @@ exports.Parser.prototype.parse = function(sourceFiles, encoding) { */ exports.Parser.prototype.results = function() { return this._resultBuffer; -} +}; /** * @param {Object} o The parse result to add to the result buffer. */ exports.Parser.prototype.addResult = function(o) { this._resultBuffer.push(o); -} +}; /** * Empty any accumulated results of calls to parse. @@ -99,21 +99,21 @@ exports.Parser.prototype.clear = function() { currentParser = null; currentSourceName = ''; this._resultBuffer = []; -} +}; /** * Adds a node visitor to use in parsing */ exports.Parser.prototype.addNodeVisitor = function(visitor) { this._visitors.push(visitor); -} +}; /** * Get the node visitors used in parsing */ exports.Parser.prototype.getVisitors = function() { return this._visitors; -} +}; function pretreat(code) { return code @@ -168,7 +168,7 @@ function nodeToString(node) { str = [nodeToString(node.target), node.property.string].join('.'); } else if (node.type === Token.VAR) { - str = nodeToString(node.target) + str = nodeToString(node.target); } else if (node.type === Token.NAME) { str = node.string; @@ -281,7 +281,7 @@ function makeVarsFinisher(funcDoc) { if (funcDoc && e.doclet && e.doclet.alias) { funcDoc.meta.vars[e.code.name] = e.doclet.longname; } - } + }; return func; } @@ -303,6 +303,9 @@ function visitNode(node) { nodeComments, comment, commentSrc, + basename, + func, + funcDoc, i, l; @@ -316,17 +319,16 @@ function visitNode(node) { continue; } - if (commentSrc = ''+comment.toSource()) { + commentSrc = '' + comment.toSource(); + if ( commentSrc && isValidJsdoc(commentSrc) ) { e = { comment: commentSrc, lineno: comment.getLineno(), filename: currentSourceName }; - if ( isValidJsdoc(commentSrc) ) { - currentParser.fire('jsdocCommentFound', e, currentParser); - } + currentParser.fire('jsdocCommentFound', e, currentParser); } } e = null; @@ -343,7 +345,7 @@ function visitNode(node) { finishers: [currentParser.addDocletRef] }; - var basename = getBasename(e.code.name); + basename = getBasename(e.code.name); if (basename !== 'this') { e.code.funcscope = currentParser.resolveVar(node, basename); @@ -385,8 +387,8 @@ function visitNode(node) { }; // keep track of vars in a function or global scope - var func = "__global__", - funcDoc = null; + func = "__global__"; + funcDoc = null; if (node.enclosingFunction) { func = 'astnode'+node.enclosingFunction.hashCode(); } @@ -413,8 +415,8 @@ function visitNode(node) { //console.log(':: e.code.name is', e.code.name); // keep track of vars in a function or global scope - var func = "__global__", - funcDoc = null; + func = "__global__"; + funcDoc = null; if (node.enclosingFunction) { func = 'astnode'+node.enclosingFunction.hashCode(); } @@ -425,12 +427,12 @@ function visitNode(node) { e.finishers.push(makeVarsFinisher(funcDoc)); } - var basename = getBasename(e.code.name) + basename = getBasename(e.code.name); e.code.funcscope = currentParser.resolveVar(node, basename); } if (!e) { e = {finishers: []}; } - for(var i = 0, l = currentParser._visitors.length; i < l; i++) { + for(i = 0, l = currentParser._visitors.length; i < l; i++) { currentParser._visitors[i].visitNode(node, e, currentParser, currentSourceName); if (e.stopPropagation) { break; } } @@ -439,7 +441,7 @@ function visitNode(node) { currentParser.fire(e.event, e, currentParser); } - for (var i = 0, l = e.finishers.length; i < l; i++) { + for (i = 0, l = e.finishers.length; i < l; i++) { e.finishers[i].call(currentParser, e); } @@ -470,7 +472,7 @@ exports.Parser.prototype._parseSourceCode = function(sourceCode, sourceName) { this.fire('fileComplete', e); currentSourceName = ''; -} +}; /** * Given a node, determine what the node is a member of. @@ -479,7 +481,8 @@ exports.Parser.prototype._parseSourceCode = function(sourceCode, sourceName) { */ exports.Parser.prototype.astnodeToMemberof = function(node) { var id, - doclet; + doclet, + alias; if (node.type === Token.VAR || node.type === Token.FUNCTION || node.type == tkn.NAMEDFUNCTIONSTATEMENT) { if (node.enclosingFunction) { // an inner var or func @@ -499,7 +502,7 @@ exports.Parser.prototype.astnodeToMemberof = function(node) { id = 'astnode'+scope.enclosingFunction.hashCode(); doclet = this.refs[id]; if (doclet && doclet.meta.vars && basename in doclet.meta.vars) { - var alias = hasOwnProp.call(doclet.meta.vars, basename)? doclet.meta.vars[basename] : false; + alias = hasOwnProp.call(doclet.meta.vars, basename)? doclet.meta.vars[basename] : false; if (alias !== false) { return [alias, basename]; } @@ -508,9 +511,9 @@ exports.Parser.prototype.astnodeToMemberof = function(node) { scope = scope.enclosingFunction; } //First check to see if we have a global scope alias - doclet = this.refs["__global__"]; + doclet = this.refs.__global__; if (doclet && doclet.meta.vars && hasOwnProp.call(doclet.meta.vars, basename)) { - var alias = doclet.meta.vars[basename]; + alias = doclet.meta.vars[basename]; if (alias !== false) { return [alias, basename]; } @@ -523,7 +526,7 @@ exports.Parser.prototype.astnodeToMemberof = function(node) { } return doclet.longname||doclet.name; } -} +}; /** * Resolve what "this" refers too, relative to a node. @@ -579,7 +582,7 @@ exports.Parser.prototype.resolveThis = function(node) { else { return ''; // global? } -} +}; /** Given: foo = { x:1 }, find foo from x. @@ -598,7 +601,7 @@ exports.Parser.prototype.resolvePropertyParent = function(node) { if (memberof.doclet) { return memberof; } } -} +}; /** * Resolve what function a var is limited to. @@ -617,7 +620,7 @@ exports.Parser.prototype.resolveVar = function(node, basename) { } return this.resolveVar(enclosingFunction, basename); -} +}; exports.Parser.prototype.addDocletRef = function(e) { var node = e.code.node; @@ -630,7 +633,7 @@ exports.Parser.prototype.addDocletRef = function(e) { meta: { code: e.code } }; } -} +}; exports.Parser.prototype.resolveEnum = function(e) { var doop = require("jsdoc/util/doop").doop, @@ -645,7 +648,7 @@ exports.Parser.prototype.resolveEnum = function(e) { // use a copy of the doclet to avoid circular references parent.doclet.properties.push( doop(e.doclet) ); } -} +}; /** Fired whenever the parser encounters a JSDoc comment in the current source code. diff --git a/rhino_modules/jsdoc/src/scanner.js b/rhino_modules/jsdoc/src/scanner.js index 8ca2f70c..ea47ce89 100644 --- a/rhino_modules/jsdoc/src/scanner.js +++ b/rhino_modules/jsdoc/src/scanner.js @@ -1,15 +1,15 @@ /** - @module jsdoc/src/scanner - @requires module:common/fs - - @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. + @module jsdoc/src/scanner + @requires module:common/fs + + @author Michael Mathews + @license Apache License 2.0 - See file 'LICENSE.md' in this project. */ var common = { - mixin: require('common/util').mixin, - events: require('common/events') + mixin: require('common/util').mixin, + events: require('common/events') }; var fs = require('fs'); @@ -19,43 +19,42 @@ var fs = require('fs'); @mixes module:common.events */ exports.Scanner = function() { -} +}; common.mixin(exports.Scanner.prototype, common.events); /** - Recursively searches the given searchPaths for js files. - @param {Array.} searchPaths - @param {number} [depth=1] - @fires sourceFileFound + Recursively searches the given searchPaths for js files. + @param {Array.} searchPaths + @param {number} [depth=1] + @fires sourceFileFound */ exports.Scanner.prototype.scan = function(searchPaths, depth, filter) { - var filePaths = [], - that = this; + var filePaths = [], + that = this; - searchPaths = searchPaths || []; - depth = depth || 1; + searchPaths = searchPaths || []; + depth = depth || 1; - searchPaths.forEach(function($) { - var filepath = decodeURIComponent($); + searchPaths.forEach(function($) { + var filepath = decodeURIComponent($); if ( fs.stat(filepath).isFile() ) { filePaths.push(filepath); } else { filePaths = filePaths.concat(fs.ls(filepath, depth)); - } - }); - - filePaths = filePaths.filter(function($) { - return filter.isIncluded($); - }); - - filePaths = filePaths.filter(function($) { - var e = { fileName: $ }; + } + }); + + filePaths = filePaths.filter(function($) { + return filter.isIncluded($); + }); + + filePaths = filePaths.filter(function($) { + var e = { fileName: $ }; that.fire('sourceFileFound', e); - - return !e.defaultPrevented; - }); - - return filePaths; -} + + return !e.defaultPrevented; + }); + return filePaths; +}; diff --git a/rhino_modules/jsdoc/tag.js b/rhino_modules/jsdoc/tag.js index f4a83c50..d404b2e8 100644 --- a/rhino_modules/jsdoc/tag.js +++ b/rhino_modules/jsdoc/tag.js @@ -70,8 +70,8 @@ function parseParamText(tagText) { @param {object=} meta */ exports.Tag = function(tagTitle, tagBody, meta) { - var tagDef = jsdoc.tag.dictionary.lookUp(tagTitle), - meta = meta || {}; + var tagDef = jsdoc.tag.dictionary.lookUp(tagTitle); + meta = meta || {}; this.originalTitle = trim(tagTitle); @@ -137,4 +137,4 @@ exports.Tag = function(tagTitle, tagBody, meta) { throw e; } } -} +}; diff --git a/rhino_modules/jsdoc/tag/dictionary.js b/rhino_modules/jsdoc/tag/dictionary.js index a93b9dba..033e6134 100644 --- a/rhino_modules/jsdoc/tag/dictionary.js +++ b/rhino_modules/jsdoc/tag/dictionary.js @@ -27,7 +27,7 @@ function TagDefinition(title, etc) { TagDefinition.prototype.synonym = function(synonymName) { _synonyms[synonymName.toLowerCase()] = this.title; return this; // chainable -} +}; /** @exports jsdoc/tag/dictionary */ dictionary = { diff --git a/rhino_modules/jsdoc/tag/dictionary/definitions.js b/rhino_modules/jsdoc/tag/dictionary/definitions.js index ae2446d5..ffe749df 100644 --- a/rhino_modules/jsdoc/tag/dictionary/definitions.js +++ b/rhino_modules/jsdoc/tag/dictionary/definitions.js @@ -1,10 +1,10 @@ /*global app: true, env: true */ /** - Define tags that are known in JSDoc. - @module jsdoc/tag/dictionary/definitions + Define tags that are known in JSDoc. + @module jsdoc/tag/dictionary/definitions - @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. + @author Michael Mathews + @license Apache License 2.0 - See file 'LICENSE.md' in this project. */ /** @private */ @@ -66,7 +66,7 @@ function setDocletNameToFilename(doclet, tag) { for (var i = 0, len = env.opts._.length; i < len; i++) { if (name.indexOf(env.opts._[i]) === 0) { name = name.replace(env.opts._[0], ''); - break + break; } } doclet.name = name; @@ -224,31 +224,31 @@ exports.defineTags = function(dictionary) { } }); - dictionary.defineTag('default', { + dictionary.defineTag('default', { onTagged: function(doclet, tag) { if (tag.value) { - doclet.defaultvalue = tag.value; - } - else if (doclet.meta && doclet.meta.code && typeof doclet.meta.code.value !== 'undefined') { - if (doclet.meta.code.type && /STRING|NUMBER|NAME|TRUE|FALSE/.test(doclet.meta.code.type)) { - doclet.defaultvalue = doclet.meta.code.value; - if (doclet.meta.code.type === 'STRING') { - // TODO: handle escaped quotes in values - doclet.defaultvalue = '"'+doclet.defaultvalue.replace(/"/g, '\\"')+'"' - } - - if (doclet.defaultvalue === 'TRUE' || doclet.defaultvalue == 'FALSE') { - doclet.defaultvalue = doclet.defaultvalue.toLowerCase(); - } - } - else if (doclet.meta.code.type === 'NULL') { - // TODO: handle escaped quotes in values - doclet.defaultvalue = 'null' - } - } + doclet.defaultvalue = tag.value; + } + else if (doclet.meta && doclet.meta.code && typeof doclet.meta.code.value !== 'undefined') { + if (doclet.meta.code.type && /STRING|NUMBER|NAME|TRUE|FALSE/.test(doclet.meta.code.type)) { + doclet.defaultvalue = doclet.meta.code.value; + if (doclet.meta.code.type === 'STRING') { + // TODO: handle escaped quotes in values + doclet.defaultvalue = '"'+doclet.defaultvalue.replace(/"/g, '\\"')+'"'; + } + + if (doclet.defaultvalue === 'TRUE' || doclet.defaultvalue == 'FALSE') { + doclet.defaultvalue = doclet.defaultvalue.toLowerCase(); + } + } + else if (doclet.meta.code.type === 'NULL') { + // TODO: handle escaped quotes in values + doclet.defaultvalue = 'null'; + } + } } }) - .synonym('defaultvalue'); + .synonym('defaultvalue'); dictionary.defineTag('deprecated', { // value is optional @@ -440,7 +440,9 @@ exports.defineTags = function(dictionary) { onTagged: function(doclet, tag) { setDocletKindToTitle(doclet, tag); setDocletNameToValue(doclet, tag); - doclet.name || setDocletNameToFilename(doclet, tag); + if (!doclet.name) { + setDocletNameToFilename(doclet, tag); + } if (tag.value && tag.value.type) { doclet.type = tag.value.type; } @@ -645,4 +647,4 @@ exports.defineTags = function(dictionary) { doclet.version = tag.value; } }); -} +}; diff --git a/rhino_modules/jsdoc/tag/type.js b/rhino_modules/jsdoc/tag/type.js index 2c73a098..62562a1d 100644 --- a/rhino_modules/jsdoc/tag/type.js +++ b/rhino_modules/jsdoc/tag/type.js @@ -1,133 +1,133 @@ /** - @module jsdoc/tag/type + @module jsdoc/tag/type - @author Michael Mathews - @license Apache License 2.0 - See file 'LICENSE.md' in this project. + @author Michael Mathews + @license Apache License 2.0 - See file 'LICENSE.md' in this project. */ function parseOptional(type) { - var optional = null; + var optional = null; - // {sometype=} means optional - if ( /(.+)=$/.test(type) ) { - type = RegExp.$1; - optional = true; - } + // {sometype=} means optional + if ( /(.+)=$/.test(type) ) { + type = RegExp.$1; + optional = true; + } - return { type: type, optional: optional }; + return { type: type, optional: optional }; } function parseNullable(type) { - var nullable = null; + var nullable = null; - // {?sometype} means nullable, {!sometype} means not-nullable - if ( /^([\?\!])(.+)$/.test(type) ) { - type = RegExp.$2; - nullable = (RegExp.$1 === '?')? true : false; - } + // {?sometype} means nullable, {!sometype} means not-nullable + if ( /^([\?\!])(.+)$/.test(type) ) { + type = RegExp.$2; + nullable = (RegExp.$1 === '?')? true : false; + } - return { type: type, nullable: nullable }; + return { type: type, nullable: nullable }; } function parseVariable(type) { - var variable = null; + var variable = null; - // {...sometype} means variable number of that type - if ( /^(\.\.\.)(.+)$/.test(type) ) { - type = RegExp.$2; - variable = true; - } + // {...sometype} means variable number of that type + if ( /^(\.\.\.)(.+)$/.test(type) ) { + type = RegExp.$2; + variable = true; + } - return { type: type, variable: variable }; + return { type: type, variable: variable }; } function parseTypes(type) { - var types = []; + var types = []; - if ( type.indexOf('|') !== -1 ) { - // remove optional parens, like: { ( string | number ) } - // see: http://code.google.com/closure/compiler/docs/js-for-compiler.html#types - if ( /^\s*\(\s*(.+)\s*\)\s*$/.test(type) ) { - type = RegExp.$1; - } - types = type.split(/\s*\|\s*/g); - } - else if (type) { - types = [type]; - } + if ( type.indexOf('|') !== -1 ) { + // remove optional parens, like: { ( string | number ) } + // see: http://code.google.com/closure/compiler/docs/js-for-compiler.html#types + if ( /^\s*\(\s*(.+)\s*\)\s*$/.test(type) ) { + type = RegExp.$1; + } + types = type.split(/\s*\|\s*/g); + } + else if (type) { + types = [type]; + } - return types; + return types; } /** @private */ function trim(text) { - return text.trim(); + return text.trim(); } function getTagType(tagValue) { - var type = '', - text = '', - count = 0; + var type = '', + text = '', + count = 0; - // type expressions start with '{' - if (tagValue[0] === '{') { - count++; + // type expressions start with '{' + if (tagValue[0] === '{') { + count++; - // find matching closer '}' - for (var i = 1, leni = tagValue.length; i < leni; i++) { - if (tagValue[i] === '\\') { i++; continue; } // backslash escapes the next character + // find matching closer '}' + for (var i = 1, leni = tagValue.length; i < leni; i++) { + if (tagValue[i] === '\\') { i++; continue; } // backslash escapes the next character - if (tagValue[i] === '{') { count++; } - else if (tagValue[i] === '}') { count--; } + if (tagValue[i] === '{') { count++; } + else if (tagValue[i] === '}') { count--; } - if (count === 0) { - type = trim(tagValue.slice(1, i)) - .replace(/\\\{/g, '{') // unescape escaped curly braces - .replace(/\\\}/g, '}'); - text = trim(tagValue.slice(i+1)); - break; - } - } - } - return { type: type, text: text }; + if (count === 0) { + type = trim(tagValue.slice(1, i)) + .replace(/\\\{/g, '{') // unescape escaped curly braces + .replace(/\\\}/g, '}'); + text = trim(tagValue.slice(i+1)); + break; + } + } + } + return { type: type, text: text }; } exports.getTagType = getTagType; /** - @param {string} tagValue - @returns {object} Hash with type, text, optional, nullable, and variable properties + @param {string} tagValue + @returns {object} Hash with type, text, optional, nullable, and variable properties */ exports.parse = function(tagValue) { - if (typeof tagValue !== 'string') { tagValue = ''; } - var type = '', - text = '', - tagType, - optional, - nullable, - variable; - - tagType = getTagType(tagValue); + if (typeof tagValue !== 'string') { tagValue = ''; } + var type = '', + text = '', + tagType, + optional, + nullable, + variable; + + tagType = getTagType(tagValue); type = tagType.type; if (tagType.type === '') { text = tagValue; } else { text = tagType.text; } - - optional = parseOptional(type); - nullable = parseNullable(type); - variable = parseVariable(type); - type = variable.type || nullable.type || optional.type; + + optional = parseOptional(type); + nullable = parseNullable(type); + variable = parseVariable(type); + type = variable.type || nullable.type || optional.type; - type = parseTypes(type); // make it into an array + type = parseTypes(type); // make it into an array - return { - type: type, - text: text, - optional: optional.optional, - nullable: nullable.nullable, - variable: variable.variable - }; -} + return { + type: type, + text: text, + optional: optional.optional, + nullable: nullable.nullable, + variable: variable.variable + }; +}; diff --git a/rhino_modules/jsdoc/tag/validator.js b/rhino_modules/jsdoc/tag/validator.js index 13dfb326..928bfdd7 100644 --- a/rhino_modules/jsdoc/tag/validator.js +++ b/rhino_modules/jsdoc/tag/validator.js @@ -48,4 +48,4 @@ exports.validate = function(tag, meta) { throw new TagValueNotPermittedError(tag.title, meta); } } -} +}; diff --git a/rhino_modules/jsdoc/tutorial/resolver.js b/rhino_modules/jsdoc/tutorial/resolver.js index e587e64f..3cbc05d3 100644 --- a/rhino_modules/jsdoc/tutorial/resolver.js +++ b/rhino_modules/jsdoc/tutorial/resolver.js @@ -108,7 +108,7 @@ exports.resolve = function() { } item = conf[name]; - current = tutorials[name] + current = tutorials[name]; // set title if (item.title) { diff --git a/rhino_modules/jsdoc/util/dumper.js b/rhino_modules/jsdoc/util/dumper.js index 230fecae..bb8287cd 100644 --- a/rhino_modules/jsdoc/util/dumper.js +++ b/rhino_modules/jsdoc/util/dumper.js @@ -48,7 +48,7 @@ seen.has = function(object) { if (seen[i] === object) { return true; } } return false; -} +}; function stringify(o) { return JSON.stringify(o); @@ -90,19 +90,18 @@ function isObject(o) { } function walk(object) { - var value; - - if ( value = getValue(object) ) { + var value = getValue(object); + if (value) { output += value + ',\n'; } else if ( isUnwalkable(object) ) { - output += ',\n' + output += ',\n'; } else if ( isRegExp(object) ) { - output += ',\n' + output += ',\n'; } else if ( isDate(object) ) { - output += ',\n' + output += ',\n'; } else if ( isFunction(object) ) { output += ',\n'; @@ -153,4 +152,4 @@ exports.dump = function(object) { walk(object); outdent(false); return output; -} +}; diff --git a/rhino_modules/jsdoc/util/templateHelper.js b/rhino_modules/jsdoc/util/templateHelper.js index 036a50d8..2589b171 100644 --- a/rhino_modules/jsdoc/util/templateHelper.js +++ b/rhino_modules/jsdoc/util/templateHelper.js @@ -46,7 +46,7 @@ function strToFilename(str) { // allow for namespace prefix var basename = str.replace(nsprefix, '$1-'); - if ( /[^$a-z0-9._-]/i.test(basename) ) { + if ( /[^$a-z0-9._\-]/i.test(basename) ) { return hash.hex_md5(str).substr(0, 10); } return makeFilenameUnique(basename, str); @@ -61,7 +61,7 @@ var linkMap = { exports.registerLink = function(longname, url) { linkMap.longnameToUrl[longname] = url; linkMap.urlToLongname[url] = longname; -} +}; function toLink(longname, content) { if (!longname) { @@ -81,8 +81,8 @@ function toLink(longname, content) { } } else { - url = linkMap.longnameToUrl[longname]; - } + url = linkMap.longnameToUrl[longname]; + } content = content || longname; @@ -108,7 +108,7 @@ var toTutorial = exports.toTutorial = function(tutorial, content) { content = content || node.title; return ''+content+''; -} +}; /** Find symbol {@link ...} and {@tutorial ...} strings in text and turn into html links */ exports.resolveLinks = function(str) { @@ -125,27 +125,29 @@ exports.resolveLinks = function(str) { ); return str; -} +}; /** Turn a doclet into a URL. */ exports.createLink = function(doclet) { - var url = ''; + var url = '', + longname, + filename; if (containers.indexOf(doclet.kind) < 0) { - var longname = doclet.longname, - filename = strToFilename(doclet.memberof || exports.globalName); + longname = doclet.longname; + filename = strToFilename(doclet.memberof || exports.globalName); url = filename + exports.fileExtension + '#' + getNamespace(doclet.kind) + doclet.name; } else { - var longname = doclet.longname, - filename = strToFilename(longname); + longname = doclet.longname; + filename = strToFilename(longname); url = filename + exports.fileExtension; } return url; -} +}; exports.longnameToUrl = linkMap.longnameToUrl; diff --git a/templates/default/publish.js b/templates/default/publish.js index 58a0ba12..c9e97bc2 100644 --- a/templates/default/publish.js +++ b/templates/default/publish.js @@ -222,7 +222,7 @@ addSignatureReturns(doclet); addAttribs(doclet); } - }) + }); // do this after the urls have all been generated data.forEach(function(doclet) { @@ -232,12 +232,12 @@ if (doclet.kind === 'member') { addSignatureType(doclet); - addAttribs(doclet) + addAttribs(doclet); } if (doclet.kind === 'constant') { addSignatureType(doclet); - addAttribs(doclet) + addAttribs(doclet); } }); @@ -392,7 +392,7 @@ html = helper.resolveLinks(html); // turn {@link foo} into foo - fs.writeFileSync(path, html) + fs.writeFileSync(path, html); } for (var longname in helper.longnameToUrl) { @@ -444,7 +444,7 @@ // yes, you can use {@link} in tutorials too! html = helper.resolveLinks(html); // turn {@link foo} into foo - fs.writeFileSync(path, html) + fs.writeFileSync(path, html); } // tutorials can have only one parent so there is no risk for loops @@ -455,7 +455,7 @@ }); } saveChildren(tutorials); - } + }; function hashToLink(doclet, hash) { if ( !/^(#.+)/.test(hash) ) { return hash; } diff --git a/templates/haruki/publish.js b/templates/haruki/publish.js index fcfc8e1a..706eae75 100644 --- a/templates/haruki/publish.js +++ b/templates/haruki/publish.js @@ -36,7 +36,7 @@ console.log('The only -d destination option currently supported is "console"!'); } - } + }; function graft(parentNode, childNodes, parentLongname, parentName) { childNodes