mirror of
https://github.com/jsdoc/jsdoc.git
synced 2025-12-08 19:46:11 +00:00
use Object.keys instead of Object.hasOwnProperty where possible
This commit is contained in:
parent
e0ffe52411
commit
f97803ad69
@ -2,21 +2,21 @@ var hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
|
||||
function mapDependencies(index) {
|
||||
var doclets, doc, len, dependencies = {};
|
||||
for (var name in index) {
|
||||
if ( hasOwnProp.call(index, name) ) {
|
||||
doclets = index[name];
|
||||
for (var i=0, ii=doclets.length; i<ii; ++i) {
|
||||
doc = doclets[i];
|
||||
if (doc.kind === "class" || doc.kind === "external") {
|
||||
dependencies[name] = {};
|
||||
len = doc.augments && doc.augments.length || 0;
|
||||
for (var j=0; j<len; ++j) {
|
||||
dependencies[name][doc.augments[j]] = true;
|
||||
}
|
||||
|
||||
Object.keys(index).forEach(function(name) {
|
||||
doclets = index[name];
|
||||
for (var i = 0, ii = doclets.length; i < ii; ++i) {
|
||||
doc = doclets[i];
|
||||
if (doc.kind === "class" || doc.kind === "external") {
|
||||
dependencies[name] = {};
|
||||
len = doc.augments && doc.augments.length || 0;
|
||||
for (var j = 0; j < len; ++j) {
|
||||
dependencies[name][doc.augments[j]] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return dependencies;
|
||||
}
|
||||
|
||||
@ -27,24 +27,28 @@ function Sorter(dependencies) {
|
||||
}
|
||||
|
||||
Sorter.prototype.visit = function(key) {
|
||||
var self = this;
|
||||
|
||||
if (!(key in this.visited)) {
|
||||
this.visited[key] = true;
|
||||
|
||||
for (var path in this.dependencies[key]) {
|
||||
if (hasOwnProp.call(this.dependencies[key], path)) {
|
||||
this.visit(path);
|
||||
}
|
||||
if (this.dependencies[key]) {
|
||||
Object.keys(this.dependencies[key]).forEach(function(path) {
|
||||
self.visit(path);
|
||||
});
|
||||
}
|
||||
|
||||
this.sorted.push(key);
|
||||
}
|
||||
};
|
||||
|
||||
Sorter.prototype.sort = function() {
|
||||
for (var key in this.dependencies) {
|
||||
if (hasOwnProp.call(this.dependencies, key)) {
|
||||
this.visit(key);
|
||||
}
|
||||
}
|
||||
var self = this;
|
||||
|
||||
Object.keys(this.dependencies).forEach(function(key) {
|
||||
self.visit(key);
|
||||
});
|
||||
|
||||
return this.sorted;
|
||||
};
|
||||
|
||||
@ -55,7 +59,7 @@ function sort(dependencies) {
|
||||
|
||||
function getMembers(longname, docs) {
|
||||
var candidate, members = [];
|
||||
for (var i=0, ii=docs.length; i<ii; ++i) {
|
||||
for (var i = 0, ii = docs.length; i < ii; ++i) {
|
||||
candidate = docs[i];
|
||||
if (candidate.memberof === longname && candidate.scope === "instance") {
|
||||
members.push(candidate);
|
||||
|
||||
@ -8,20 +8,16 @@
|
||||
@module jsdoc/config
|
||||
*/
|
||||
|
||||
var hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
|
||||
function mergeRecurse(target, source) {
|
||||
for (var p in source) {
|
||||
if ( hasOwnProp.call(source, p) ) {
|
||||
if ( source[p].constructor === Object ) {
|
||||
if ( !target[p] ) { target[p] = {}; }
|
||||
mergeRecurse(target[p], source[p]);
|
||||
}
|
||||
else {
|
||||
target[p] = source[p];
|
||||
}
|
||||
Object.keys(source).forEach(function(p) {
|
||||
if ( source[p].constructor === Object ) {
|
||||
if ( !target[p] ) { target[p] = {}; }
|
||||
mergeRecurse(target[p], source[p]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
target[p] = source[p];
|
||||
}
|
||||
});
|
||||
|
||||
return target;
|
||||
}
|
||||
|
||||
@ -43,11 +43,9 @@ function fixTypes(item) {
|
||||
result[i] = fixTypes(result[i]);
|
||||
}
|
||||
} else if (typeof result === 'object') {
|
||||
for (var prop in result) {
|
||||
if ( hasOwnProp.call(result, prop) ) {
|
||||
result[prop] = fixTypes(result[prop]);
|
||||
}
|
||||
}
|
||||
Object.keys(result).forEach(function(prop) {
|
||||
result[prop] = fixTypes(result[prop]);
|
||||
});
|
||||
} else {
|
||||
result = castTypes(result);
|
||||
}
|
||||
@ -58,11 +56,9 @@ function fixTypes(item) {
|
||||
function parseQuery(str) {
|
||||
var result = querystring.parse(str);
|
||||
|
||||
for (var prop in result) {
|
||||
if ( hasOwnProp.call(result, prop) ) {
|
||||
result[prop] = fixTypes(result[prop]);
|
||||
}
|
||||
}
|
||||
Object.keys(result).forEach(function(prop) {
|
||||
result[prop] = fixTypes(result[prop]);
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -7,8 +7,6 @@
|
||||
var error = require('jsdoc/util/error');
|
||||
var path = require('jsdoc/path');
|
||||
|
||||
var hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
|
||||
exports.installPlugins = function(plugins, p) {
|
||||
var dictionary = require('jsdoc/tag/dictionary');
|
||||
var parser = p;
|
||||
@ -28,11 +26,9 @@ exports.installPlugins = function(plugins, p) {
|
||||
// allow user-defined plugins to...
|
||||
//...register event handlers
|
||||
if (plugin.handlers) {
|
||||
for (eventName in plugin.handlers) {
|
||||
if ( hasOwnProp.call(plugin.handlers, eventName) ) {
|
||||
parser.on(eventName, plugin.handlers[eventName]);
|
||||
}
|
||||
}
|
||||
Object.keys(plugin.handlers).forEach(function(eventName) {
|
||||
parser.on(eventName, plugin.handlers[eventName]);
|
||||
});
|
||||
}
|
||||
|
||||
//...define tags
|
||||
|
||||
@ -14,15 +14,14 @@ var dictionary;
|
||||
|
||||
/** @private */
|
||||
function TagDefinition(title, etc) {
|
||||
var self = this;
|
||||
etc = etc || {};
|
||||
|
||||
this.title = dictionary.normalise(title);
|
||||
|
||||
for (var p in etc) {
|
||||
if ( hasOwnProp.call(etc, p) ) {
|
||||
this[p] = etc[p];
|
||||
}
|
||||
}
|
||||
Object.keys(etc).forEach(function(p) {
|
||||
self[p] = etc[p];
|
||||
});
|
||||
}
|
||||
|
||||
/** @private */
|
||||
|
||||
@ -4,17 +4,17 @@
|
||||
*/
|
||||
var doop = exports.doop = function(o) {
|
||||
var clone,
|
||||
hasOwnProp = Object.prototype.hasOwnProperty,
|
||||
prop;
|
||||
|
||||
if (o instanceof Object && o.constructor != Function) {
|
||||
clone = o instanceof Array ? [] : {};
|
||||
|
||||
for (prop in o){
|
||||
if ( hasOwnProp.call(o, prop) ) {
|
||||
clone[prop] = (o[prop] instanceof Object)? doop(o[prop]) : o[prop];
|
||||
}
|
||||
}
|
||||
Object.keys(o).forEach(function(prop) {
|
||||
clone[prop] = (o[prop] instanceof Object) ? doop(o[prop]) : o[prop];
|
||||
});
|
||||
|
||||
return clone;
|
||||
}
|
||||
|
||||
return o;
|
||||
};
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
*/
|
||||
var conf = env.conf.markdown;
|
||||
var defaultTags = [ "classdesc", "description", "params", "properties", "returns", "see"];
|
||||
var hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var parse = require('jsdoc/util/markdown').getParser();
|
||||
var tags = [];
|
||||
var excludeTags = [];
|
||||
@ -19,7 +20,7 @@ var excludeTags = [];
|
||||
*/
|
||||
function process(doclet) {
|
||||
tags.forEach(function(tag) {
|
||||
if (!doclet.hasOwnProperty(tag)) {
|
||||
if ( !hasOwnProp.call(doclet, tag) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@ -503,34 +503,32 @@ exports.publish = function(taffyData, opts, tutorials) {
|
||||
var mixins = taffy(members.mixins);
|
||||
var externals = taffy(members.externals);
|
||||
|
||||
for (var longname in helper.longnameToUrl) {
|
||||
if ( hasOwnProp.call(helper.longnameToUrl, longname) ) {
|
||||
var myClasses = helper.find(classes, {longname: longname});
|
||||
if (myClasses.length) {
|
||||
generate('Class: ' + myClasses[0].name, myClasses, helper.longnameToUrl[longname]);
|
||||
}
|
||||
|
||||
var myModules = helper.find(modules, {longname: longname});
|
||||
if (myModules.length) {
|
||||
generate('Module: ' + myModules[0].name, myModules, helper.longnameToUrl[longname]);
|
||||
}
|
||||
|
||||
var myNamespaces = helper.find(namespaces, {longname: longname});
|
||||
if (myNamespaces.length) {
|
||||
generate('Namespace: ' + myNamespaces[0].name, myNamespaces, helper.longnameToUrl[longname]);
|
||||
}
|
||||
|
||||
var myMixins = helper.find(mixins, {longname: longname});
|
||||
if (myMixins.length) {
|
||||
generate('Mixin: ' + myMixins[0].name, myMixins, helper.longnameToUrl[longname]);
|
||||
}
|
||||
|
||||
var myExternals = helper.find(externals, {longname: longname});
|
||||
if (myExternals.length) {
|
||||
generate('External: ' + myExternals[0].name, myExternals, helper.longnameToUrl[longname]);
|
||||
}
|
||||
Object.keys(helper.longnameToUrl).forEach(function(longname) {
|
||||
var myClasses = helper.find(classes, {longname: longname});
|
||||
if (myClasses.length) {
|
||||
generate('Class: ' + myClasses[0].name, myClasses, helper.longnameToUrl[longname]);
|
||||
}
|
||||
}
|
||||
|
||||
var myModules = helper.find(modules, {longname: longname});
|
||||
if (myModules.length) {
|
||||
generate('Module: ' + myModules[0].name, myModules, helper.longnameToUrl[longname]);
|
||||
}
|
||||
|
||||
var myNamespaces = helper.find(namespaces, {longname: longname});
|
||||
if (myNamespaces.length) {
|
||||
generate('Namespace: ' + myNamespaces[0].name, myNamespaces, helper.longnameToUrl[longname]);
|
||||
}
|
||||
|
||||
var myMixins = helper.find(mixins, {longname: longname});
|
||||
if (myMixins.length) {
|
||||
generate('Mixin: ' + myMixins[0].name, myMixins, helper.longnameToUrl[longname]);
|
||||
}
|
||||
|
||||
var myExternals = helper.find(externals, {longname: longname});
|
||||
if (myExternals.length) {
|
||||
generate('External: ' + myExternals[0].name, myExternals, helper.longnameToUrl[longname]);
|
||||
}
|
||||
});
|
||||
|
||||
// TODO: move the tutorial functions to templateHelper.js
|
||||
function generateTutorial(title, tutorial, filename) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user