documentationjs / documentationjs/documentation

empty @inner tag (in wrong place?) crashes very ugly

Offen
#652 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
JavaScript
Sterne
5.8k
Forks
481
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

I developed an AMD module that uses an internal function. I thought it would be nice to tag the documentation of that function with the @inner tag (though it might not be entirely valid). That crashes documentationjs without clean error. Adding some text on the same line after @inner removes the crash.

Code sample:

```
define([], function() {
DoSomething();

/**
* My Object of Documentation Desire
* @exports myObject
*/
var myObject = {};

return myObject;

/**
* DoSomething - Might do something
*
* @return {boolean} Did we really do anything?
* @inner
*/
function DoSomething() {
return false;
}
});
```
Error Message:

```
documentation build src/documentationbug.js -f html -o docs2/
/usr/local/lib/node_modules/documentation/lib/commands/build.js:66
throw err;
^

TypeError: Cannot convert undefined or null to object
at hasOwnProperty (native)
at /usr/local/lib/node_modules/documentation/lib/hierarchy.js:68:27
at Array.forEach (native)
at module.exports (/usr/local/lib/node_modules/documentation/lib/hierarchy.js:38:12)
at buildSync (/usr/local/lib/node_modules/documentation/index.js:221:5)
at /usr/local/lib/node_modules/documentation/index.js:147:16
at /usr/local/lib/node_modules/documentation/lib/input/dependency.js:63:5
at ConcatStream. (/usr/local/lib/node_modules/documentation/node_modules/concat-stream/index.js:36:43)
at emitNone (events.js:72:20)
at ConcatStream.emit (events.js:166:7)

```

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Reproduziere den Fehler mit dem bereitgestellten Dokumentations-Build-Befehl und dem AMD-Beispiel. Beginne mit der Untersuchung von lib/hierarchy.js um Zeile 68 und verfolge anschließend, wie build.js dorthin gelangt; vergleiche die Behandlung des leeren @inner-Tags mit einem Tag, das Text enthält. Als erledigt gilt die Aufgabe, wenn das Beispiel nicht mehr mit einem unbehandelten TypeError abstürzt und das resultierende Verhalten durch einen passenden Test abgedeckt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript
Bereich
documentation, tooling
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.