// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`Check that external modules could parse as input 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": SourceLocation {
        "end": Position {
          "column": 1,
          "index": 147,
          "line": 10,
        },
        "filename": undefined,
        "identifierName": undefined,
        "start": Position {
          "column": 0,
          "index": 113,
          "line": 8,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "I am in ",
            },
            Object {
              "type": "inlineCode",
              "value": "external.input.js",
            },
            Object {
              "type": "text",
              "value": ".",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": SourceLocation {
      "end": Position {
        "column": 3,
        "index": 112,
        "line": 7,
      },
      "filename": undefined,
      "identifierName": undefined,
      "start": Position {
        "column": 0,
        "index": 73,
        "line": 5,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "foo",
    "namespace": "foo",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "foo",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": SourceLocation {
        "end": Position {
          "column": 2,
          "index": 195,
          "line": 10,
        },
        "filename": undefined,
        "identifierName": undefined,
        "start": Position {
          "column": 0,
          "index": 118,
          "line": 7,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function returns the number one.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": SourceLocation {
      "end": Position {
        "column": 3,
        "index": 117,
        "line": 6,
      },
      "filename": undefined,
      "identifierName": undefined,
      "start": Position {
        "column": 0,
        "index": 38,
        "line": 3,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "main",
    "namespace": "main",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "main",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "numberone",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "numberone",
        "lineNumber": 2,
        "title": "returns",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": SourceLocation {
        "end": Position {
          "column": 2,
          "index": 144,
          "line": 8,
        },
        "filename": undefined,
        "identifierName": undefined,
        "start": Position {
          "column": 0,
          "index": 80,
          "line": 5,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function returns the number one.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": SourceLocation {
      "end": Position {
        "column": 3,
        "index": 79,
        "line": 4,
      },
      "filename": undefined,
      "identifierName": undefined,
      "start": Position {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "index",
    "namespace": "index",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "index",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "numberone",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "numberone",
        "lineNumber": 2,
        "title": "returns",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`Use Source attribute only 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": SourceLocation {
        "end": Position {
          "column": 1,
          "index": 222,
          "line": 18,
        },
        "filename": undefined,
        "identifierName": undefined,
        "start": Position {
          "column": 0,
          "index": 87,
          "line": 6,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This Vue Component is a test",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [
      Object {
        "message": "could not determine @name for hierarchy",
      },
    ],
    "examples": Array [],
    "implements": Array [],
    "loc": SourceLocation {
      "end": Position {
        "column": 3,
        "index": 86,
        "line": 5,
      },
      "filename": undefined,
      "identifierName": undefined,
      "start": Position {
        "column": 0,
        "index": 1,
        "line": 2,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "",
    "namespace": "",
    "params": Array [],
    "path": Array [
      Object {
        "kind": undefined,
        "name": "",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "vue-tested component",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "vue-tested",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "vue-tested component",
        "lineNumber": 2,
        "title": "returns",
        "type": Object {
          "name": "vue-tested",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": SourceLocation {
        "end": Position {
          "column": 5,
          "index": 216,
          "line": 16,
        },
        "filename": undefined,
        "identifierName": undefined,
        "start": Position {
          "column": 4,
          "index": 161,
          "line": 13,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This is a number",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [
      Object {
        "commentLineNumber": 0,
        "message": "@memberof reference to .props not found",
      },
    ],
    "examples": Array [],
    "implements": Array [],
    "loc": SourceLocation {
      "end": Position {
        "column": 7,
        "index": 156,
        "line": 12,
      },
      "filename": undefined,
      "identifierName": undefined,
      "start": Position {
        "column": 4,
        "index": 121,
        "line": 10,
      },
    },
    "memberof": ".props",
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "myNumber",
    "namespace": ".myNumber",
    "params": Array [],
    "path": Array [
      Object {
        "kind": undefined,
        "name": "myNumber",
        "scope": "static",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "scope": "static",
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`Vue file 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": SourceLocation {
        "end": Position {
          "column": 1,
          "index": 218,
          "line": 20,
        },
        "filename": undefined,
        "identifierName": undefined,
        "start": Position {
          "column": 0,
          "index": 88,
          "line": 7,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This Vue Component is a test",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "loc": SourceLocation {
      "end": Position {
        "column": 3,
        "index": 87,
        "line": 6,
      },
      "filename": undefined,
      "identifierName": undefined,
      "start": Position {
        "column": 0,
        "index": 2,
        "line": 3,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "vue.input",
    "namespace": "vue.input",
    "params": Array [],
    "path": Array [
      Object {
        "kind": undefined,
        "name": "vue.input",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "vue-tested component",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "vue-tested",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "vue-tested component",
        "lineNumber": 2,
        "title": "returns",
        "type": Object {
          "name": "vue-tested",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": SourceLocation {
        "end": Position {
          "column": 1,
          "index": 216,
          "line": 19,
        },
        "filename": undefined,
        "identifierName": undefined,
        "start": Position {
          "column": 0,
          "index": 119,
          "line": 10,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "props",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [
      Object {
        "commentLineNumber": 0,
        "message": "@memberof reference to vue.input not found",
      },
    ],
    "examples": Array [],
    "implements": Array [],
    "loc": SourceLocation {
      "end": Position {
        "column": 12,
        "index": 118,
        "line": 9,
      },
      "filename": undefined,
      "identifierName": undefined,
      "start": Position {
        "column": 0,
        "index": 106,
        "line": 9,
      },
    },
    "memberof": "vue.input",
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": SourceLocation {
              "end": Position {
                "column": 3,
                "index": 214,
                "line": 18,
              },
              "filename": undefined,
              "identifierName": undefined,
              "start": Position {
                "column": 2,
                "index": 165,
                "line": 15,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "This is a number",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "loc": SourceLocation {
            "end": Position {
              "column": 5,
              "index": 162,
              "line": 14,
            },
            "filename": undefined,
            "identifierName": undefined,
            "start": Position {
              "column": 2,
              "index": 131,
              "line": 12,
            },
          },
          "memberof": "vue.input.props",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "myNumber",
          "namespace": ".props.myNumber",
          "params": Array [],
          "path": Array [
            Object {
              "kind": undefined,
              "name": "props",
              "scope": "static",
            },
            Object {
              "kind": undefined,
              "name": "myNumber",
              "scope": "static",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "static",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
    },
    "name": "props",
    "namespace": ".props",
    "params": Array [],
    "path": Array [
      Object {
        "kind": undefined,
        "name": "props",
        "scope": "static",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "scope": "static",
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`Vue file 2`] = `Array []`;

exports[`config 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

## MyClass

This is my class, a demo thing.

### Properties

*   \`howMany\` **[number][1]** how many things it contains

### getFoo

Get the number 42

#### Parameters

*   \`getIt\` **[boolean][2]** whether to get the number

Returns **[number][1]** forty-two

### getUndefined

Get undefined

Returns **[undefined][3]** does not return anything.

## Hello

World

[1]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number

[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean

[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined
"
`;

exports[`config with nested sections 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

## Alpha



### third

This function is third

### first

This function is first

### first

forgot a memberof here... sure hope that doesn't crash anything!

## Bravo

Contains a subsection!

### Charlie

Second is in here

#### second

This class has some members

##### foo

second::foo

###### Parameters

*   \`pork\` &#x20;

##### bar

second::bar

###### Parameters

*   \`beans\` &#x20;
*   \`rice\` &#x20;

## AClass

### second

shares a name with a top level item referenced in the TOC... sure hope
that doesn't crash anything!
"
`;

exports[`git option 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "github": Object {
        "path": "[github]",
        "url": "[github]",
      },
      "loc": SourceLocation {
        "end": Position {
          "column": 2,
          "index": 144,
          "line": 8,
        },
        "filename": undefined,
        "identifierName": undefined,
        "start": Position {
          "column": 0,
          "index": 80,
          "line": 5,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function returns the number one.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": SourceLocation {
      "end": Position {
        "column": 3,
        "index": 79,
        "line": 4,
      },
      "filename": undefined,
      "identifierName": undefined,
      "start": Position {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "simple.input",
    "namespace": "simple.input",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "simple.input",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "numberone",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "numberone",
        "lineNumber": 2,
        "title": "returns",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`git option 2`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

## simple.input

[\\\\[github\\\\]:5-8][1]

This function returns the number one.

Returns **[number][2]** numberone

[1]: [github] \\"Source code on GitHub\\"

[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
"
`;

exports[`highlightAuto md output 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

## multilanguage.input

**Extends Foo, Bar**

This function returns the number one.

### Examples

\`\`\`js
var myFoo = new Foo('[data-foo]');
myFoo.foo(42);
\`\`\`

\`\`\`html
<p data-foo=bar>Data-Foo Element in the dom</p>
\`\`\`

\`\`\`css
[data-foo] {
   background-color: red;
}
\`\`\`

*   Throws **[Error][1]** if you give it something
*   Throws **[TypeError][2]** if you give it something else

Returns **[Number][3]** numberone

[1]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error

[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/TypeError

[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
"
`;

exports[`html nested.input.js 1`] = `
"<!doctype html>
<html lang=\\"en\\">
<head>
  <meta charset='utf-8'>
  <title> | Documentation</title>
  <meta name='description' content='a documentation generator'>
  <meta name='viewport' content='width=device-width,initial-scale=1'>
  <link href='assets/bass.css' rel='stylesheet'>
  <link href='assets/style.css' rel='stylesheet'>
  <link href='assets/github.css' rel='stylesheet'>
  <link href='assets/split.css' rel='stylesheet'>
</head>
<body class='documentation m0'>
    <div class='flex'>
      <div id='split-left' class='overflow-auto fs0 height-viewport-100'>
        <div class='py1 px2'>
          <h3 class='mb0 no-anchor'>documentation</h3>
          <div class='mb1'></div>
          <input
            placeholder='Filter'
            id='filter-input'
            class='col12 block input'
            spellcheck='false'
            autocapitalize='off'
            autocorrect='off'
            type='text' />
          <div id='toc'>
            <ul class='list-reset h5 py1-ul'>
              
                
                <li><a
                  href='#klass'
                  class=\\" toggle-sibling\\">
                  Klass
                  <span class='icon'>▸</span>
                </a>
                
                <div class='toggle-target display-none'>
                  
                  <ul class='list-reset py1-ul pl1'>
                    <li class='h5'><span>Static members</span></li>
                    
                      <li><a
                        href='#klassisclass'
                        class='regular pre-open'>
                        .isClass
                      </a></li>
                    
                      <li><a
                        href='#klassisweird'
                        class='regular pre-open'>
                        .isWeird
                      </a></li>
                    
                      <li><a
                        href='#klassisbuffer'
                        class='regular pre-open'>
                        .isBuffer
                      </a></li>
                    
                      <li><a
                        href='#klassisarrayofbuffers'
                        class='regular pre-open'>
                        .isArrayOfBuffers
                      </a></li>
                    
                      <li><a
                        href='#klassmagic_number'
                        class='regular pre-open'>
                        .MAGIC_NUMBER
                      </a></li>
                    
                    </ul>
                  
                  
                    <ul class='list-reset py1-ul pl1'>
                      <li class='h5'><span>Instance members</span></li>
                      
                      <li><a
                        href='#klassgetfoo'
                        class='regular pre-open'>
                        #getFoo
                      </a></li>
                      
                      <li><a
                        href='#klasswithoptions'
                        class='regular pre-open'>
                        #withOptions
                      </a></li>
                      
                      <li><a
                        href='#klasswithdeepoptions'
                        class='regular pre-open'>
                        #withDeepOptions
                      </a></li>
                      
                    </ul>
                  
                  
                  
                    <ul class='list-reset py1-ul pl1'>
                      <li class='h5'>Events</li>
                      
                        <li><a
                          href='#klasseventevent'
                          class='regular pre-open'>
                          ⓔ event
                        </a></li>
                      
                    </ul>
                  
                </div>
                
                </li>
              
                
                <li><a
                  href='#customerror'
                  class=\\"\\">
                  CustomError
                  
                </a>
                
                </li>
              
                
                <li><a
                  href='#bar'
                  class=\\"\\">
                  bar
                  
                </a>
                
                </li>
              
                
                <li><a
                  href='#bar2'
                  class=\\"\\">
                  bar2
                  
                </a>
                
                </li>
              
                
                <li><a
                  href='#bar3'
                  class=\\"\\">
                  bar3
                  
                </a>
                
                </li>
              
                
                <li><a
                  href='#foo'
                  class=\\" toggle-sibling\\">
                  Foo
                  <span class='icon'>▸</span>
                </a>
                
                <div class='toggle-target display-none'>
                  
                  
                    <ul class='list-reset py1-ul pl1'>
                      <li class='h5'><span>Instance members</span></li>
                      
                      <li><a
                        href='#foobar'
                        class='regular pre-open'>
                        #bar
                      </a></li>
                      
                    </ul>
                  
                  
                  
                </div>
                
                </li>
              
                
                <li><a
                  href='#foobar-1'
                  class=\\" toggle-sibling\\">
                  Foobar
                  <span class='icon'>▸</span>
                </a>
                
                <div class='toggle-target display-none'>
                  
                  
                    <ul class='list-reset py1-ul pl1'>
                      <li class='h5'><span>Instance members</span></li>
                      
                      <li><a
                        href='#foobarbar'
                        class='regular pre-open'>
                        #bar
                      </a></li>
                      
                    </ul>
                  
                  
                  
                </div>
                
                </li>
              
                
                <li><a
                  href='#customstreams'
                  class=\\" toggle-sibling\\">
                  customStreams
                  <span class='icon'>▸</span>
                </a>
                
                <div class='toggle-target display-none'>
                  
                  <ul class='list-reset py1-ul pl1'>
                    <li class='h5'><span>Static members</span></li>
                    
                      <li><a
                        href='#customstreamspassthrough'
                        class='regular pre-open'>
                        .passthrough
                      </a></li>
                    
                    </ul>
                  
                  
                  
                  
                </div>
                
                </li>
              
                
                <li><a
                  href='#tableobj'
                  class=\\"\\">
                  tableObj
                  
                </a>
                
                </li>
              
            </ul>
          </div>
          <div class='mt1 h6 quiet'>
            <a href='https://documentation.js.org/reading-documentation.html'>Need help reading this?</a>
          </div>
        </div>
      </div>
      <div id='split-right' class='relative overflow-auto height-viewport-100'>
        
          
          <section class='p2 mb2 clearfix bg-white minishadow'>

  
  <div class='clearfix'>
    
    <h3 class='fl m0' id='klass'>
      Klass
    </h3>
    
    
  </div>
  

  <p>Creates a new Klass</p>

    <div class='pre p1 fill-light mt0'>new Klass(foo: any)</div>
  
  
    <p>
      Extends
      
        <a href=\\"https://nodejs.org/api/stream.html#stream_class_stream_writable\\">Stream.Writable</a>
      
    </p>
  

  
  
  
  
  
  

  
    <div class='py1 quiet mt1 prose-big'>Parameters</div>
    <div class='prose'>
      
        <div class='space-bottom0'>
          <div>
            <span class='code bold'>foo</span> <code class='quiet'>(any)</code>
	    
          </div>
          
        </div>
      
    </div>
  

  

  

  

  

  

  
    <div class='py1 quiet mt1 prose-big'>Static Members</div>
    <div class=\\"clearfix\\">
  
    <div class='border-bottom' id='klassisclass'>
      <div class=\\"clearfix small pointer toggle-sibling\\">
        <div class=\\"py1 contain\\">
            <a class='icon pin-right py1 dark-link caret-right'>▸</a>
            <span class='code strong strong truncate'>isClass(other, also)</span>
        </div>
      </div>
      <div class=\\"clearfix display-none toggle-target\\">
        <section class='p2 mb2 clearfix bg-white minishadow'>

  

  <p>Decide whether an object is a Klass instance
This is a [klasssic]<a href=\\"#klass\\">Klass</a>
This is a [link to something that does not exist]<a href=\\"DoesNot\\">DoesNot</a></p>

    <div class='pre p1 fill-light mt0'>isClass(other: <a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object\\">Object</a>, also: any): <a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean\\">boolean</a></div>
  
  

  
  
  
  
  
  

  
    <div class='py1 quiet mt1 prose-big'>Parameters</div>
    <div class='prose'>
      
        <div class='space-bottom0'>
          <div>
            <span class='code bold'>other</span> <code class='quiet'>(<a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object\\">Object</a>)</code>
	    
          </div>
          
        </div>
      
        <div class='space-bottom0'>
          <div>
            <span class='code bold'>also</span> <code class='quiet'>(any)</code>
	    
          </div>
          
        </div>
      
    </div>
  

  

  
    
      <div class='py1 quiet mt1 prose-big'>Returns</div>
      <code><a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean\\">boolean</a></code>:
        whether the other thing is a Klass

      
    
  

  

  

  

  

  

  

  
</section>

      </div>
    </div>
  
    <div class='border-bottom' id='klassisweird'>
      <div class=\\"clearfix small pointer toggle-sibling\\">
        <div class=\\"py1 contain\\">
            <a class='icon pin-right py1 dark-link caret-right'>▸</a>
            <span class='code strong strong truncate'>isWeird(other)</span>
        </div>
      </div>
      <div class=\\"clearfix display-none toggle-target\\">
        <section class='p2 mb2 clearfix bg-white minishadow'>

  

  <p>A function that triggers the case where the autolinker doesn't find
the referenced class type</p>

    <div class='pre p1 fill-light mt0'>isWeird(other: Weird): <a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean\\">boolean</a></div>
  
  

  
  
  
  
  
  

  
    <div class='py1 quiet mt1 prose-big'>Parameters</div>
    <div class='prose'>
      
        <div class='space-bottom0'>
          <div>
            <span class='code bold'>other</span> <code class='quiet'>(Weird)</code>
	    
          </div>
          
        </div>
      
    </div>
  

  

  
    
      <div class='py1 quiet mt1 prose-big'>Returns</div>
      <code><a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean\\">boolean</a></code>:
        whether the other thing is a Klass

      
    
  

  

  

  

  

  

  

  
</section>

      </div>
    </div>
  
    <div class='border-bottom' id='klassisbuffer'>
      <div class=\\"clearfix small pointer toggle-sibling\\">
        <div class=\\"py1 contain\\">
            <a class='icon pin-right py1 dark-link caret-right'>▸</a>
            <span class='code strong strong truncate'>isBuffer(buf, size)</span>
        </div>
      </div>
      <div class=\\"clearfix display-none toggle-target\\">
        <section class='p2 mb2 clearfix bg-white minishadow'>

  

  <p>This method takes a Buffer object that will be linked to nodejs.org</p>

    <div class='pre p1 fill-light mt0'>isBuffer(buf: (<a href=\\"https://nodejs.org/api/buffer.html\\">Buffer</a> | <a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String\\">string</a>), size: <a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number\\">number</a>): <a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean\\">boolean</a></div>
  
  

  
  
  
  
  
  

  
    <div class='py1 quiet mt1 prose-big'>Parameters</div>
    <div class='prose'>
      
        <div class='space-bottom0'>
          <div>
            <span class='code bold'>buf</span> <code class='quiet'>((<a href=\\"https://nodejs.org/api/buffer.html\\">Buffer</a> | <a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String\\">string</a>))</code>
	    
          </div>
          
        </div>
      
        <div class='space-bottom0'>
          <div>
            <span class='code bold'>size</span> <code class='quiet'>(<a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number\\">number</a>
            = <code>0</code>)</code>
	    size

          </div>
          
        </div>
      
    </div>
  

  

  
    
      <div class='py1 quiet mt1 prose-big'>Returns</div>
      <code><a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean\\">boolean</a></code>:
        whether the other thing is a Klass

      
    
  

  

  

  

  

  

  

  
</section>

      </div>
    </div>
  
    <div class='border-bottom' id='klassisarrayofbuffers'>
      <div class=\\"clearfix small pointer toggle-sibling\\">
        <div class=\\"py1 contain\\">
            <a class='icon pin-right py1 dark-link caret-right'>▸</a>
            <span class='code strong strong truncate'>isArrayOfBuffers(buffers)</span>
        </div>
      </div>
      <div class=\\"clearfix display-none toggle-target\\">
        <section class='p2 mb2 clearfix bg-white minishadow'>

  

  <p>This method takes an array of buffers and counts them</p>

    <div class='pre p1 fill-light mt0'>isArrayOfBuffers(buffers: <a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array\\">Array</a>&#x3C;<a href=\\"https://nodejs.org/api/buffer.html\\">Buffer</a>>): <a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number\\">number</a></div>
  
  

  
  
  
  
  
  

  
    <div class='py1 quiet mt1 prose-big'>Parameters</div>
    <div class='prose'>
      
        <div class='space-bottom0'>
          <div>
            <span class='code bold'>buffers</span> <code class='quiet'>(<a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array\\">Array</a>&#x3C;<a href=\\"https://nodejs.org/api/buffer.html\\">Buffer</a>>)</code>
	    some buffers

          </div>
          
        </div>
      
    </div>
  

  

  
    
      <div class='py1 quiet mt1 prose-big'>Returns</div>
      <code><a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number\\">number</a></code>:
        how many

      
    
  

  

  

  
    <div class='py1 quiet mt1 prose-big'>Example</div>
    
      
      <pre class='p1 overflow-auto round fill-light'><span class=\\"hljs-keyword\\">var</span> k = <span class=\\"hljs-keyword\\">new</span> <span class=\\"hljs-title class_\\">Klass</span>();
k.<span class=\\"hljs-title function_\\">isArrayOfBuffers</span>();</pre>
    
  

  

  

  

  
</section>

      </div>
    </div>
  
    <div class='border-bottom' id='klassmagic_number'>
      <div class=\\"clearfix small pointer toggle-sibling\\">
        <div class=\\"py1 contain\\">
            <a class='icon pin-right py1 dark-link caret-right'>▸</a>
            <span class='code strong strong truncate'>MAGIC_NUMBER</span>
        </div>
      </div>
      <div class=\\"clearfix display-none toggle-target\\">
        <section class='p2 mb2 clearfix bg-white minishadow'>

  

  <p>A magic number that identifies this Klass.</p>

    <div class='pre p1 fill-light mt0'>MAGIC_NUMBER</div>
  
  

  
  
  
  
  
  

  

  

  

  

  

  

  

  

  

  
</section>

      </div>
    </div>
  
</div>

  

  
    <div class='py1 quiet mt1 prose-big'>Instance Members</div>
    <div class=\\"clearfix\\">
  
    <div class='border-bottom' id='klassgetfoo'>
      <div class=\\"clearfix small pointer toggle-sibling\\">
        <div class=\\"py1 contain\\">
            <a class='icon pin-right py1 dark-link caret-right'>▸</a>
            <span class='code strong strong truncate'>getFoo()</span>
        </div>
      </div>
      <div class=\\"clearfix display-none toggle-target\\">
        <section class='p2 mb2 clearfix bg-white minishadow'>

  

  <p>Get this Klass's foo</p>

    <div class='pre p1 fill-light mt0'>getFoo(): <a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number\\">Number</a></div>
  
  

  
  
  
  
  
  

  

  

  
    
      <div class='py1 quiet mt1 prose-big'>Returns</div>
      <code><a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number\\">Number</a></code>:
        foo

      
    
  

  

  

  
    <div class='py1 quiet mt1 prose-big'>Example</div>
    
      <p><p>this shows you how to getFoo</p>
</p>
      <pre class='p1 overflow-auto round fill-light'><span class=\\"hljs-keyword\\">var</span> x = foo.<span class=\\"hljs-title function_\\">getFoo</span>();</pre>
    
  

  

  

  

  
</section>

      </div>
    </div>
  
    <div class='border-bottom' id='klasswithoptions'>
      <div class=\\"clearfix small pointer toggle-sibling\\">
        <div class=\\"py1 contain\\">
            <a class='icon pin-right py1 dark-link caret-right'>▸</a>
            <span class='code strong strong truncate'>withOptions(options, otherOptions)</span>
        </div>
      </div>
      <div class=\\"clearfix display-none toggle-target\\">
        <section class='p2 mb2 clearfix bg-white minishadow'>

  

  <p>A function with an options parameter</p>

    <div class='pre p1 fill-light mt0'>withOptions(options: <a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object\\">Object</a>, otherOptions: <a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number\\">number</a>?)</div>
  
  

  
  
  
  
  
  

  
    <div class='py1 quiet mt1 prose-big'>Parameters</div>
    <div class='prose'>
      
        <div class='space-bottom0'>
          <div>
            <span class='code bold'>options</span> <code class='quiet'>(<a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object\\">Object</a>)</code>
	    
          </div>
          
          <table class='mt1 mb2 fixed-table h5 col-12'>
            <colgroup>
              <col width='30%' />
              <col width='70%' />
            </colgroup>
            <thead>
              <tr class='bold fill-light'>
                <th>Name</th>
                <th>Description</th>
              </tr>
            </thead>
            <tbody class='mt1'>
              
                <tr>
  <td class='break-word'><span class='code bold'>options.foo</span> <code class='quiet'><a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String\\">string</a></code>
  </td>
  <td class='break-word'><span></span></td>
</tr>


              
                <tr>
  <td class='break-word'><span class='code bold'>options.bar</span> <code class='quiet'><a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number\\">number</a></code>
  </td>
  <td class='break-word'><span></span></td>
</tr>


              
            </tbody>
          </table>
          
        </div>
      
        <div class='space-bottom0'>
          <div>
            <span class='code bold'>otherOptions</span> <code class='quiet'>(<a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number\\">number</a>?)</code>
	    
          </div>
          
        </div>
      
    </div>
  

  

  

  

  

  

  

  

  

  
</section>

      </div>
    </div>
  
    <div class='border-bottom' id='klasswithdeepoptions'>
      <div class=\\"clearfix small pointer toggle-sibling\\">
        <div class=\\"py1 contain\\">
            <a class='icon pin-right py1 dark-link caret-right'>▸</a>
            <span class='code strong strong truncate'>withDeepOptions(options)</span>
        </div>
      </div>
      <div class=\\"clearfix display-none toggle-target\\">
        <section class='p2 mb2 clearfix bg-white minishadow'>

  

  <p>A function with a deep options parameter</p>

    <div class='pre p1 fill-light mt0'>withDeepOptions(options: <a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object\\">Object</a>)</div>
  
  

  
  
  
  
  
  

  
    <div class='py1 quiet mt1 prose-big'>Parameters</div>
    <div class='prose'>
      
        <div class='space-bottom0'>
          <div>
            <span class='code bold'>options</span> <code class='quiet'>(<a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object\\">Object</a>)</code>
	    
          </div>
          
          <table class='mt1 mb2 fixed-table h5 col-12'>
            <colgroup>
              <col width='30%' />
              <col width='70%' />
            </colgroup>
            <thead>
              <tr class='bold fill-light'>
                <th>Name</th>
                <th>Description</th>
              </tr>
            </thead>
            <tbody class='mt1'>
              
                <tr>
  <td class='break-word'><span class='code bold'>options.foo</span> <code class='quiet'><a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String\\">string</a></code>
  </td>
  <td class='break-word'><span></span></td>
</tr>


              
                <tr>
  <td class='break-word'><span class='code bold'>options.bar</span> <code class='quiet'><a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object\\">Object</a></code>
  </td>
  <td class='break-word'><span></span></td>
</tr>

  
    <tr>
  <td class='break-word'><span class='code bold'>options.bar.buz</span> <code class='quiet'><a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String\\">string</a></code>
  </td>
  <td class='break-word'><span></span></td>
</tr>


  


              
            </tbody>
          </table>
          
        </div>
      
    </div>
  

  

  

  

  

  

  

  

  

  
</section>

      </div>
    </div>
  
</div>

  

  

  
    <div class='py1 quiet mt1 prose-big'>Events</div>
    <div class=\\"clearfix\\">
  
    <div class='border-bottom' id='klasseventevent'>
      <div class=\\"clearfix small pointer toggle-sibling\\">
        <div class=\\"py1 contain\\">
            <a class='icon pin-right py1 dark-link caret-right'>▸</a>
            <span class='code strong strong truncate'>event</span>
        </div>
      </div>
      <div class=\\"clearfix display-none toggle-target\\">
        <section class='p2 mb2 clearfix bg-white minishadow'>

  

  <p>Klass event</p>

    <div class='pre p1 fill-light mt0'>event</div>
  
  

  
  
  
  
  
  

  

  

  

  

  

  

  

  

  

  
</section>

      </div>
    </div>
  
</div>

  
</section>

          
        
          
          <section class='p2 mb2 clearfix bg-white minishadow'>

  
  <div class='clearfix'>
    
    <h3 class='fl m0' id='customerror'>
      CustomError
    </h3>
    
    
  </div>
  

  <p>a typedef with nested properties</p>

    <div class='pre p1 fill-light mt0'>CustomError</div>
  
  

  
  
  
  
  
  

  

  
    <div class='py1 quiet mt1 prose-big'>Properties</div>
    <div>
      
        <div class='space-bottom0'>
          <span class='code bold'>error</span> <code class='quiet'>(<a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object\\">object</a>)</code>
          : An error

          
            <ul>
              
                <li><code>error.code</code> <a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String\\">string</a>
                  
                  <p>The error's code</p>
</li>
              
                <li><code>error.description</code> <a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String\\">string</a>
                  
                  <p>The error's description</p>
</li>
              
            </ul>
          
        </div>
      
    </div>
  

  

  

  

  

  

  

  

  
</section>

          
        
          
          <section class='p2 mb2 clearfix bg-white minishadow'>

  
  <div class='clearfix'>
    
    <h3 class='fl m0' id='bar'>
      bar
    </h3>
    
    
  </div>
  

  <p>Get an instance of <a href=\\"#klass\\">Klass</a>. Will make
a <a href=\\"#klass\\">klass instance multiword</a>,
like a <a href=\\"#klass\\">klass</a></p>

    <div class='pre p1 fill-light mt0'>bar(): <a href=\\"#klass\\">Klass</a></div>
  
  

  
  
  
  
  
  

  

  

  
    
      <div class='py1 quiet mt1 prose-big'>Returns</div>
      <code><a href=\\"#klass\\">Klass</a></code>:
        that class

      
    
  

  

  

  

  

  

  

  
</section>

          
        
          
          <section class='p2 mb2 clearfix bg-white minishadow'>

  
  <div class='clearfix'>
    
    <h3 class='fl m0' id='bar2'>
      bar2
    </h3>
    
    
  </div>
  

  <p>Rest property function</p>

    <div class='pre p1 fill-light mt0'>bar2(toys: ...<a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number\\">Number</a>): <a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined\\">undefined</a></div>
  
  

  
  
  
  
  
  

  
    <div class='py1 quiet mt1 prose-big'>Parameters</div>
    <div class='prose'>
      
        <div class='space-bottom0'>
          <div>
            <span class='code bold'>toys</span> <code class='quiet'>(...<a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number\\">Number</a>)</code>
	    
          </div>
          
        </div>
      
    </div>
  

  

  
    
      <div class='py1 quiet mt1 prose-big'>Returns</div>
      <code><a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined\\">undefined</a></code>:
        nothing

      
    
  

  

  

  

  

  

  

  
</section>

          
        
          
          <section class='p2 mb2 clearfix bg-white minishadow'>

  
  <div class='clearfix'>
    
    <h3 class='fl m0' id='bar3'>
      bar3
    </h3>
    
    
  </div>
  

  <p>Get an instance of <a href=\\"#klass\\">Klass</a>. Will make
a <a href=\\"#klass\\">klass instance multiword</a>,
like a <a href=\\"#klass\\">klass</a>. This needs a <a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number\\">number</a> input.</p>

    <div class='pre p1 fill-light mt0'>bar3(): <a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined\\">undefined</a></div>
  
  

  
  
  
  
  
  

  

  

  
    
      <div class='py1 quiet mt1 prose-big'>Returns</div>
      <code><a href=\\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined\\">undefined</a></code>:
        nothing

      
    
  

  

  

  

  

  

  

  
</section>

          
        
          
          <section class='p2 mb2 clearfix bg-white minishadow'>

  
  <div class='clearfix'>
    
    <h3 class='fl m0' id='foo'>
      Foo
    </h3>
    
    
  </div>
  

  <p>This is Foo</p>

    <div class='pre p1 fill-light mt0'>new Foo()</div>
  
  

  
  
  
  
  
  

  

  

  

  

  

  

  

  
    <div class='py1 quiet mt1 prose-big'>Instance Members</div>
    <div class=\\"clearfix\\">
  
    <div class='border-bottom' id='foobar'>
      <div class=\\"clearfix small pointer toggle-sibling\\">
        <div class=\\"py1 contain\\">
            <a class='icon pin-right py1 dark-link caret-right'>▸</a>
            <span class='code strong strong truncate'>bar</span>
        </div>
      </div>
      <div class=\\"clearfix display-none toggle-target\\">
        <section class='p2 mb2 clearfix bg-white minishadow'>

  

  <p>This is bar</p>

    <div class='pre p1 fill-light mt0'>bar</div>
  
  

  
  
  
  
  
  

  

  

  

  

  

  

  

  

  

  
</section>

      </div>
    </div>
  
</div>

  

  

  
</section>

          
        
          
          <section class='p2 mb2 clearfix bg-white minishadow'>

  
  <div class='clearfix'>
    
    <h3 class='fl m0' id='foobar-1'>
      Foobar
    </h3>
    
    
  </div>
  

  <p>This is Foobar
must have a distinct id from Foo.bar</p>

    <div class='pre p1 fill-light mt0'>new Foobar()</div>
  
  

  
  
  
  
  
  

  

  

  

  

  

  

  

  
    <div class='py1 quiet mt1 prose-big'>Instance Members</div>
    <div class=\\"clearfix\\">
  
    <div class='border-bottom' id='foobarbar'>
      <div class=\\"clearfix small pointer toggle-sibling\\">
        <div class=\\"py1 contain\\">
            <a class='icon pin-right py1 dark-link caret-right'>▸</a>
            <span class='code strong strong truncate'>bar</span>
        </div>
      </div>
      <div class=\\"clearfix display-none toggle-target\\">
        <section class='p2 mb2 clearfix bg-white minishadow'>

  

  <p>This is bar</p>

    <div class='pre p1 fill-light mt0'>bar</div>
  
  

  
  
  
  
  
  

  

  

  

  

  

  

  

  

  

  
</section>

      </div>
    </div>
  
</div>

  

  

  
</section>

          
        
          
          <section class='p2 mb2 clearfix bg-white minishadow'>

  
  <div class='clearfix'>
    
    <h3 class='fl m0' id='customstreams'>
      customStreams
    </h3>
    
    
  </div>
  

  <p>I am the container of stream types</p>

    <div class='pre p1 fill-light mt0'>customStreams</div>
  
  

  
  
  
  
  
  

  

  

  

  

  

  

  
    <div class='py1 quiet mt1 prose-big'>Static Members</div>
    <div class=\\"clearfix\\">
  
    <div class='border-bottom' id='customstreamspassthrough'>
      <div class=\\"clearfix small pointer toggle-sibling\\">
        <div class=\\"py1 contain\\">
            <a class='icon pin-right py1 dark-link caret-right'>▸</a>
            <span class='code strong strong truncate'>new passthrough()</span>
        </div>
      </div>
      <div class=\\"clearfix display-none toggle-target\\">
        <section class='p2 mb2 clearfix bg-white minishadow'>

  

  <p>I am a passthrough stream that belongs to customStreams</p>

    <div class='pre p1 fill-light mt0'>new passthrough()</div>
  
  

  
  
  
  
  
  

  

  

  

  

  

  

  

  

  

  
</section>

      </div>
    </div>
  
</div>

  

  

  

  
</section>

          
        
          
          <section class='p2 mb2 clearfix bg-white minishadow'>

  
  <div class='clearfix'>
    
    <h3 class='fl m0' id='tableobj'>
      tableObj
    </h3>
    
    
  </div>
  

  <table>
<thead>
<tr>
<th>Col 1</th>
<th>Col 2</th>
<th>Col 3</th>
</tr>
</thead>
<tbody>
<tr>
<td>Dat 1</td>
<td>Dat 2</td>
<td>Dat 3</td>
</tr>
<tr>
<td>Dat 4</td>
<td>Dat 5</td>
<td>Dat 6</td>
</tr>
</tbody>
</table>

    <div class='pre p1 fill-light mt0'>tableObj</div>
  
  

  
  
  
  
  
  

  

  

  

  

  

  

  

  

  

  
</section>

          
        
      </div>
    </div>
  <script src='assets/anchor.js'></script>
  <script src='assets/split.js'></script>
  <script src='assets/site.js'></script>
</body>
</html>
"
`;

exports[`multi-file input 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": SourceLocation {
        "end": Position {
          "column": 1,
          "index": 245,
          "line": 13,
        },
        "filename": undefined,
        "identifierName": undefined,
        "start": Position {
          "column": 0,
          "index": 180,
          "line": 10,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function returns the number plus two.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [
      Object {
        "description": "var result = returnTwo(4);
// result is 6",
      },
    ],
    "implements": Array [],
    "kind": "function",
    "loc": SourceLocation {
      "end": Position {
        "column": 3,
        "index": 179,
        "line": 9,
      },
      "filename": undefined,
      "identifierName": undefined,
      "start": Position {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "returnTwo",
    "namespace": "returnTwo",
    "params": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "the number",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 3,
        "name": "a",
        "title": "param",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "returnTwo",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "numbertwo",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "the number",
        "lineNumber": 3,
        "name": "a",
        "title": "param",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "numbertwo",
        "lineNumber": 4,
        "title": "returns",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "var result = returnTwo(4);
// result is 6",
        "lineNumber": 5,
        "title": "example",
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": SourceLocation {
        "end": Position {
          "column": 2,
          "index": 144,
          "line": 8,
        },
        "filename": undefined,
        "identifierName": undefined,
        "start": Position {
          "column": 0,
          "index": 80,
          "line": 5,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function returns the number one.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": SourceLocation {
      "end": Position {
        "column": 3,
        "index": 79,
        "line": 4,
      },
      "filename": undefined,
      "identifierName": undefined,
      "start": Position {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "simple.input",
    "namespace": "simple.input",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "simple.input",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "numberone",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "numberone",
        "lineNumber": 2,
        "title": "returns",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs boolean-literal-type.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 72,
          "line": 4,
        },
        "start": Object {
          "column": 0,
          "index": 7,
          "line": 2,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 6,
        "index": 6,
        "line": 1,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "f",
    "namespace": "f",
    "params": Array [
      Object {
        "lineNumber": 2,
        "name": "t",
        "title": "param",
        "type": Object {
          "type": "BooleanLiteralType",
          "value": true,
        },
      },
      Object {
        "lineNumber": 2,
        "name": "f",
        "title": "param",
        "type": Object {
          "type": "BooleanLiteralType",
          "value": false,
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "f",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "title": "returns",
        "type": Object {
          "elements": Array [
            Object {
              "type": "BooleanLiteralType",
              "value": true,
            },
            Object {
              "type": "BooleanLiteralType",
              "value": false,
            },
          ],
          "type": "ArrayType",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs boolean-literal-type.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [f][1]
    *   [Parameters][2]

## f

### Parameters

*   \`t\` **\`true\`**&#x20;
*   \`f\` **\`false\`**&#x20;

Returns **\\\\[\`true\`, \`false\`]**&#x20;

[1]: #f

[2]: #parameters
"
`;

exports[`outputs boolean-literal-type.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "f",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "t",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "inlineCode",
                      "value": "true",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "f",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "inlineCode",
                      "value": "false",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "[",
            },
            Object {
              "type": "inlineCode",
              "value": "true",
            },
            Object {
              "type": "text",
              "value": ", ",
            },
            Object {
              "type": "inlineCode",
              "value": "false",
            },
            Object {
              "type": "text",
              "value": "]",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
      ],
      "type": "paragraph",
    },
  ],
  "type": "root",
}
`;

exports[`outputs class.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 190,
          "line": 9,
        },
        "start": Object {
          "column": 0,
          "index": 148,
          "line": 7,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This is my class, a demo thing.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [
      Object {
        "description": null,
        "lineNumber": 3,
        "name": "MyInterface",
        "title": "implements",
        "type": Object {
          "name": "MyInterface",
          "type": "NameExpression",
        },
      },
    ],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 147,
        "line": 6,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 2,
                "index": 376,
                "line": 18,
              },
              "start": Object {
                "column": 0,
                "index": 304,
                "line": 16,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "Get the number 42",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 3,
              "index": 303,
              "line": 15,
            },
            "start": Object {
              "column": 0,
              "index": 192,
              "line": 11,
            },
          },
          "memberof": "MyClass",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "getFoo",
          "namespace": "MyClass#getFoo",
          "params": Array [
            Object {
              "description": Object {
                "children": Array [
                  Object {
                    "children": Array [
                      Object {
                        "type": "text",
                        "value": "whether to get the number",
                      },
                    ],
                    "type": "paragraph",
                  },
                ],
                "type": "root",
              },
              "lineNumber": 2,
              "name": "getIt",
              "title": "param",
              "type": Object {
                "name": "boolean",
                "type": "NameExpression",
              },
            },
          ],
          "path": Array [
            Object {
              "kind": "class",
              "name": "MyClass",
            },
            Object {
              "kind": "function",
              "name": "getFoo",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [
            Object {
              "description": Object {
                "children": Array [
                  Object {
                    "children": Array [
                      Object {
                        "type": "text",
                        "value": "forty-two",
                      },
                    ],
                    "type": "paragraph",
                  },
                ],
                "type": "root",
              },
              "title": "returns",
              "type": Object {
                "name": "number",
                "type": "NameExpression",
              },
            },
          ],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [
            Object {
              "description": "whether to get the number",
              "lineNumber": 2,
              "name": "getIt",
              "title": "param",
              "type": Object {
                "name": "boolean",
                "type": "NameExpression",
              },
            },
            Object {
              "description": "forty-two",
              "lineNumber": 3,
              "title": "returns",
              "type": Object {
                "name": "number",
                "type": "NameExpression",
              },
            },
          ],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 47,
                "index": 500,
                "line": 24,
              },
              "start": Object {
                "column": 0,
                "index": 453,
                "line": 24,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "Get undefined",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 3,
              "index": 452,
              "line": 23,
            },
            "start": Object {
              "column": 0,
              "index": 378,
              "line": 20,
            },
          },
          "memberof": "MyClass",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "getUndefined",
          "namespace": "MyClass#getUndefined",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "MyClass",
            },
            Object {
              "kind": "function",
              "name": "getUndefined",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [
            Object {
              "description": Object {
                "children": Array [
                  Object {
                    "children": Array [
                      Object {
                        "type": "text",
                        "value": "does not return anything.",
                      },
                    ],
                    "type": "paragraph",
                  },
                ],
                "type": "root",
              },
              "title": "returns",
              "type": Object {
                "type": "UndefinedLiteral",
              },
            },
          ],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [
            Object {
              "description": "does not return anything.",
              "lineNumber": 2,
              "title": "returns",
              "type": Object {
                "type": "UndefinedLiteral",
              },
            },
          ],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
      "static": Array [],
    },
    "name": "MyClass",
    "namespace": "MyClass",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "class",
        "name": "MyClass",
      },
    ],
    "properties": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "how many things it contains",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 4,
        "name": "howMany",
        "title": "property",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 2,
        "name": "MyClass",
        "title": "class",
        "type": null,
      },
      Object {
        "description": null,
        "lineNumber": 3,
        "name": "MyInterface",
        "title": "implements",
        "type": Object {
          "name": "MyInterface",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "how many things it contains",
        "lineNumber": 4,
        "name": "howMany",
        "title": "property",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs class.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [MyClass][1]
    *   [Properties][2]
    *   [getFoo][3]
        *   [Parameters][4]
    *   [getUndefined][5]

## MyClass

This is my class, a demo thing.

### Properties

*   \`howMany\` **[number][6]** how many things it contains

### getFoo

Get the number 42

#### Parameters

*   \`getIt\` **[boolean][7]** whether to get the number

Returns **[number][6]** forty-two

### getUndefined

Get undefined

Returns **[undefined][8]** does not return anything.

[1]: #myclass

[2]: #properties

[3]: #getfoo

[4]: #parameters

[5]: #getundefined

[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number

[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean

[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined
"
`;

exports[`outputs class.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "MyClass",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This is my class, a demo thing.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Properties",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "howMany",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "how many things it contains",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "getFoo",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Get the number 42",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 4,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "getIt",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "boolean",
                        },
                      ],
                      "identifier": "2",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "whether to get the number",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "number",
                },
              ],
              "identifier": "1",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "forty-two",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "getUndefined",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Get undefined",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "undefined",
                },
              ],
              "identifier": "3",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "does not return anything.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",
    },
    Object {
      "identifier": "3",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined",
    },
  ],
  "type": "root",
}
`;

exports[`outputs default-export-function.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 92,
          "line": 5,
        },
        "start": Object {
          "column": 0,
          "index": 16,
          "line": 2,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "i am foo",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 15,
        "index": 15,
        "line": 1,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "default-export-function.input",
    "namespace": "default-export-function.input",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "default-export-function.input",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 22,
          "index": 90,
          "line": 4,
        },
        "start": Object {
          "column": 2,
          "index": 70,
          "line": 4,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "i am foo's son",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [
      Object {
        "commentLineNumber": 0,
        "message": "@memberof reference to default-export-function.input not found",
      },
    ],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 23,
        "index": 67,
        "line": 3,
      },
      "start": Object {
        "column": 2,
        "index": 46,
        "line": 3,
      },
    },
    "memberof": "default-export-function.input",
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "bar",
    "namespace": ".bar",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "bar",
        "scope": "static",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "scope": "static",
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs default-export-function.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [default-export-function.input][1]
*   [bar][2]

## default-export-function.input

i am foo

## bar

i am foo's son

[1]: #default-export-functioninput

[2]: #bar
"
`;

exports[`outputs default-export-function.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "default-export-function.input",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "i am foo",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "bar",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "i am foo's son",
        },
      ],
      "type": "paragraph",
    },
  ],
  "type": "root",
}
`;

exports[`outputs document-exported.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 28,
          "index": 28,
          "line": 1,
        },
        "start": Object {
          "column": 0,
          "index": 0,
          "line": 1,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 28,
        "index": 28,
        "line": 1,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "x",
    "namespace": "x",
    "params": Array [
      Object {
        "lineNumber": 1,
        "name": "yparam",
        "title": "param",
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "x",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 41,
          "line": 3,
        },
        "start": Object {
          "column": 0,
          "index": 0,
          "line": 1,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 1,
        "index": 41,
        "line": 3,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 14,
                "index": 39,
                "line": 2,
              },
              "start": Object {
                "column": 2,
                "index": 27,
                "line": 2,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 14,
              "index": 39,
              "line": 2,
            },
            "start": Object {
              "column": 2,
              "index": 27,
              "line": 2,
            },
          },
          "memberof": "z",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "zMethod",
          "namespace": "z#zMethod",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "z",
            },
            Object {
              "kind": "function",
              "name": "zMethod",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
      "static": Array [],
    },
    "name": "z",
    "namespace": "z",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "class",
        "name": "z",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 246,
          "line": 11,
        },
        "start": Object {
          "column": 0,
          "index": 40,
          "line": 3,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 1,
        "index": 246,
        "line": 11,
      },
      "start": Object {
        "column": 0,
        "index": 40,
        "line": 3,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 18,
                "index": 107,
                "line": 5,
              },
              "start": Object {
                "column": 2,
                "index": 91,
                "line": 5,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 18,
              "index": 107,
              "line": 5,
            },
            "start": Object {
              "column": 2,
              "index": 91,
              "line": 5,
            },
          },
          "memberof": "Class",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "classMethod",
          "namespace": "Class#classMethod",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "Class",
            },
            Object {
              "kind": "function",
              "name": "classMethod",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 22,
                "index": 130,
                "line": 6,
              },
              "start": Object {
                "column": 2,
                "index": 110,
                "line": 6,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "member",
          "loc": Object {
            "end": Object {
              "column": 22,
              "index": 130,
              "line": 6,
            },
            "start": Object {
              "column": 2,
              "index": 110,
              "line": 6,
            },
          },
          "memberof": "Class",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "classGetter",
          "namespace": "Class#classGetter",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "Class",
            },
            Object {
              "kind": "member",
              "name": "classGetter",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 23,
                "index": 154,
                "line": 7,
              },
              "start": Object {
                "column": 2,
                "index": 133,
                "line": 7,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "member",
          "loc": Object {
            "end": Object {
              "column": 23,
              "index": 154,
              "line": 7,
            },
            "start": Object {
              "column": 2,
              "index": 133,
              "line": 7,
            },
          },
          "memberof": "Class",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "classSetter",
          "namespace": "Class#classSetter",
          "params": Array [
            Object {
              "lineNumber": 7,
              "name": "v",
              "title": "param",
            },
          ],
          "path": Array [
            Object {
              "kind": "class",
              "name": "Class",
            },
            Object {
              "kind": "member",
              "name": "classSetter",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
      "static": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 26,
                "index": 181,
                "line": 8,
              },
              "start": Object {
                "column": 2,
                "index": 157,
                "line": 8,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 26,
              "index": 181,
              "line": 8,
            },
            "start": Object {
              "column": 2,
              "index": 157,
              "line": 8,
            },
          },
          "memberof": "Class",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "staticMethod",
          "namespace": "Class.staticMethod",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "Class",
            },
            Object {
              "kind": "function",
              "name": "staticMethod",
              "scope": "static",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "static",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 30,
                "index": 212,
                "line": 9,
              },
              "start": Object {
                "column": 2,
                "index": 184,
                "line": 9,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "member",
          "loc": Object {
            "end": Object {
              "column": 30,
              "index": 212,
              "line": 9,
            },
            "start": Object {
              "column": 2,
              "index": 184,
              "line": 9,
            },
          },
          "memberof": "Class",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "staticGetter",
          "namespace": "Class.staticGetter",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "Class",
            },
            Object {
              "kind": "member",
              "name": "staticGetter",
              "scope": "static",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "static",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 31,
                "index": 244,
                "line": 10,
              },
              "start": Object {
                "column": 2,
                "index": 215,
                "line": 10,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "member",
          "loc": Object {
            "end": Object {
              "column": 31,
              "index": 244,
              "line": 10,
            },
            "start": Object {
              "column": 2,
              "index": 215,
              "line": 10,
            },
          },
          "memberof": "Class",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "staticSetter",
          "namespace": "Class.staticSetter",
          "params": Array [
            Object {
              "lineNumber": 10,
              "name": "v",
              "title": "param",
            },
          ],
          "path": Array [
            Object {
              "kind": "class",
              "name": "Class",
            },
            Object {
              "kind": "member",
              "name": "staticSetter",
              "scope": "static",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "static",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
    },
    "name": "Class",
    "namespace": "Class",
    "params": Array [
      Object {
        "lineNumber": 4,
        "name": "a",
        "title": "param",
        "type": Object {
          "name": "string",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "class",
        "name": "Class",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 25,
          "index": 63,
          "line": 3,
        },
        "start": Object {
          "column": 0,
          "index": 38,
          "line": 3,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "typedef",
    "loc": Object {
      "end": Object {
        "column": 25,
        "index": 63,
        "line": 3,
      },
      "start": Object {
        "column": 0,
        "index": 38,
        "line": 3,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "T5",
    "namespace": "T5",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "typedef",
        "name": "T5",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "type": Object {
      "name": "boolean",
      "type": "NameExpression",
    },
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 18,
          "index": 66,
          "line": 5,
        },
        "start": Object {
          "column": 0,
          "index": 48,
          "line": 5,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "loc": Object {
      "end": Object {
        "column": 18,
        "index": 66,
        "line": 5,
      },
      "start": Object {
        "column": 0,
        "index": 48,
        "line": 5,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "y2Default",
    "namespace": "y2Default",
    "params": Array [],
    "path": Array [
      Object {
        "name": "y2Default",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 31,
          "index": 124,
          "line": 8,
        },
        "start": Object {
          "column": 0,
          "index": 93,
          "line": 8,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Description of y3",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 24,
        "index": 92,
        "line": 7,
      },
      "start": Object {
        "column": 0,
        "index": 68,
        "line": 7,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "y4",
    "namespace": "y4",
    "params": Array [
      Object {
        "lineNumber": 8,
        "name": "p",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "y4",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "title": "returns",
        "type": Object {
          "type": "VoidLiteral",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 2,
          "index": 360,
          "line": 19,
        },
        "start": Object {
          "column": 0,
          "index": 248,
          "line": 13,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "loc": Object {
      "end": Object {
        "column": 2,
        "index": 360,
        "line": 19,
      },
      "start": Object {
        "column": 0,
        "index": 248,
        "line": 13,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 13,
                "index": 283,
                "line": 14,
              },
              "start": Object {
                "column": 2,
                "index": 272,
                "line": 14,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 13,
              "index": 283,
              "line": 14,
            },
            "start": Object {
              "column": 2,
              "index": 272,
              "line": 14,
            },
          },
          "memberof": "object",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "method",
          "namespace": "object.method",
          "params": Array [],
          "path": Array [
            Object {
              "name": "object",
            },
            Object {
              "kind": "function",
              "name": "method",
              "scope": "static",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "static",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 17,
                "index": 302,
                "line": 15,
              },
              "start": Object {
                "column": 2,
                "index": 287,
                "line": 15,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "member",
          "loc": Object {
            "end": Object {
              "column": 17,
              "index": 302,
              "line": 15,
            },
            "start": Object {
              "column": 2,
              "index": 287,
              "line": 15,
            },
          },
          "memberof": "object",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "getter",
          "namespace": "object.getter",
          "params": Array [],
          "path": Array [
            Object {
              "name": "object",
            },
            Object {
              "kind": "member",
              "name": "getter",
              "scope": "static",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "static",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 18,
                "index": 322,
                "line": 16,
              },
              "start": Object {
                "column": 2,
                "index": 306,
                "line": 16,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "member",
          "loc": Object {
            "end": Object {
              "column": 18,
              "index": 322,
              "line": 16,
            },
            "start": Object {
              "column": 2,
              "index": 306,
              "line": 16,
            },
          },
          "memberof": "object",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "setter",
          "namespace": "object.setter",
          "params": Array [
            Object {
              "lineNumber": 16,
              "name": "v",
              "title": "param",
            },
          ],
          "path": Array [
            Object {
              "name": "object",
            },
            Object {
              "kind": "member",
              "name": "setter",
              "scope": "static",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "static",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 10,
                "index": 334,
                "line": 17,
              },
              "start": Object {
                "column": 2,
                "index": 326,
                "line": 17,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "loc": Object {
            "end": Object {
              "column": 10,
              "index": 334,
              "line": 17,
            },
            "start": Object {
              "column": 2,
              "index": 326,
              "line": 17,
            },
          },
          "memberof": "object",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "prop",
          "namespace": "object.prop",
          "params": Array [],
          "path": Array [
            Object {
              "name": "object",
            },
            Object {
              "name": "prop",
              "scope": "static",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "static",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 21,
                "index": 357,
                "line": 18,
              },
              "start": Object {
                "column": 2,
                "index": 338,
                "line": 18,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 21,
              "index": 357,
              "line": 18,
            },
            "start": Object {
              "column": 2,
              "index": 338,
              "line": 18,
            },
          },
          "memberof": "object",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "func",
          "namespace": "object.func",
          "params": Array [],
          "path": Array [
            Object {
              "name": "object",
            },
            Object {
              "kind": "function",
              "name": "func",
              "scope": "static",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "static",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
    },
    "name": "object",
    "namespace": "object",
    "params": Array [],
    "path": Array [
      Object {
        "name": "object",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 16,
          "index": 1264,
          "line": 55,
        },
        "start": Object {
          "column": 0,
          "index": 1248,
          "line": 55,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 16,
        "index": 1264,
        "line": 55,
      },
      "start": Object {
        "column": 0,
        "index": 1248,
        "line": 55,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "f1",
    "namespace": "f1",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "f1",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 16,
          "index": 1281,
          "line": 56,
        },
        "start": Object {
          "column": 0,
          "index": 1265,
          "line": 56,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 16,
        "index": 1281,
        "line": 56,
      },
      "start": Object {
        "column": 0,
        "index": 1265,
        "line": 56,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "f3",
    "namespace": "f3",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "f3",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 23,
          "index": 1332,
          "line": 60,
        },
        "start": Object {
          "column": 0,
          "index": 1309,
          "line": 60,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "typedef",
    "loc": Object {
      "end": Object {
        "column": 23,
        "index": 1332,
        "line": 60,
      },
      "start": Object {
        "column": 0,
        "index": 1309,
        "line": 60,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "T",
    "namespace": "T",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "typedef",
        "name": "T",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "type": Object {
      "name": "number",
      "type": "NameExpression",
    },
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 17,
          "index": 1350,
          "line": 61,
        },
        "start": Object {
          "column": 0,
          "index": 1333,
          "line": 61,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "typedef",
    "loc": Object {
      "end": Object {
        "column": 17,
        "index": 1350,
        "line": 61,
      },
      "start": Object {
        "column": 0,
        "index": 1333,
        "line": 61,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "T2",
    "namespace": "T2",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "typedef",
        "name": "T2",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "type": Object {
      "name": "string",
      "type": "NameExpression",
    },
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 17,
          "index": 1368,
          "line": 62,
        },
        "start": Object {
          "column": 0,
          "index": 1351,
          "line": 62,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "typedef",
    "loc": Object {
      "end": Object {
        "column": 17,
        "index": 1368,
        "line": 62,
      },
      "start": Object {
        "column": 0,
        "index": 1351,
        "line": 62,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "T4",
    "namespace": "T4",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "typedef",
        "name": "T4",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "type": Object {
      "name": "string",
      "type": "NameExpression",
    },
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 34,
          "index": 1488,
          "line": 68,
        },
        "start": Object {
          "column": 0,
          "index": 1454,
          "line": 68,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 34,
        "index": 1488,
        "line": 68,
      },
      "start": Object {
        "column": 0,
        "index": 1454,
        "line": 68,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "f4",
    "namespace": "f4",
    "params": Array [
      Object {
        "lineNumber": 68,
        "name": "x",
        "title": "param",
        "type": Object {
          "name": "X",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "f4",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 2,
          "index": 1537,
          "line": 74,
        },
        "start": Object {
          "column": 0,
          "index": 1506,
          "line": 72,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "loc": Object {
      "end": Object {
        "column": 2,
        "index": 1537,
        "line": 74,
      },
      "start": Object {
        "column": 0,
        "index": 1506,
        "line": 72,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 10,
                "index": 1534,
                "line": 73,
              },
              "start": Object {
                "column": 2,
                "index": 1526,
                "line": 73,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 10,
              "index": 1534,
              "line": 73,
            },
            "start": Object {
              "column": 2,
              "index": 1526,
              "line": 73,
            },
          },
          "memberof": "o1",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "om1",
          "namespace": "o1.om1",
          "params": Array [],
          "path": Array [
            Object {
              "name": "o1",
            },
            Object {
              "kind": "function",
              "name": "om1",
              "scope": "static",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "static",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
    },
    "name": "o1",
    "namespace": "o1",
    "params": Array [],
    "path": Array [
      Object {
        "name": "o1",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 4,
          "index": 1611,
          "line": 80,
        },
        "start": Object {
          "column": 0,
          "index": 1557,
          "line": 77,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "f5 comment",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 17,
        "index": 1556,
        "line": 76,
      },
      "start": Object {
        "column": 0,
        "index": 1539,
        "line": 76,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "f5",
    "namespace": "f5",
    "params": Array [
      Object {
        "lineNumber": 77,
        "name": "y",
        "title": "param",
        "type": Object {
          "name": "Y",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "f5",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 3,
          "index": 1610,
          "line": 80,
        },
        "start": Object {
          "column": 2,
          "index": 1587,
          "line": 78,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 1610,
        "line": 80,
      },
      "start": Object {
        "column": 2,
        "index": 1587,
        "line": 78,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 12,
                "index": 1606,
                "line": 79,
              },
              "start": Object {
                "column": 4,
                "index": 1598,
                "line": 79,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 12,
              "index": 1606,
              "line": 79,
            },
            "start": Object {
              "column": 4,
              "index": 1598,
              "line": 79,
            },
          },
          "memberof": "o2",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "om2",
          "namespace": "o2.om2",
          "params": Array [],
          "path": Array [
            Object {
              "name": "o2",
            },
            Object {
              "kind": "function",
              "name": "om2",
              "scope": "static",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "static",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
    },
    "name": "o2",
    "namespace": "o2",
    "params": Array [],
    "path": Array [
      Object {
        "name": "o2",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs document-exported.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [x][1]
    *   [Parameters][2]
*   [z][3]
    *   [zMethod][4]
*   [Class][5]
    *   [Parameters][6]
    *   [classMethod][7]
    *   [classGetter][8]
    *   [classSetter][9]
        *   [Parameters][10]
    *   [staticMethod][11]
    *   [staticGetter][12]
    *   [staticSetter][13]
        *   [Parameters][14]
*   [T5][15]
*   [y2Default][16]
*   [y4][17]
    *   [Parameters][18]
*   [object][19]
    *   [method][20]
    *   [getter][21]
    *   [setter][22]
        *   [Parameters][23]
    *   [prop][24]
    *   [func][25]
*   [f1][26]
*   [f3][27]
*   [T][28]
*   [T2][29]
*   [T4][30]
*   [f4][31]
    *   [Parameters][32]
*   [o1][33]
    *   [om1][34]
*   [f5][35]
    *   [Parameters][36]
*   [o2][37]
    *   [om2][38]

## x

### Parameters

*   \`yparam\` &#x20;

## z

### zMethod

## Class

### Parameters

*   \`a\` **[string][39]**&#x20;

### classMethod

### classGetter

### classSetter

#### Parameters

*   \`v\` &#x20;

### staticMethod

### staticGetter

### staticSetter

#### Parameters

*   \`v\` &#x20;

## T5

Type: [boolean][40]

## y2Default

## y4

Description of y3

### Parameters

*   \`p\` **[number][41]**&#x20;

Returns **void**&#x20;

## object

### method

### getter

### setter

#### Parameters

*   \`v\` &#x20;

### prop

### func

## f1

## f3

## T

Type: [number][41]

## T2

Type: [string][39]

## T4

Type: [string][39]

## f4

### Parameters

*   \`x\` **X**&#x20;

## o1

### om1

## f5

f5 comment

### Parameters

*   \`y\` **Y**&#x20;

## o2

### om2

[1]: #x

[2]: #parameters

[3]: #z

[4]: #zmethod

[5]: #class

[6]: #parameters-1

[7]: #classmethod

[8]: #classgetter

[9]: #classsetter

[10]: #parameters-2

[11]: #staticmethod

[12]: #staticgetter

[13]: #staticsetter

[14]: #parameters-3

[15]: #t5

[16]: #y2default

[17]: #y4

[18]: #parameters-4

[19]: #object

[20]: #method

[21]: #getter

[22]: #setter

[23]: #parameters-5

[24]: #prop

[25]: #func

[26]: #f1

[27]: #f3

[28]: #t

[29]: #t2

[30]: #t4

[31]: #f4

[32]: #parameters-6

[33]: #o1

[34]: #om1

[35]: #f5

[36]: #parameters-7

[37]: #o2

[38]: #om2

[39]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String

[40]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean

[41]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
"
`;

exports[`outputs document-exported.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "x",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "yparam",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "z",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "zMethod",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Class",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "a",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "string",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "classMethod",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "classGetter",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "classSetter",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 4,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "v",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "staticMethod",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "staticGetter",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "staticSetter",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 4,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "v",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "T5",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Type: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "boolean",
            },
          ],
          "identifier": "2",
          "referenceType": "full",
          "type": "linkReference",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "y2Default",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "y4",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Description of y3",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "p",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "3",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "void",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "object",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "method",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "getter",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "setter",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 4,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "v",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "prop",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "func",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "f1",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "f3",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "T",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Type: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "number",
            },
          ],
          "identifier": "3",
          "referenceType": "full",
          "type": "linkReference",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "T2",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Type: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "string",
            },
          ],
          "identifier": "1",
          "referenceType": "full",
          "type": "linkReference",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "T4",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Type: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "string",
            },
          ],
          "identifier": "1",
          "referenceType": "full",
          "type": "linkReference",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "f4",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "x",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "X",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "o1",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "om1",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "f5",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "f5 comment",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "y",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "Y",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "o2",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "om2",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",
    },
    Object {
      "identifier": "3",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
  ],
  "type": "root",
}
`;

exports[`outputs document-exported-export-default-object.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 2,
          "index": 67,
          "line": 5,
        },
        "start": Object {
          "column": 0,
          "index": 40,
          "line": 3,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "loc": Object {
      "end": Object {
        "column": 2,
        "index": 67,
        "line": 5,
      },
      "start": Object {
        "column": 0,
        "index": 40,
        "line": 3,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "document-exported-export-default-object.input",
    "namespace": "document-exported-export-default-object.input",
    "params": Array [],
    "path": Array [
      Object {
        "name": "document-exported-export-default-object.input",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 7,
          "index": 64,
          "line": 4,
        },
        "start": Object {
          "column": 2,
          "index": 59,
          "line": 4,
        },
      },
    },
    "description": "",
    "errors": Array [
      Object {
        "commentLineNumber": 0,
        "message": "@memberof reference to document-exported-export-default-object.input not found",
      },
    ],
    "examples": Array [],
    "implements": Array [],
    "loc": Object {
      "end": Object {
        "column": 7,
        "index": 64,
        "line": 4,
      },
      "start": Object {
        "column": 2,
        "index": 59,
        "line": 4,
      },
    },
    "memberof": "document-exported-export-default-object.input",
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "x",
    "namespace": ".x",
    "params": Array [],
    "path": Array [
      Object {
        "name": "x",
        "scope": "static",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "scope": "static",
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs document-exported-export-default-object.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [document-exported-export-default-object.input][1]
*   [x][2]

## document-exported-export-default-object.input

## x

[1]: #document-exported-export-default-objectinput

[2]: #x
"
`;

exports[`outputs document-exported-export-default-object.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "document-exported-export-default-object.input",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "x",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
  ],
  "type": "root",
}
`;

exports[`outputs document-exported-export-default-value.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 18,
          "index": 58,
          "line": 3,
        },
        "start": Object {
          "column": 0,
          "index": 40,
          "line": 3,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "loc": Object {
      "end": Object {
        "column": 18,
        "index": 58,
        "line": 3,
      },
      "start": Object {
        "column": 0,
        "index": 40,
        "line": 3,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "document-exported-export-default-value.input",
    "namespace": "document-exported-export-default-value.input",
    "params": Array [],
    "path": Array [
      Object {
        "name": "document-exported-export-default-value.input",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs document-exported-export-default-value.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [document-exported-export-default-value.input][1]

## document-exported-export-default-value.input

[1]: #document-exported-export-default-valueinput
"
`;

exports[`outputs document-exported-export-default-value.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "document-exported-export-default-value.input",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
  ],
  "type": "root",
}
`;

exports[`outputs es6.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 10,
          "index": 192,
          "line": 9,
        },
        "start": Object {
          "column": 0,
          "index": 103,
          "line": 5,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function destructures with defaults. It should not
have any parameter descriptions.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 102,
        "line": 4,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "destructure",
    "namespace": "destructure",
    "params": Array [
      Object {
        "anonymous": true,
        "default": "{}",
        "name": "$0",
        "properties": Array [
          Object {
            "default": "[]",
            "lineNumber": 6,
            "name": "$0.phoneNumbers",
            "title": "param",
          },
          Object {
            "default": "[]",
            "lineNumber": 7,
            "name": "$0.emailAddresses",
            "title": "param",
          },
          Object {
            "lineNumber": 8,
            "name": "$0.params",
            "title": "param",
            "type": Object {
              "type": "RestType",
            },
          },
        ],
        "title": "param",
        "type": Object {
          "name": "Object",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "destructure",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 37,
          "index": 311,
          "line": 16,
        },
        "start": Object {
          "column": 0,
          "index": 274,
          "line": 16,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Similar, but with an array",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [
      Object {
        "description": "destructure2([0, 1, 2, 3])",
      },
    ],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 273,
        "line": 15,
      },
      "start": Object {
        "column": 0,
        "index": 194,
        "line": 11,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "destructure2",
    "namespace": "destructure2",
    "params": Array [
      Object {
        "anonymous": true,
        "name": "$0",
        "properties": Array [
          Object {
            "name": "$0.0",
            "title": "param",
          },
          Object {
            "lineNumber": 16,
            "name": "$0.1",
            "title": "param",
          },
          Object {
            "lineNumber": 16,
            "name": "$0.2",
            "title": "param",
          },
          Object {
            "lineNumber": 16,
            "name": "$0.3",
            "title": "param",
          },
        ],
        "title": "param",
        "type": Object {
          "name": "Array",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "destructure2",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "destructure2([0, 1, 2, 3])",
        "lineNumber": 2,
        "title": "example",
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 31,
          "index": 472,
          "line": 23,
        },
        "start": Object {
          "column": 0,
          "index": 441,
          "line": 23,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function returns the number one.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 440,
        "line": 22,
      },
      "start": Object {
        "column": 0,
        "index": 313,
        "line": 18,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "multiply",
    "namespace": "multiply",
    "params": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "an array of numbers",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 2,
        "name": "a",
        "title": "param",
        "type": Object {
          "applications": Array [
            Object {
              "name": "Number",
              "type": "NameExpression",
            },
          ],
          "expression": Object {
            "name": "Array",
            "type": "NameExpression",
          },
          "type": "TypeApplication",
        },
      },
      Object {
        "lineNumber": 23,
        "name": "b",
        "title": "param",
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "multiply",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "numberone",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "an array of numbers",
        "lineNumber": 2,
        "name": "a",
        "title": "param",
        "type": Object {
          "applications": Array [
            Object {
              "name": "Number",
              "type": "NameExpression",
            },
          ],
          "expression": Object {
            "name": "Array",
            "type": "NameExpression",
          },
          "type": "TypeApplication",
        },
      },
      Object {
        "description": "numberone",
        "lineNumber": 3,
        "title": "returns",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 1217,
          "line": 75,
        },
        "start": Object {
          "column": 0,
          "index": 663,
          "line": 36,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This is a sink",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [
      Object {
        "description": "@abc
class A {
  @bind
  say() {}
}",
      },
    ],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 662,
        "line": 35,
      },
      "start": Object {
        "column": 0,
        "index": 474,
        "line": 25,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 18,
                "index": 829,
                "line": 45,
              },
              "start": Object {
                "column": 2,
                "index": 813,
                "line": 45,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "This is a property of the sink.",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "member",
          "loc": Object {
            "end": Object {
              "column": 5,
              "index": 810,
              "line": 44,
            },
            "start": Object {
              "column": 2,
              "index": 764,
              "line": 42,
            },
          },
          "memberof": "Sink",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "staticProp",
          "namespace": "Sink#staticProp",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "Sink",
            },
            Object {
              "kind": "member",
              "name": "staticProp",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 3,
                "index": 889,
                "line": 52,
              },
              "start": Object {
                "column": 2,
                "index": 862,
                "line": 50,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "Is it empty",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 5,
              "index": 859,
              "line": 49,
            },
            "start": Object {
              "column": 2,
              "index": 833,
              "line": 47,
            },
          },
          "memberof": "Sink",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "empty",
          "namespace": "Sink#empty",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "Sink",
            },
            Object {
              "kind": "function",
              "name": "empty",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 4,
                "index": 1007,
                "line": 59,
              },
              "start": Object {
                "column": 2,
                "index": 949,
                "line": 57,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "This uses the class property transform",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "member",
          "loc": Object {
            "end": Object {
              "column": 5,
              "index": 946,
              "line": 56,
            },
            "start": Object {
              "column": 2,
              "index": 893,
              "line": 54,
            },
          },
          "memberof": "Sink",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "classprop",
          "namespace": "Sink#classprop",
          "params": Array [
            Object {
              "lineNumber": 57,
              "name": "a",
              "title": "param",
              "type": Object {
                "name": "number",
                "type": "NameExpression",
              },
            },
          ],
          "path": Array [
            Object {
              "kind": "class",
              "name": "Sink",
            },
            Object {
              "kind": "member",
              "name": "classprop",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [
            Object {
              "title": "returns",
              "type": Object {
                "name": "string",
                "type": "NameExpression",
              },
            },
          ],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 3,
                "index": 1215,
                "line": 74,
              },
              "start": Object {
                "column": 2,
                "index": 1181,
                "line": 72,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "This is a getter method: it should be documented
as a property.",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "member",
          "loc": Object {
            "end": Object {
              "column": 5,
              "index": 1178,
              "line": 71,
            },
            "start": Object {
              "column": 2,
              "index": 1095,
              "line": 68,
            },
          },
          "memberof": "Sink",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "aGetter",
          "namespace": "Sink#aGetter",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "Sink",
            },
            Object {
              "kind": "member",
              "name": "aGetter",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
      "static": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 3,
                "index": 1091,
                "line": 66,
              },
              "start": Object {
                "column": 2,
                "index": 1051,
                "line": 64,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "This method says hello",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 5,
              "index": 1048,
              "line": 63,
            },
            "start": Object {
              "column": 2,
              "index": 1011,
              "line": 61,
            },
          },
          "memberof": "Sink",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "hello",
          "namespace": "Sink.hello",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "Sink",
            },
            Object {
              "kind": "function",
              "name": "hello",
              "scope": "static",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "static",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
    },
    "name": "Sink",
    "namespace": "Sink",
    "params": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "the height of the thing",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 2,
        "name": "height",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "the width of the thing",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 3,
        "name": "width",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "class",
        "name": "Sink",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "the height of the thing",
        "lineNumber": 2,
        "name": "height",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "the width of the thing",
        "lineNumber": 3,
        "name": "width",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "@abc
class A {
  @bind
  say() {}
}",
        "lineNumber": 4,
        "title": "example",
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 25,
          "index": 1349,
          "line": 82,
        },
        "start": Object {
          "column": 0,
          "index": 1324,
          "line": 82,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This method returns a basket. The type should not be linked.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 1323,
        "line": 81,
      },
      "start": Object {
        "column": 0,
        "index": 1219,
        "line": 77,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "makeABasket",
    "namespace": "makeABasket",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "makeABasket",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "a basket",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "Basket",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "a basket",
        "lineNumber": 3,
        "title": "returns",
        "type": Object {
          "name": "Basket",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 23,
          "index": 1540,
          "line": 90,
        },
        "start": Object {
          "column": 0,
          "index": 1517,
          "line": 90,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This method returns a ",
            },
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "sink",
                },
              ],
              "jsdoc": true,
              "title": null,
              "type": "link",
              "url": "Sink",
            },
            Object {
              "type": "text",
              "value": ". The type should be linked.
It takes a ",
            },
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "number",
                },
              ],
              "jsdoc": true,
              "title": null,
              "type": "link",
              "url": "number",
            },
            Object {
              "type": "text",
              "value": " which should also be linked.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 1516,
        "line": 89,
      },
      "start": Object {
        "column": 0,
        "index": 1351,
        "line": 84,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "makeASink",
    "namespace": "makeASink",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "makeASink",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "a sink",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "Sink",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "a sink",
        "lineNumber": 4,
        "title": "returns",
        "type": Object {
          "name": "Sink",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 43,
          "index": 1628,
          "line": 95,
        },
        "start": Object {
          "column": 0,
          "index": 1585,
          "line": 95,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function takes rest params",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 1584,
        "line": 94,
      },
      "start": Object {
        "column": 0,
        "index": 1542,
        "line": 92,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "functionWithRest",
    "namespace": "functionWithRest",
    "params": Array [
      Object {
        "lineNumber": 95,
        "name": "someParams",
        "title": "param",
        "type": Object {
          "type": "RestType",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "functionWithRest",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 1856,
          "line": 107,
        },
        "start": Object {
          "column": 0,
          "index": 1670,
          "line": 100,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "So does this one, with types",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 1669,
        "line": 99,
      },
      "start": Object {
        "column": 0,
        "index": 1630,
        "line": 97,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "functionWithRestAndType",
    "namespace": "functionWithRestAndType",
    "params": Array [
      Object {
        "lineNumber": 100,
        "name": "someParams",
        "title": "param",
        "type": Object {
          "expression": Object {
            "name": "number",
            "type": "NameExpression",
          },
          "type": "RestType",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "functionWithRestAndType",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "async": true,
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 23,
          "index": 1935,
          "line": 114,
        },
        "start": Object {
          "column": 0,
          "index": 1912,
          "line": 114,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This is an async method",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 1911,
        "line": 113,
      },
      "start": Object {
        "column": 0,
        "index": 1877,
        "line": 111,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "foo",
    "namespace": "foo",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "foo",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 36,
          "index": 2079,
          "line": 122,
        },
        "start": Object {
          "column": 0,
          "index": 2043,
          "line": 122,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function returns the number one.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 2042,
        "line": 121,
      },
      "start": Object {
        "column": 0,
        "index": 1963,
        "line": 118,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "es6.input",
    "namespace": "es6.input",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "es6.input",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "numberone",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "numberone",
        "lineNumber": 2,
        "title": "returns",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 2208,
          "line": 129,
        },
        "start": Object {
          "column": 0,
          "index": 2145,
          "line": 127,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This tests our support of optional parameters in ES6",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 2144,
        "line": 126,
      },
      "start": Object {
        "column": 0,
        "index": 2081,
        "line": 124,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "veryImportantTransform",
    "namespace": "veryImportantTransform",
    "params": Array [
      Object {
        "default": "'bar'",
        "lineNumber": 127,
        "name": "foo",
        "title": "param",
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "veryImportantTransform",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "access": "protected",
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 26,
          "index": 2368,
          "line": 143,
        },
        "start": Object {
          "column": 0,
          "index": 2342,
          "line": 143,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "A protected function",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 2341,
        "line": 142,
      },
      "start": Object {
        "column": 0,
        "index": 2296,
        "line": 139,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "iAmProtected",
    "namespace": "iAmProtected",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "iAmProtected",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 2,
        "title": "protected",
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "access": "public",
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 23,
          "index": 2433,
          "line": 149,
        },
        "start": Object {
          "column": 0,
          "index": 2410,
          "line": 149,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "A public function",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 2409,
        "line": 148,
      },
      "start": Object {
        "column": 0,
        "index": 2370,
        "line": 145,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "iAmPublic",
    "namespace": "iAmPublic",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "iAmPublic",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 2,
        "title": "public",
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 42,
          "index": 2610,
          "line": 160,
        },
        "start": Object {
          "column": 0,
          "index": 2568,
          "line": 160,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This is re-exported",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 2567,
        "line": 159,
      },
      "start": Object {
        "column": 0,
        "index": 2537,
        "line": 157,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "execute",
    "namespace": "execute",
    "params": Array [],
    "path": Array [
      Object {
        "name": "execute",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 2819,
          "line": 169,
        },
        "start": Object {
          "column": 0,
          "index": 2645,
          "line": 163,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Regression check for #498",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 32,
        "index": 2644,
        "line": 162,
      },
      "start": Object {
        "column": 0,
        "index": 2612,
        "line": 162,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "isArrayEqualWith",
    "namespace": "isArrayEqualWith",
    "params": Array [
      Object {
        "lineNumber": 164,
        "name": "array1",
        "title": "param",
        "type": Object {
          "applications": Array [
            Object {
              "name": "T",
              "type": "NameExpression",
            },
          ],
          "expression": Object {
            "name": "Array",
            "type": "NameExpression",
          },
          "type": "TypeApplication",
        },
      },
      Object {
        "lineNumber": 165,
        "name": "array2",
        "title": "param",
        "type": Object {
          "applications": Array [
            Object {
              "name": "T",
              "type": "NameExpression",
            },
          ],
          "expression": Object {
            "name": "Array",
            "type": "NameExpression",
          },
          "type": "TypeApplication",
        },
      },
      Object {
        "default": "(a:T,b:T):boolean=>a===b",
        "lineNumber": 166,
        "name": "compareFunction",
        "title": "param",
        "type": Object {
          "params": Array [
            Object {
              "expression": Object {
                "name": "T",
                "type": "NameExpression",
              },
              "name": "a",
              "type": "ParameterType",
            },
            Object {
              "expression": Object {
                "name": "T",
                "type": "NameExpression",
              },
              "name": "b",
              "type": "ParameterType",
            },
          ],
          "result": Object {
            "name": "boolean",
            "type": "NameExpression",
          },
          "type": "FunctionType",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "isArrayEqualWith",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "title": "returns",
        "type": Object {
          "name": "boolean",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 2936,
          "line": 174,
        },
        "start": Object {
          "column": 0,
          "index": 2854,
          "line": 172,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Regression check for #749",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 32,
        "index": 2853,
        "line": 171,
      },
      "start": Object {
        "column": 0,
        "index": 2821,
        "line": 171,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "paramWithMemberType",
    "namespace": "paramWithMemberType",
    "params": Array [
      Object {
        "lineNumber": 172,
        "name": "a",
        "title": "param",
        "type": Object {
          "name": "atype.property",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "paramWithMemberType",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "title": "returns",
        "type": Object {
          "name": "boolean",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 3228,
          "line": 189,
        },
        "start": Object {
          "column": 0,
          "index": 2966,
          "line": 177,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "babel parser plugins",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 27,
        "index": 2965,
        "line": 176,
      },
      "start": Object {
        "column": 0,
        "index": 2938,
        "line": 176,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "A",
    "namespace": "A",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "class",
        "name": "A",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs es6.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [destructure][1]
    *   [Parameters][2]
*   [destructure2][3]
    *   [Parameters][4]
    *   [Examples][5]
*   [multiply][6]
    *   [Parameters][7]
*   [Sink][8]
    *   [Parameters][9]
    *   [Examples][10]
    *   [staticProp][11]
    *   [empty][12]
    *   [classprop][13]
        *   [Parameters][14]
    *   [aGetter][15]
    *   [hello][16]
*   [makeABasket][17]
*   [makeASink][18]
*   [functionWithRest][19]
    *   [Parameters][20]
*   [functionWithRestAndType][21]
    *   [Parameters][22]
*   [foo][23]
*   [es6.input][24]
*   [veryImportantTransform][25]
    *   [Parameters][26]
*   [iAmProtected][27]
*   [iAmPublic][28]
*   [execute][29]
*   [isArrayEqualWith][30]
    *   [Parameters][31]
*   [paramWithMemberType][32]
    *   [Parameters][33]
*   [A][34]

## destructure

This function destructures with defaults. It should not
have any parameter descriptions.

### Parameters

*   \`$0\` **[Object][35]** &#x20;(optional, default \`{}\`)

    *   \`$0.phoneNumbers\`  &#x20;(optional, default \`[]\`)
    *   \`$0.emailAddresses\`  &#x20;(optional, default \`[]\`)
    *   \`$0.params\` **...any**&#x20;

## destructure2

Similar, but with an array

### Parameters

*   \`$0\` **[Array][36]**&#x20;

    *   \`$0.0\` &#x20;
    *   \`$0.1\` &#x20;
    *   \`$0.2\` &#x20;
    *   \`$0.3\` &#x20;

### Examples

\`\`\`javascript
destructure2([0, 1, 2, 3])
\`\`\`

## multiply

This function returns the number one.

### Parameters

*   \`a\` **[Array][36]<[Number][37]>** an array of numbers
*   \`b\` &#x20;

Returns **[Number][37]** numberone

## Sink

This is a sink

### Parameters

*   \`height\` **[number][37]** the height of the thing
*   \`width\` **[number][37]** the width of the thing

### Examples

\`\`\`javascript
@abc
class A {
  @bind
  say() {}
}
\`\`\`

### staticProp

This is a property of the sink.

### empty

Is it empty

### classprop

This uses the class property transform

#### Parameters

*   \`a\` **[number][37]**&#x20;

Returns **[string][38]**&#x20;

### aGetter

This is a getter method: it should be documented
as a property.

### hello

This method says hello

## makeABasket

This method returns a basket. The type should not be linked.

Returns **Basket** a basket

## makeASink

This method returns a [sink][8]. The type should be linked.
It takes a [number][37] which should also be linked.

Returns **[Sink][8]** a sink

## functionWithRest

This function takes rest params

### Parameters

*   \`someParams\` **...any**&#x20;

## functionWithRestAndType

So does this one, with types

### Parameters

*   \`someParams\` **...[number][37]**&#x20;

## foo

This is an async method

## es6.input

This function returns the number one.

Returns **[Number][37]** numberone

## veryImportantTransform

This tests our support of optional parameters in ES6

### Parameters

*   \`foo\`  &#x20;(optional, default \`'bar'\`)

## iAmProtected

A protected function

## iAmPublic

A public function

## execute

This is re-exported

## isArrayEqualWith

Regression check for #498

### Parameters

*   \`array1\` **[Array][36]\\\\<T>**&#x20;
*   \`array2\` **[Array][36]\\\\<T>**&#x20;
*   \`compareFunction\` **function (a: T, b: T): [boolean][39]** &#x20;(optional, default \`(a:T,b:T):boolean=>a===b\`)

Returns **[boolean][39]**&#x20;

## paramWithMemberType

Regression check for #749

### Parameters

*   \`a\` **atype.property**&#x20;

Returns **[boolean][39]**&#x20;

## A

babel parser plugins

[1]: #destructure

[2]: #parameters

[3]: #destructure2

[4]: #parameters-1

[5]: #examples

[6]: #multiply

[7]: #parameters-2

[8]: #sink

[9]: #parameters-3

[10]: #examples-1

[11]: #staticprop

[12]: #empty

[13]: #classprop

[14]: #parameters-4

[15]: #agetter

[16]: #hello

[17]: #makeabasket

[18]: #makeasink

[19]: #functionwithrest

[20]: #parameters-5

[21]: #functionwithrestandtype

[22]: #parameters-6

[23]: #foo

[24]: #es6input

[25]: #veryimportanttransform

[26]: #parameters-7

[27]: #iamprotected

[28]: #iampublic

[29]: #execute

[30]: #isarrayequalwith

[31]: #parameters-8

[32]: #paramwithmembertype

[33]: #parameters-9

[34]: #a

[35]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object

[36]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array

[37]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number

[38]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String

[39]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
"
`;

exports[`outputs es6.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "destructure",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This function destructures with defaults. It should not
have any parameter descriptions.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "$0",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Object",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": " (optional, default ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "{}",
                    },
                    Object {
                      "type": "text",
                      "value": ")",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
            Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "$0.phoneNumbers",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": " (optional, default ",
                            },
                            Object {
                              "type": "inlineCode",
                              "value": "[]",
                            },
                            Object {
                              "type": "text",
                              "value": ")",
                            },
                          ],
                          "type": "paragraph",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "$0.emailAddresses",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": " (optional, default ",
                            },
                            Object {
                              "type": "inlineCode",
                              "value": "[]",
                            },
                            Object {
                              "type": "text",
                              "value": ")",
                            },
                          ],
                          "type": "paragraph",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "$0.params",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": "...",
                            },
                            Object {
                              "type": "text",
                              "value": "any",
                            },
                          ],
                          "type": "strong",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
              ],
              "ordered": false,
              "spread": false,
              "type": "list",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "destructure2",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Similar, but with an array",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "$0",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Array",
                        },
                      ],
                      "identifier": "2",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
            Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "$0.0",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "$0.1",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "$0.2",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "$0.3",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
              ],
              "ordered": false,
              "spread": false,
              "type": "list",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Examples",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "lang": "javascript",
      "type": "code",
      "value": "destructure2([0, 1, 2, 3])",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "multiply",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This function returns the number one.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "a",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Array",
                        },
                      ],
                      "identifier": "2",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                    Object {
                      "type": "text",
                      "value": "<",
                    },
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Number",
                        },
                      ],
                      "identifier": "3",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                    Object {
                      "type": "text",
                      "value": ">",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "an array of numbers",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "b",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "Number",
                },
              ],
              "identifier": "3",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "numberone",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Sink",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This is a sink",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "height",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "3",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "the height of the thing",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "width",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "3",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "the width of the thing",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Examples",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "lang": "javascript",
      "type": "code",
      "value": "@abc
class A {
  @bind
  say() {}
}",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "staticProp",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This is a property of the sink.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "empty",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Is it empty",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "classprop",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This uses the class property transform",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 4,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "a",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "3",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "string",
                },
              ],
              "identifier": "4",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "aGetter",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This is a getter method: it should be documented
as a property.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "hello",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This method says hello",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "makeABasket",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This method returns a basket. The type should not be linked.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Basket",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "a basket",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "makeASink",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This method returns a ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "sink",
            },
          ],
          "identifier": "5",
          "referenceType": "full",
          "type": "linkReference",
        },
        Object {
          "type": "text",
          "value": ". The type should be linked.
It takes a ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "number",
            },
          ],
          "identifier": "3",
          "referenceType": "full",
          "type": "linkReference",
        },
        Object {
          "type": "text",
          "value": " which should also be linked.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "Sink",
                },
              ],
              "identifier": "5",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "a sink",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "functionWithRest",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This function takes rest params",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "someParams",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "...",
                    },
                    Object {
                      "type": "text",
                      "value": "any",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "functionWithRestAndType",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "So does this one, with types",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "someParams",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "...",
                    },
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "3",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "foo",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This is an async method",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "es6.input",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This function returns the number one.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "Number",
                },
              ],
              "identifier": "3",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "numberone",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "veryImportantTransform",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This tests our support of optional parameters in ES6",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "foo",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": " (optional, default ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "'bar'",
                    },
                    Object {
                      "type": "text",
                      "value": ")",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "iAmProtected",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "A protected function",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "iAmPublic",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "A public function",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "execute",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This is re-exported",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "isArrayEqualWith",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Regression check for #498",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "array1",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Array",
                        },
                      ],
                      "identifier": "2",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                    Object {
                      "type": "text",
                      "value": "<",
                    },
                    Object {
                      "type": "text",
                      "value": "T",
                    },
                    Object {
                      "type": "text",
                      "value": ">",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "array2",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Array",
                        },
                      ],
                      "identifier": "2",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                    Object {
                      "type": "text",
                      "value": "<",
                    },
                    Object {
                      "type": "text",
                      "value": "T",
                    },
                    Object {
                      "type": "text",
                      "value": ">",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "compareFunction",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "function (",
                    },
                    Object {
                      "type": "text",
                      "value": "a: ",
                    },
                    Object {
                      "type": "text",
                      "value": "T",
                    },
                    Object {
                      "type": "text",
                      "value": ", ",
                    },
                    Object {
                      "type": "text",
                      "value": "b: ",
                    },
                    Object {
                      "type": "text",
                      "value": "T",
                    },
                    Object {
                      "type": "text",
                      "value": ")",
                    },
                    Object {
                      "type": "text",
                      "value": ": ",
                    },
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "boolean",
                        },
                      ],
                      "identifier": "6",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": " (optional, default ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "(a:T,b:T):boolean=>a===b",
                    },
                    Object {
                      "type": "text",
                      "value": ")",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "boolean",
                },
              ],
              "identifier": "6",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "paramWithMemberType",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Regression check for #749",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "a",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "atype.property",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "boolean",
                },
              ],
              "identifier": "6",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "A",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "babel parser plugins",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",
    },
    Object {
      "identifier": "3",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
    Object {
      "identifier": "4",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",
    },
    Object {
      "identifier": "5",
      "title": "",
      "type": "definition",
      "url": "#sink",
    },
    Object {
      "identifier": "6",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",
    },
  ],
  "type": "root",
}
`;

exports[`outputs es6.input.js no markdown TOC 1`] = `"[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]"`;

exports[`outputs es6-class.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [
      Object {
        "name": "React.Component",
        "title": "augments",
      },
    ],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 36,
          "index": 93,
          "line": 4,
        },
        "start": Object {
          "column": 0,
          "index": 57,
          "line": 4,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This is my component. This is from issue #458",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 56,
        "line": 3,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "Foo",
    "namespace": "Foo",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "class",
        "name": "Foo",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 295,
          "line": 18,
        },
        "start": Object {
          "column": 0,
          "index": 167,
          "line": 10,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Does nothing. This is from issue #556",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 166,
        "line": 9,
      },
      "start": Object {
        "column": 0,
        "index": 95,
        "line": 6,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 18,
                "index": 289,
                "line": 16,
              },
              "start": Object {
                "column": 4,
                "index": 275,
                "line": 16,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "A useless property",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "loc": Object {
            "end": Object {
              "column": 7,
              "index": 270,
              "line": 15,
            },
            "start": Object {
              "column": 4,
              "index": 211,
              "line": 12,
            },
          },
          "memberof": "Bar",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "bar",
          "namespace": "Bar#bar",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "Bar",
            },
            Object {
              "name": "bar",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [
            Object {
              "description": null,
              "lineNumber": 2,
              "title": "type",
              "type": Object {
                "name": "string",
                "type": "NameExpression",
              },
            },
          ],
          "throws": Array [],
          "todos": Array [],
          "type": Object {
            "name": "string",
            "type": "NameExpression",
          },
          "yields": Array [],
        },
      ],
      "static": Array [],
    },
    "name": "Bar",
    "namespace": "Bar",
    "params": Array [
      Object {
        "lineNumber": 2,
        "name": "str",
        "title": "param",
        "type": Object {
          "name": "string",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "class",
        "name": "Bar",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 2,
        "name": "str",
        "title": "param",
        "type": Object {
          "name": "string",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 428,
          "line": 25,
        },
        "start": Object {
          "column": 0,
          "index": 362,
          "line": 23,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This class has fully inferred constructor parameters.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 361,
        "line": 22,
      },
      "start": Object {
        "column": 0,
        "index": 297,
        "line": 20,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "Baz",
    "namespace": "Baz",
    "params": Array [
      Object {
        "lineNumber": 24,
        "name": "n",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
      Object {
        "lineNumber": 24,
        "name": "l",
        "title": "param",
        "type": Object {
          "applications": Array [
            Object {
              "name": "string",
              "type": "NameExpression",
            },
          ],
          "expression": Object {
            "name": "Array",
            "type": "NameExpression",
          },
          "type": "TypeApplication",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "class",
        "name": "Baz",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs es6-class.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [Foo][1]
*   [Bar][2]
    *   [Parameters][3]
    *   [bar][4]
*   [Baz][5]
    *   [Parameters][6]

## Foo

**Extends React.Component**

This is my component. This is from issue #458

## Bar

Does nothing. This is from issue #556

### Parameters

*   \`str\` **[string][7]**&#x20;

### bar

A useless property

Type: [string][7]

## Baz

This class has fully inferred constructor parameters.

### Parameters

*   \`n\` **[number][8]**&#x20;
*   \`l\` **[Array][9]<[string][7]>**&#x20;

[1]: #foo

[2]: #bar

[3]: #parameters

[4]: #bar-1

[5]: #baz

[6]: #parameters-1

[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String

[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number

[9]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
"
`;

exports[`outputs es6-class.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Foo",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Extends ",
            },
            Object {
              "type": "text",
              "value": "React.Component",
            },
          ],
          "type": "strong",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This is my component. This is from issue #458",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Bar",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Does nothing. This is from issue #556",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "str",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "string",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "bar",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "A useless property",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Type: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "string",
            },
          ],
          "identifier": "1",
          "referenceType": "full",
          "type": "linkReference",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Baz",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This class has fully inferred constructor parameters.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "n",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "2",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "l",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Array",
                        },
                      ],
                      "identifier": "3",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                    Object {
                      "type": "text",
                      "value": "<",
                    },
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "string",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                    Object {
                      "type": "text",
                      "value": ">",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
    Object {
      "identifier": "3",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",
    },
  ],
  "type": "root",
}
`;

exports[`outputs es6-class-property.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 361,
          "line": 25,
        },
        "start": Object {
          "column": 0,
          "index": 34,
          "line": 4,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This is for issue 906.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 33,
        "line": 3,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 3,
                "index": 175,
                "line": 11,
              },
              "start": Object {
                "column": 2,
                "index": 129,
                "line": 9,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "This is a read-write property.",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "member",
          "loc": Object {
            "end": Object {
              "column": 5,
              "index": 126,
              "line": 8,
            },
            "start": Object {
              "column": 2,
              "index": 60,
              "line": 5,
            },
          },
          "memberof": "Issue906",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "readWriteProp",
          "namespace": "Issue906#readWriteProp",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "Issue906",
            },
            Object {
              "kind": "member",
              "name": "readWriteProp",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [
            Object {
              "description": null,
              "lineNumber": 2,
              "title": "type",
              "type": Object {
                "name": "boolean",
                "type": "NameExpression",
              },
            },
          ],
          "throws": Array [],
          "todos": Array [],
          "type": Object {
            "name": "boolean",
            "type": "NameExpression",
          },
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 3,
                "index": 359,
                "line": 24,
              },
              "start": Object {
                "column": 2,
                "index": 317,
                "line": 22,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "This is a read-only property.",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "member",
          "loc": Object {
            "end": Object {
              "column": 5,
              "index": 314,
              "line": 21,
            },
            "start": Object {
              "column": 2,
              "index": 235,
              "line": 17,
            },
          },
          "memberof": "Issue906",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "readOnlyProp",
          "namespace": "Issue906#readOnlyProp",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "Issue906",
            },
            Object {
              "kind": "member",
              "name": "readOnlyProp",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "readonly": true,
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [
            Object {
              "description": null,
              "lineNumber": 2,
              "title": "type",
              "type": Object {
                "name": "string",
                "type": "NameExpression",
              },
            },
            Object {
              "description": null,
              "lineNumber": 3,
              "title": "readonly",
            },
          ],
          "throws": Array [],
          "todos": Array [],
          "type": Object {
            "name": "string",
            "type": "NameExpression",
          },
          "yields": Array [],
        },
      ],
      "static": Array [],
    },
    "name": "Issue906",
    "namespace": "Issue906",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "class",
        "name": "Issue906",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs es6-class-property.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [Issue906][1]
    *   [readWriteProp][2]
    *   [readOnlyProp][3]

## Issue906

This is for issue 906.

### readWriteProp

This is a read-write property.

Type: [boolean][4]

### readOnlyProp

This is a read-only property.

Type: [string][5]

[1]: #issue906

[2]: #readwriteprop

[3]: #readonlyprop

[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean

[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
"
`;

exports[`outputs es6-class-property.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Issue906",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This is for issue 906.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "readWriteProp",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This is a read-write property.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Type: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "boolean",
            },
          ],
          "identifier": "1",
          "referenceType": "full",
          "type": "linkReference",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "readOnlyProp",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This is a read-only property.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Type: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "string",
            },
          ],
          "identifier": "2",
          "referenceType": "full",
          "type": "linkReference",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",
    },
  ],
  "type": "root",
}
`;

exports[`outputs es6-default2.input.js JSON 1`] = `
Array [
  Object {
    "access": "public",
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 39,
          "index": 58,
          "line": 4,
        },
        "start": Object {
          "column": 0,
          "index": 19,
          "line": 4,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 18,
        "line": 3,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "es6-default2.input",
    "namespace": "es6-default2.input",
    "params": Array [
      Object {
        "lineNumber": 4,
        "name": "thisIsTheArgument",
        "title": "param",
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "es6-default2.input",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 1,
        "title": "public",
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs es6-default2.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [es6-default2.input][1]
    *   [Parameters][2]

## es6-default2.input

### Parameters

*   \`thisIsTheArgument\` &#x20;

[1]: #es6-default2input

[2]: #parameters
"
`;

exports[`outputs es6-default2.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "es6-default2.input",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "thisIsTheArgument",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
  ],
  "type": "root",
}
`;

exports[`outputs es6-import.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 41,
          "index": 435,
          "line": 14,
        },
        "start": Object {
          "column": 0,
          "index": 394,
          "line": 14,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function returns the number one.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 393,
        "line": 13,
      },
      "start": Object {
        "column": 0,
        "index": 314,
        "line": 10,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "multiplyTwice",
    "namespace": "multiplyTwice",
    "params": Array [
      Object {
        "lineNumber": 14,
        "name": "a",
        "title": "param",
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "multiplyTwice",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "numberone",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "numberone",
        "lineNumber": 2,
        "title": "returns",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 18,
          "index": 63,
          "line": 4,
        },
        "start": Object {
          "column": 0,
          "index": 45,
          "line": 4,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This is the default export frogs!",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 44,
        "line": 3,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "es6-ext",
    "namespace": "es6-ext",
    "params": Array [],
    "path": Array [
      Object {
        "name": "es6-ext",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 2,
          "index": 144,
          "line": 8,
        },
        "start": Object {
          "column": 0,
          "index": 80,
          "line": 5,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function returns the number one.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 79,
        "line": 4,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "simple.input",
    "namespace": "simple.input",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "simple.input",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "numberone",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "numberone",
        "lineNumber": 2,
        "title": "returns",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs es6-import.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [multiplyTwice][1]
    *   [Parameters][2]
*   [es6-ext][3]
*   [simple.input][4]

## multiplyTwice

This function returns the number one.

### Parameters

*   \`a\` &#x20;

Returns **[Number][5]** numberone

## es6-ext

This is the default export frogs!

## simple.input

This function returns the number one.

Returns **[number][5]** numberone

[1]: #multiplytwice

[2]: #parameters

[3]: #es6-ext

[4]: #simpleinput

[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
"
`;

exports[`outputs es6-import.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "multiplyTwice",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This function returns the number one.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "a",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "Number",
                },
              ],
              "identifier": "1",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "numberone",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "es6-ext",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This is the default export frogs!",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "simple.input",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This function returns the number one.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "number",
                },
              ],
              "identifier": "1",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "numberone",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
  ],
  "type": "root",
}
`;

exports[`outputs event.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 0,
          "index": 185,
          "line": 9,
        },
        "start": Object {
          "column": 0,
          "index": 0,
          "line": 1,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Mouse event",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "event",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 184,
        "line": 8,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "Map#mousemove",
    "namespace": ".event:Map#mousemove",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "event",
        "name": "Map#mousemove",
      },
    ],
    "properties": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "the pixel location of the event",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 5,
        "name": "point",
        "title": "property",
        "type": Object {
          "name": "Point",
          "type": "NameExpression",
        },
      },
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "the original DOM event",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 6,
        "name": "originalEvent",
        "title": "property",
        "type": Object {
          "name": "Event",
          "type": "NameExpression",
        },
      },
    ],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "Map#mousemove",
        "lineNumber": 3,
        "title": "event",
      },
      Object {
        "description": null,
        "lineNumber": 4,
        "title": "type",
        "type": Object {
          "name": "Object",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "the pixel location of the event",
        "lineNumber": 5,
        "name": "point",
        "title": "property",
        "type": Object {
          "name": "Point",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "the original DOM event",
        "lineNumber": 6,
        "name": "originalEvent",
        "title": "property",
        "type": Object {
          "name": "Event",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "type": Object {
      "name": "Object",
      "type": "NameExpression",
    },
    "yields": Array [],
  },
]
`;

exports[`outputs event.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [Map#mousemove][1]
    *   [Properties][2]

## Map#mousemove

Mouse event

Type: [Object][3]

### Properties

*   \`point\` **Point** the pixel location of the event
*   \`originalEvent\` **[Event][4]** the original DOM event

[1]: #mapmousemove

[2]: #properties

[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object

[4]: https://developer.mozilla.org/docs/Web/API/Event
"
`;

exports[`outputs event.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Map#mousemove",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Mouse event",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Type: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Object",
            },
          ],
          "identifier": "1",
          "referenceType": "full",
          "type": "linkReference",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Properties",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "point",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "Point",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "the pixel location of the event",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "originalEvent",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Event",
                        },
                      ],
                      "identifier": "2",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "the original DOM event",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/API/Event",
    },
  ],
  "type": "root",
}
`;

exports[`outputs example-caption.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 200,
          "line": 10,
        },
        "start": Object {
          "column": 0,
          "index": 150,
          "line": 7,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function returns the number one.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [
      Object {
        "caption": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "demonstrates how to run foo",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "description": "foo(1);",
      },
    ],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 149,
        "line": 6,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "foo",
    "namespace": "foo",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "foo",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "numberone",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "numberone",
        "lineNumber": 2,
        "title": "returns",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
      Object {
        "caption": "demonstrates how to run foo",
        "description": "foo(1);",
        "lineNumber": 3,
        "title": "example",
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs example-caption.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [foo][1]
    *   [Examples][2]

## foo

This function returns the number one.

### Examples

demonstrates how to run foo

\`\`\`javascript
foo(1);
\`\`\`

Returns **[Number][3]** numberone

[1]: #foo

[2]: #examples

[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
"
`;

exports[`outputs example-caption.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "foo",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This function returns the number one.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Examples",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "demonstrates how to run foo",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "lang": "javascript",
      "type": "code",
      "value": "foo(1);",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "Number",
                },
              ],
              "identifier": "1",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "numberone",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
  ],
  "type": "root",
}
`;

exports[`outputs external.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 147,
          "line": 10,
        },
        "start": Object {
          "column": 0,
          "index": 113,
          "line": 8,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "I am in ",
            },
            Object {
              "type": "inlineCode",
              "value": "external.input.js",
            },
            Object {
              "type": "text",
              "value": ".",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 112,
        "line": 7,
      },
      "start": Object {
        "column": 0,
        "index": 73,
        "line": 5,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "foo",
    "namespace": "foo",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "foo",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs external.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [foo][1]

## foo

I am in \`external.input.js\`.

[1]: #foo
"
`;

exports[`outputs external.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "foo",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "I am in ",
        },
        Object {
          "type": "inlineCode",
          "value": "external.input.js",
        },
        Object {
          "type": "text",
          "value": ".",
        },
      ],
      "type": "paragraph",
    },
  ],
  "type": "root",
}
`;

exports[`outputs factory.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 2,
          "index": 255,
          "line": 18,
        },
        "start": Object {
          "column": 0,
          "index": 60,
          "line": 5,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "an area chart generator",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 59,
        "line": 4,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "area",
    "namespace": "area",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "area",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "chart",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "area",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "chart",
        "lineNumber": 2,
        "title": "returns",
        "type": Object {
          "name": "area",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 37,
          "index": 150,
          "line": 9,
        },
        "start": Object {
          "column": 2,
          "index": 115,
          "line": 9,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 5,
        "index": 112,
        "line": 8,
      },
      "start": Object {
        "column": 2,
        "index": 86,
        "line": 6,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "area",
    "namespace": "area",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "class",
        "name": "area",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 1,
        "name": "area",
        "title": "class",
        "type": null,
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 30,
          "index": 235,
          "line": 15,
        },
        "start": Object {
          "column": 2,
          "index": 207,
          "line": 15,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Sets the chart data.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [
      Object {
        "commentLineNumber": 0,
        "message": "@memberof reference to chart not found",
      },
    ],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 5,
        "index": 204,
        "line": 14,
      },
      "start": Object {
        "column": 2,
        "index": 154,
        "line": 11,
      },
    },
    "memberof": "chart",
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "data",
    "namespace": ".data",
    "params": Array [
      Object {
        "lineNumber": 15,
        "name": "_",
        "title": "param",
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "data",
        "scope": "static",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "scope": "static",
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 2,
        "name": null,
        "title": "function",
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs factory.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [area][1]
*   [area][2]
*   [data][3]
    *   [Parameters][4]

## area

an area chart generator

Returns **[area][1]** chart

## area

## data

Sets the chart data.

### Parameters

*   \`_\` &#x20;

[1]: #area

[2]: #area-1

[3]: #data

[4]: #parameters
"
`;

exports[`outputs factory.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "area",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "an area chart generator",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "area",
                },
              ],
              "identifier": "1",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "chart",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "area",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "data",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Sets the chart data.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "_",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "#area",
    },
  ],
  "type": "root",
}
`;

exports[`outputs flow-exported-opaque-type.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 48,
          "index": 95,
          "line": 4,
        },
        "start": Object {
          "column": 0,
          "index": 47,
          "line": 4,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "MyOpaqueType Description Here",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "loc": Object {
      "end": Object {
        "column": 36,
        "index": 46,
        "line": 3,
      },
      "start": Object {
        "column": 0,
        "index": 10,
        "line": 3,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "MyOpaqueType",
    "namespace": "MyOpaqueType",
    "params": Array [],
    "path": Array [
      Object {
        "name": "MyOpaqueType",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs flow-exported-opaque-type.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [MyOpaqueType][1]

## MyOpaqueType

MyOpaqueType Description Here

[1]: #myopaquetype
"
`;

exports[`outputs flow-exported-opaque-type.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "MyOpaqueType",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "MyOpaqueType Description Here",
        },
      ],
      "type": "paragraph",
    },
  ],
  "type": "root",
}
`;

exports[`outputs flow-optional-chaining.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 74,
          "index": 95,
          "line": 4,
        },
        "start": Object {
          "column": 0,
          "index": 21,
          "line": 4,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "foo",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "constant",
    "loc": Object {
      "end": Object {
        "column": 10,
        "index": 20,
        "line": 3,
      },
      "start": Object {
        "column": 0,
        "index": 10,
        "line": 3,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "foo",
    "namespace": "foo",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "constant",
        "name": "foo",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "type": Object {
      "fields": Array [
        Object {
          "key": "prop1",
          "type": "FieldType",
          "value": Object {
            "expression": Object {
              "fields": Array [
                Object {
                  "key": "prop2",
                  "type": "FieldType",
                  "value": Object {
                    "expression": Object {
                      "name": "string",
                      "type": "NameExpression",
                    },
                    "type": "OptionalType",
                  },
                },
              ],
              "type": "RecordType",
            },
            "type": "OptionalType",
          },
        },
      ],
      "type": "RecordType",
    },
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 32,
          "index": 141,
          "line": 6,
        },
        "start": Object {
          "column": 0,
          "index": 109,
          "line": 6,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "value",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "constant",
    "loc": Object {
      "end": Object {
        "column": 12,
        "index": 108,
        "line": 5,
      },
      "start": Object {
        "column": 0,
        "index": 96,
        "line": 5,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "value",
    "namespace": "value",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "constant",
        "name": "value",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs flow-optional-chaining.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [foo][1]
*   [value][2]

## foo

foo

Type: {prop1: {prop2: [string][3]?}?}

## value

value

[1]: #foo

[2]: #value

[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
"
`;

exports[`outputs flow-optional-chaining.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "foo",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "foo",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Type: ",
        },
        Object {
          "type": "text",
          "value": "{",
        },
        Object {
          "type": "text",
          "value": "prop1: ",
        },
        Object {
          "type": "text",
          "value": "{",
        },
        Object {
          "type": "text",
          "value": "prop2: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "string",
            },
          ],
          "identifier": "1",
          "referenceType": "full",
          "type": "linkReference",
        },
        Object {
          "type": "text",
          "value": "?",
        },
        Object {
          "type": "text",
          "value": "}",
        },
        Object {
          "type": "text",
          "value": "?",
        },
        Object {
          "type": "text",
          "value": "}",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "value",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "value",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",
    },
  ],
  "type": "root",
}
`;

exports[`outputs flow-unnamed-params.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 19,
          "index": 38,
          "line": 4,
        },
        "start": Object {
          "column": 0,
          "index": 19,
          "line": 4,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "x",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "loc": Object {
      "end": Object {
        "column": 8,
        "index": 18,
        "line": 3,
      },
      "start": Object {
        "column": 0,
        "index": 10,
        "line": 3,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "x",
    "namespace": "x",
    "params": Array [],
    "path": Array [
      Object {
        "name": "x",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "type": Object {
      "params": Array [
        Object {
          "expression": Object {
            "name": "T",
            "type": "NameExpression",
          },
          "name": "",
          "type": "ParameterType",
        },
      ],
      "result": Object {
        "name": "string",
        "type": "NameExpression",
      },
      "type": "FunctionType",
    },
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 25,
          "index": 75,
          "line": 7,
        },
        "start": Object {
          "column": 0,
          "index": 50,
          "line": 7,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "x2",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "loc": Object {
      "end": Object {
        "column": 9,
        "index": 49,
        "line": 6,
      },
      "start": Object {
        "column": 0,
        "index": 40,
        "line": 6,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "x2",
    "namespace": "x2",
    "params": Array [],
    "path": Array [
      Object {
        "name": "x2",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "type": Object {
      "params": Array [
        Object {
          "expression": Object {
            "name": "T",
            "type": "NameExpression",
          },
          "name": "a",
          "type": "ParameterType",
        },
      ],
      "result": Object {
        "name": "string",
        "type": "NameExpression",
      },
      "type": "FunctionType",
    },
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 39,
          "index": 125,
          "line": 10,
        },
        "start": Object {
          "column": 0,
          "index": 86,
          "line": 10,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "T",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "typedef",
    "loc": Object {
      "end": Object {
        "column": 8,
        "index": 85,
        "line": 9,
      },
      "start": Object {
        "column": 0,
        "index": 77,
        "line": 9,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "T",
    "namespace": "T",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "typedef",
        "name": "T",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "type": Object {
      "params": Array [
        Object {
          "expression": Object {
            "applications": Array [
              Object {
                "name": "string",
                "type": "NameExpression",
              },
            ],
            "expression": Object {
              "name": "Array",
              "type": "NameExpression",
            },
            "type": "TypeApplication",
          },
          "name": "",
          "type": "ParameterType",
        },
      ],
      "result": Object {
        "fields": Array [
          Object {
            "key": "num",
            "type": "FieldType",
            "value": Object {
              "name": "number",
              "type": "NameExpression",
            },
          },
        ],
        "type": "RecordType",
      },
      "type": "FunctionType",
    },
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 43,
          "index": 180,
          "line": 13,
        },
        "start": Object {
          "column": 0,
          "index": 137,
          "line": 13,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "T2",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "typedef",
    "loc": Object {
      "end": Object {
        "column": 9,
        "index": 136,
        "line": 12,
      },
      "start": Object {
        "column": 0,
        "index": 127,
        "line": 12,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "T2",
    "namespace": "T2",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "typedef",
        "name": "T2",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "type": Object {
      "params": Array [
        Object {
          "expression": Object {
            "applications": Array [
              Object {
                "name": "string",
                "type": "NameExpression",
              },
            ],
            "expression": Object {
              "name": "Array",
              "type": "NameExpression",
            },
            "type": "TypeApplication",
          },
          "name": "a",
          "type": "ParameterType",
        },
      ],
      "result": Object {
        "fields": Array [
          Object {
            "key": "num",
            "type": "FieldType",
            "value": Object {
              "name": "number",
              "type": "NameExpression",
            },
          },
        ],
        "type": "RecordType",
      },
      "type": "FunctionType",
    },
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 42,
          "index": 234,
          "line": 16,
        },
        "start": Object {
          "column": 0,
          "index": 192,
          "line": 16,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "T3",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "typedef",
    "loc": Object {
      "end": Object {
        "column": 9,
        "index": 191,
        "line": 15,
      },
      "start": Object {
        "column": 0,
        "index": 182,
        "line": 15,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "T3",
    "namespace": "T3",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "typedef",
        "name": "T3",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "type": Object {
      "params": Array [
        Object {
          "expression": Object {
            "name": "string",
            "type": "NameExpression",
          },
          "name": "a",
          "type": "ParameterType",
        },
      ],
      "result": Object {
        "fields": Array [
          Object {
            "key": "num",
            "type": "FieldType",
            "value": Object {
              "name": "number",
              "type": "NameExpression",
            },
          },
        ],
        "type": "RecordType",
      },
      "type": "FunctionType",
    },
    "yields": Array [],
  },
]
`;

exports[`outputs flow-unnamed-params.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [x][1]
*   [x2][2]
*   [T][3]
*   [T2][4]
*   [T3][5]

## x

x

Type: function ([T][3]): [string][6]

## x2

x2

Type: function (a: [T][3]): [string][6]

## T

T

Type: function ([Array][7]<[string][6]>): {num: [number][8]}

## T2

T2

Type: function (a: [Array][7]<[string][6]>): {num: [number][8]}

## T3

T3

Type: function (a: [string][6]): {num: [number][8]}

[1]: #x

[2]: #x2

[3]: #t

[4]: #t2

[5]: #t3

[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String

[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array

[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
"
`;

exports[`outputs flow-unnamed-params.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "x",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "x",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Type: ",
        },
        Object {
          "type": "text",
          "value": "function (",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "T",
            },
          ],
          "identifier": "1",
          "referenceType": "full",
          "type": "linkReference",
        },
        Object {
          "type": "text",
          "value": ")",
        },
        Object {
          "type": "text",
          "value": ": ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "string",
            },
          ],
          "identifier": "2",
          "referenceType": "full",
          "type": "linkReference",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "x2",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "x2",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Type: ",
        },
        Object {
          "type": "text",
          "value": "function (",
        },
        Object {
          "type": "text",
          "value": "a: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "T",
            },
          ],
          "identifier": "1",
          "referenceType": "full",
          "type": "linkReference",
        },
        Object {
          "type": "text",
          "value": ")",
        },
        Object {
          "type": "text",
          "value": ": ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "string",
            },
          ],
          "identifier": "2",
          "referenceType": "full",
          "type": "linkReference",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "T",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "T",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Type: ",
        },
        Object {
          "type": "text",
          "value": "function (",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Array",
            },
          ],
          "identifier": "3",
          "referenceType": "full",
          "type": "linkReference",
        },
        Object {
          "type": "text",
          "value": "<",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "string",
            },
          ],
          "identifier": "2",
          "referenceType": "full",
          "type": "linkReference",
        },
        Object {
          "type": "text",
          "value": ">",
        },
        Object {
          "type": "text",
          "value": ")",
        },
        Object {
          "type": "text",
          "value": ": ",
        },
        Object {
          "type": "text",
          "value": "{",
        },
        Object {
          "type": "text",
          "value": "num: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "number",
            },
          ],
          "identifier": "4",
          "referenceType": "full",
          "type": "linkReference",
        },
        Object {
          "type": "text",
          "value": "}",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "T2",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "T2",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Type: ",
        },
        Object {
          "type": "text",
          "value": "function (",
        },
        Object {
          "type": "text",
          "value": "a: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Array",
            },
          ],
          "identifier": "3",
          "referenceType": "full",
          "type": "linkReference",
        },
        Object {
          "type": "text",
          "value": "<",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "string",
            },
          ],
          "identifier": "2",
          "referenceType": "full",
          "type": "linkReference",
        },
        Object {
          "type": "text",
          "value": ">",
        },
        Object {
          "type": "text",
          "value": ")",
        },
        Object {
          "type": "text",
          "value": ": ",
        },
        Object {
          "type": "text",
          "value": "{",
        },
        Object {
          "type": "text",
          "value": "num: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "number",
            },
          ],
          "identifier": "4",
          "referenceType": "full",
          "type": "linkReference",
        },
        Object {
          "type": "text",
          "value": "}",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "T3",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "T3",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Type: ",
        },
        Object {
          "type": "text",
          "value": "function (",
        },
        Object {
          "type": "text",
          "value": "a: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "string",
            },
          ],
          "identifier": "2",
          "referenceType": "full",
          "type": "linkReference",
        },
        Object {
          "type": "text",
          "value": ")",
        },
        Object {
          "type": "text",
          "value": ": ",
        },
        Object {
          "type": "text",
          "value": "{",
        },
        Object {
          "type": "text",
          "value": "num: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "number",
            },
          ],
          "identifier": "4",
          "referenceType": "full",
          "type": "linkReference",
        },
        Object {
          "type": "text",
          "value": "}",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "#t",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",
    },
    Object {
      "identifier": "3",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",
    },
    Object {
      "identifier": "4",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
  ],
  "type": "root",
}
`;

exports[`outputs import.meta.input.js JSON 1`] = `Array []`;

exports[`outputs import.meta.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents
"
`;

exports[`outputs import.meta.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
  ],
  "type": "root",
}
`;

exports[`outputs infer-private.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 178,
          "line": 14,
        },
        "start": Object {
          "column": 0,
          "index": 101,
          "line": 9,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "C description",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 20,
        "index": 100,
        "line": 8,
      },
      "start": Object {
        "column": 0,
        "index": 80,
        "line": 8,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 8,
                "index": 142,
                "line": 11,
              },
              "start": Object {
                "column": 2,
                "index": 136,
                "line": 11,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "m description",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 22,
              "index": 133,
              "line": 10,
            },
            "start": Object {
              "column": 2,
              "index": 113,
              "line": 10,
            },
          },
          "memberof": "C",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "m",
          "namespace": "C#m",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "C",
            },
            Object {
              "kind": "function",
              "name": "m",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
      "static": Array [],
    },
    "name": "C",
    "namespace": "C",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "class",
        "name": "C",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs infer-private.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [C][1]
    *   [m][2]

## C

C description

### m

m description

[1]: #c

[2]: #m
"
`;

exports[`outputs infer-private.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "C",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "C description",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "m",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "m description",
        },
      ],
      "type": "paragraph",
    },
  ],
  "type": "root",
}
`;

exports[`outputs inheritance.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [
      Object {
        "name": "Array",
        "title": "augments",
      },
    ],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 112,
          "line": 6,
        },
        "start": Object {
          "column": 0,
          "index": 52,
          "line": 4,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "With ES6, built-in types are extensible!",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 51,
        "line": 3,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "SpecialArray",
    "namespace": "SpecialArray",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "class",
        "name": "SpecialArray",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 42,
          "index": 174,
          "line": 9,
        },
        "start": Object {
          "column": 0,
          "index": 132,
          "line": 9,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 17,
        "index": 131,
        "line": 8,
      },
      "start": Object {
        "column": 0,
        "index": 114,
        "line": 8,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "Foo",
    "namespace": "Foo",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "class",
        "name": "Foo",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 0,
        "name": "Foo",
        "title": "class",
        "type": null,
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs inheritance.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [SpecialArray][1]
*   [Foo][2]

## SpecialArray

**Extends Array**

With ES6, built-in types are extensible!

## Foo

[1]: #specialarray

[2]: #foo
"
`;

exports[`outputs inheritance.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "SpecialArray",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Extends ",
            },
            Object {
              "type": "text",
              "value": "Array",
            },
          ],
          "type": "strong",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "With ES6, built-in types are extensible!",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Foo",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
  ],
  "type": "root",
}
`;

exports[`outputs inline-link.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 133,
          "line": 8,
        },
        "start": Object {
          "column": 0,
          "index": 95,
          "line": 6,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Adds one to a number",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 94,
        "line": 5,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "addOne",
    "namespace": "addOne",
    "params": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "the input",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 2,
        "name": "a",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "addOne",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "the output",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "the input",
        "lineNumber": 2,
        "name": "a",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "the output",
        "lineNumber": 3,
        "title": "returns",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 2,
          "index": 540,
          "line": 23,
        },
        "start": Object {
          "column": 0,
          "index": 487,
          "line": 21,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function returns the number one. Internally, this uses
",
            },
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "addOne",
                },
              ],
              "jsdoc": true,
              "title": null,
              "type": "link",
              "url": "addOne",
            },
            Object {
              "type": "text",
              "value": " to do the math. This demonstrates
",
            },
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "Addition",
                },
              ],
              "jsdoc": true,
              "title": null,
              "type": "link",
              "url": "https://en.wikipedia.org/wiki/Addition",
            },
            Object {
              "type": "text",
              "value": "
and ",
            },
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "https://en.wikipedia.org/wiki/Addition",
                },
              ],
              "jsdoc": true,
              "title": null,
              "type": "link",
              "url": "https://en.wikipedia.org/wiki/Addition",
            },
          ],
          "type": "paragraph",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This link refers to nothing: ",
            },
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "nothing",
                },
              ],
              "jsdoc": true,
              "title": null,
              "type": "link",
              "url": "nothing",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 486,
        "line": 20,
      },
      "start": Object {
        "column": 0,
        "index": 135,
        "line": 10,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "inline-link.input",
    "namespace": "inline-link.input",
    "params": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "the input",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 8,
        "name": "a",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "inline-link.input",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "numberone",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "the input",
        "lineNumber": 8,
        "name": "a",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "numberone",
        "lineNumber": 9,
        "title": "returns",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs inline-link.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [addOne][1]
    *   [Parameters][2]
*   [inline-link.input][3]
    *   [Parameters][4]

## addOne

Adds one to a number

### Parameters

*   \`a\` **[number][5]** the input

Returns **[number][5]** the output

## inline-link.input

This function returns the number one. Internally, this uses
[addOne][1] to do the math. This demonstrates
[Addition][6]
and [https://en.wikipedia.org/wiki/Addition][6]

This link refers to nothing: [nothing][7]

### Parameters

*   \`a\` **[number][5]** the input

Returns **[number][5]** numberone

[1]: #addone

[2]: #parameters

[3]: #inline-linkinput

[4]: #parameters-1

[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number

[6]: https://en.wikipedia.org/wiki/Addition

[7]: nothing
"
`;

exports[`outputs inline-link.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "addOne",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Adds one to a number",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "a",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "the input",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "number",
                },
              ],
              "identifier": "1",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "the output",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "inline-link.input",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This function returns the number one. Internally, this uses
",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "addOne",
            },
          ],
          "identifier": "2",
          "referenceType": "full",
          "type": "linkReference",
        },
        Object {
          "type": "text",
          "value": " to do the math. This demonstrates
",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Addition",
            },
          ],
          "identifier": "3",
          "referenceType": "full",
          "type": "linkReference",
        },
        Object {
          "type": "text",
          "value": "
and ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "https://en.wikipedia.org/wiki/Addition",
            },
          ],
          "identifier": "3",
          "referenceType": "full",
          "type": "linkReference",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This link refers to nothing: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "nothing",
            },
          ],
          "identifier": "4",
          "referenceType": "full",
          "type": "linkReference",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "a",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "the input",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "number",
                },
              ],
              "identifier": "1",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "numberone",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "#addone",
    },
    Object {
      "identifier": "3",
      "title": "",
      "type": "definition",
      "url": "https://en.wikipedia.org/wiki/Addition",
    },
    Object {
      "identifier": "4",
      "title": "",
      "type": "definition",
      "url": "nothing",
    },
  ],
  "type": "root",
}
`;

exports[`outputs interface.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [
      Object {
        "name": "Bar",
        "title": "extends",
      },
      Object {
        "name": "Baz",
        "title": "extends",
      },
    ],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 148,
          "line": 9,
        },
        "start": Object {
          "column": 0,
          "index": 33,
          "line": 4,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This is my interface.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "interface",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 32,
        "line": 3,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 15,
                "index": 105,
                "line": 6,
              },
              "start": Object {
                "column": 2,
                "index": 92,
                "line": 6,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "This is prop 1",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "member",
          "loc": Object {
            "end": Object {
              "column": 23,
              "index": 89,
              "line": 5,
            },
            "start": Object {
              "column": 2,
              "index": 68,
              "line": 5,
            },
          },
          "memberof": "Foo",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "prop1",
          "namespace": "Foo#prop1",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "interface",
              "name": "Foo",
            },
            Object {
              "kind": "member",
              "name": "prop1",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "type": Object {
            "name": "number",
            "type": "NameExpression",
          },
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 15,
                "index": 146,
                "line": 8,
              },
              "start": Object {
                "column": 2,
                "index": 133,
                "line": 8,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "This is prop 2",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "member",
          "loc": Object {
            "end": Object {
              "column": 23,
              "index": 130,
              "line": 7,
            },
            "start": Object {
              "column": 2,
              "index": 109,
              "line": 7,
            },
          },
          "memberof": "Foo",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "prop2",
          "namespace": "Foo#prop2",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "interface",
              "name": "Foo",
            },
            Object {
              "kind": "member",
              "name": "prop2",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "type": Object {
            "name": "string",
            "type": "NameExpression",
          },
          "yields": Array [],
        },
      ],
      "static": Array [],
    },
    "name": "Foo",
    "namespace": "Foo",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "interface",
        "name": "Foo",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs interface.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [Foo][1]
    *   [prop1][2]
    *   [prop2][3]

## Foo

**Extends Bar, Baz**

This is my interface.

### prop1

This is prop 1

Type: [number][4]

### prop2

This is prop 2

Type: [string][5]

[1]: #foo

[2]: #prop1

[3]: #prop2

[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number

[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
"
`;

exports[`outputs interface.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Foo",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Extends ",
            },
            Object {
              "type": "text",
              "value": "Bar, Baz",
            },
          ],
          "type": "strong",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This is my interface.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "prop1",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This is prop 1",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Type: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "number",
            },
          ],
          "identifier": "1",
          "referenceType": "full",
          "type": "linkReference",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "prop2",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This is prop 2",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Type: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "string",
            },
          ],
          "identifier": "2",
          "referenceType": "full",
          "type": "linkReference",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",
    },
  ],
  "type": "root",
}
`;

exports[`outputs internal.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 147,
          "line": 10,
        },
        "start": Object {
          "column": 0,
          "index": 113,
          "line": 8,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "I am in ",
            },
            Object {
              "type": "inlineCode",
              "value": "external.input.js",
            },
            Object {
              "type": "text",
              "value": ".",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 112,
        "line": 7,
      },
      "start": Object {
        "column": 0,
        "index": 73,
        "line": 5,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "foo",
    "namespace": "foo",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "foo",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs internal.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [foo][1]

## foo

I am in \`external.input.js\`.

[1]: #foo
"
`;

exports[`outputs internal.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "foo",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "I am in ",
        },
        Object {
          "type": "inlineCode",
          "value": "external.input.js",
        },
        Object {
          "type": "text",
          "value": ".",
        },
      ],
      "type": "paragraph",
    },
  ],
  "type": "root",
}
`;

exports[`outputs lends.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [
      Object {
        "description": null,
        "lineNumber": 3,
        "name": "Augmented",
        "title": "augments",
        "type": null,
      },
    ],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 2,
          "index": 541,
          "line": 28,
        },
        "start": Object {
          "column": 0,
          "index": 72,
          "line": 6,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "A neat layout view",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 71,
        "line": 5,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 20,
                "index": 176,
                "line": 10,
              },
              "start": Object {
                "column": 4,
                "index": 160,
                "line": 10,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "My field",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "loc": Object {
            "end": Object {
              "column": 19,
              "index": 155,
              "line": 9,
            },
            "start": Object {
              "column": 4,
              "index": 140,
              "line": 9,
            },
          },
          "memberof": "TheClass",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "my-field",
          "namespace": "TheClass#my-field",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "TheClass",
            },
            Object {
              "name": "my-field",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 5,
                "index": 360,
                "line": 18,
              },
              "start": Object {
                "column": 4,
                "index": 310,
                "line": 16,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "My neat function",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 7,
              "index": 305,
              "line": 15,
            },
            "start": Object {
              "column": 4,
              "index": 182,
              "line": 11,
            },
          },
          "memberof": "TheClass",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "foo",
          "namespace": "TheClass#foo",
          "params": Array [
            Object {
              "description": Object {
                "children": Array [
                  Object {
                    "children": Array [
                      Object {
                        "type": "text",
                        "value": "your word",
                      },
                    ],
                    "type": "paragraph",
                  },
                ],
                "type": "root",
              },
              "lineNumber": 2,
              "name": "word",
              "title": "param",
              "type": Object {
                "name": "string",
                "type": "NameExpression",
              },
            },
          ],
          "path": Array [
            Object {
              "kind": "class",
              "name": "TheClass",
            },
            Object {
              "kind": "function",
              "name": "foo",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [
            Object {
              "description": Object {
                "children": Array [
                  Object {
                    "children": Array [
                      Object {
                        "type": "text",
                        "value": "your word but one better",
                      },
                    ],
                    "type": "paragraph",
                  },
                ],
                "type": "root",
              },
              "title": "returns",
              "type": Object {
                "name": "string",
                "type": "NameExpression",
              },
            },
          ],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [
            Object {
              "description": "your word",
              "lineNumber": 2,
              "name": "word",
              "title": "param",
              "type": Object {
                "name": "string",
                "type": "NameExpression",
              },
            },
            Object {
              "description": "your word but one better",
              "lineNumber": 3,
              "title": "returns",
              "type": Object {
                "name": "string",
                "type": "NameExpression",
              },
            },
          ],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 5,
                "index": 534,
                "line": 26,
              },
              "start": Object {
                "column": 4,
                "index": 494,
                "line": 24,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "My neat function",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 7,
              "index": 489,
              "line": 23,
            },
            "start": Object {
              "column": 4,
              "index": 366,
              "line": 19,
            },
          },
          "memberof": "TheClass",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "bar",
          "namespace": "TheClass#bar",
          "params": Array [
            Object {
              "description": Object {
                "children": Array [
                  Object {
                    "children": Array [
                      Object {
                        "type": "text",
                        "value": "your word",
                      },
                    ],
                    "type": "paragraph",
                  },
                ],
                "type": "root",
              },
              "lineNumber": 2,
              "name": "word",
              "title": "param",
              "type": Object {
                "name": "string",
                "type": "NameExpression",
              },
            },
          ],
          "path": Array [
            Object {
              "kind": "class",
              "name": "TheClass",
            },
            Object {
              "kind": "function",
              "name": "bar",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [
            Object {
              "description": Object {
                "children": Array [
                  Object {
                    "children": Array [
                      Object {
                        "type": "text",
                        "value": "your word but one better",
                      },
                    ],
                    "type": "paragraph",
                  },
                ],
                "type": "root",
              },
              "title": "returns",
              "type": Object {
                "name": "string",
                "type": "NameExpression",
              },
            },
          ],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [
            Object {
              "description": "your word",
              "lineNumber": 2,
              "name": "word",
              "title": "param",
              "type": Object {
                "name": "string",
                "type": "NameExpression",
              },
            },
            Object {
              "description": "your word but one better",
              "lineNumber": 3,
              "title": "returns",
              "type": Object {
                "name": "string",
                "type": "NameExpression",
              },
            },
          ],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
      "static": Array [],
    },
    "name": "TheClass",
    "namespace": "TheClass",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "class",
        "name": "TheClass",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 2,
        "name": "TheClass",
        "title": "class",
        "type": null,
      },
      Object {
        "description": null,
        "lineNumber": 3,
        "name": "Augmented",
        "title": "augments",
        "type": null,
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs lends.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [TheClass][1]
    *   [my-field][2]
    *   [foo][3]
        *   [Parameters][4]
    *   [bar][5]
        *   [Parameters][6]

## TheClass

**Extends Augmented**

A neat layout view

### my-field

My field

### foo

My neat function

#### Parameters

*   \`word\` **[string][7]** your word

Returns **[string][7]** your word but one better

### bar

My neat function

#### Parameters

*   \`word\` **[string][7]** your word

Returns **[string][7]** your word but one better

[1]: #theclass

[2]: #my-field

[3]: #foo

[4]: #parameters

[5]: #bar

[6]: #parameters-1

[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
"
`;

exports[`outputs lends.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "TheClass",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Extends ",
            },
            Object {
              "type": "text",
              "value": "Augmented",
            },
          ],
          "type": "strong",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "A neat layout view",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "my-field",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "My field",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "foo",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "My neat function",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 4,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "word",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "string",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "your word",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "string",
                },
              ],
              "identifier": "1",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "your word but one better",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "bar",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "My neat function",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 4,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "word",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "string",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "your word",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "string",
                },
              ],
              "identifier": "1",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "your word but one better",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",
    },
  ],
  "type": "root",
}
`;

exports[`outputs literal_types.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 16,
          "index": 70,
          "line": 4,
        },
        "start": Object {
          "column": 0,
          "index": 54,
          "line": 4,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 53,
        "line": 3,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "f",
    "namespace": "f",
    "params": Array [
      Object {
        "lineNumber": 1,
        "name": "x",
        "title": "param",
        "type": Object {
          "elements": Array [
            Object {
              "type": "StringLiteralType",
              "value": "a",
            },
            Object {
              "type": "StringLiteralType",
              "value": "b",
            },
            Object {
              "type": "StringLiteralType",
              "value": "",
            },
            Object {
              "type": "NumericLiteralType",
              "value": 0,
            },
            Object {
              "type": "NumericLiteralType",
              "value": -42,
            },
            Object {
              "type": "NumericLiteralType",
              "value": 3.14,
            },
          ],
          "type": "UnionType",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "f",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 1,
        "name": "x",
        "title": "param",
        "type": Object {
          "elements": Array [
            Object {
              "type": "StringLiteralType",
              "value": "a",
            },
            Object {
              "type": "StringLiteralType",
              "value": "b",
            },
            Object {
              "type": "StringLiteralType",
              "value": "",
            },
            Object {
              "type": "NumericLiteralType",
              "value": 0,
            },
            Object {
              "type": "NumericLiteralType",
              "value": -42,
            },
            Object {
              "type": "NumericLiteralType",
              "value": 3.14,
            },
          ],
          "type": "UnionType",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 49,
          "index": 128,
          "line": 7,
        },
        "start": Object {
          "column": 0,
          "index": 79,
          "line": 7,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 6,
        "index": 78,
        "line": 6,
      },
      "start": Object {
        "column": 0,
        "index": 72,
        "line": 6,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "g",
    "namespace": "g",
    "params": Array [
      Object {
        "lineNumber": 7,
        "name": "x",
        "title": "param",
        "type": Object {
          "elements": Array [
            Object {
              "type": "StringLiteralType",
              "value": "a",
            },
            Object {
              "type": "StringLiteralType",
              "value": "b",
            },
            Object {
              "type": "StringLiteralType",
              "value": "",
            },
            Object {
              "type": "NumericLiteralType",
              "value": 0,
            },
            Object {
              "type": "NumericLiteralType",
              "value": -42,
            },
            Object {
              "type": "NumericLiteralType",
              "value": 3.14,
            },
          ],
          "type": "UnionType",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "g",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs literal_types.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [f][1]
    *   [Parameters][2]
*   [g][3]
    *   [Parameters][4]

## f

### Parameters

*   \`x\` **(\`\\"a\\"\` | \`\\"b\\"\` | \`\\"\\"\` | \`0\` | \`-42\` | \`3.14\`)**&#x20;

## g

### Parameters

*   \`x\` **(\`\\"a\\"\` | \`\\"b\\"\` | \`\\"\\"\` | \`0\` | \`-42\` | \`3.14\`)**&#x20;

[1]: #f

[2]: #parameters

[3]: #g

[4]: #parameters-1
"
`;

exports[`outputs literal_types.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "f",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "x",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "(",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "\\"a\\"",
                    },
                    Object {
                      "type": "text",
                      "value": " | ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "\\"b\\"",
                    },
                    Object {
                      "type": "text",
                      "value": " | ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "\\"\\"",
                    },
                    Object {
                      "type": "text",
                      "value": " | ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "0",
                    },
                    Object {
                      "type": "text",
                      "value": " | ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "-42",
                    },
                    Object {
                      "type": "text",
                      "value": " | ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "3.14",
                    },
                    Object {
                      "type": "text",
                      "value": ")",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "g",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "x",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "(",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "\\"a\\"",
                    },
                    Object {
                      "type": "text",
                      "value": " | ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "\\"b\\"",
                    },
                    Object {
                      "type": "text",
                      "value": " | ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "\\"\\"",
                    },
                    Object {
                      "type": "text",
                      "value": " | ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "0",
                    },
                    Object {
                      "type": "text",
                      "value": " | ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "-42",
                    },
                    Object {
                      "type": "text",
                      "value": " | ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "3.14",
                    },
                    Object {
                      "type": "text",
                      "value": ")",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
  ],
  "type": "root",
}
`;

exports[`outputs memberedclass.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 2,
          "index": 470,
          "line": 28,
        },
        "start": Object {
          "column": 0,
          "index": 86,
          "line": 7,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This is my class, a demo thing.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [
      Object {
        "commentLineNumber": 4,
        "message": "@memberof reference to com.Test not found",
      },
    ],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 85,
        "line": 6,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "memberof": "com.Test",
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 3,
                "index": 343,
                "line": 20,
              },
              "start": Object {
                "column": 2,
                "index": 297,
                "line": 18,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "Get the number 42",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 7,
              "index": 294,
              "line": 17,
            },
            "start": Object {
              "column": 2,
              "index": 160,
              "line": 12,
            },
          },
          "memberof": "com.Test.MyClass",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "getFoo",
          "namespace": "MyClass#getFoo",
          "params": Array [
            Object {
              "description": Object {
                "children": Array [
                  Object {
                    "children": Array [
                      Object {
                        "type": "text",
                        "value": "whether to get the number",
                      },
                    ],
                    "type": "paragraph",
                  },
                ],
                "type": "root",
              },
              "lineNumber": 3,
              "name": "getIt",
              "title": "param",
              "type": Object {
                "name": "boolean",
                "type": "NameExpression",
              },
            },
          ],
          "path": Array [
            Object {
              "kind": "class",
              "name": "MyClass",
            },
            Object {
              "kind": "function",
              "name": "getFoo",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [
            Object {
              "description": Object {
                "children": Array [
                  Object {
                    "children": Array [
                      Object {
                        "type": "text",
                        "value": "forty-two",
                      },
                    ],
                    "type": "paragraph",
                  },
                ],
                "type": "root",
              },
              "title": "returns",
              "type": Object {
                "name": "number",
                "type": "NameExpression",
              },
            },
          ],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [
            Object {
              "description": "whether to get the number",
              "lineNumber": 3,
              "name": "getIt",
              "title": "param",
              "type": Object {
                "name": "boolean",
                "type": "NameExpression",
              },
            },
            Object {
              "description": "forty-two",
              "lineNumber": 4,
              "title": "returns",
              "type": Object {
                "name": "number",
                "type": "NameExpression",
              },
            },
          ],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
      "static": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 26,
                "index": 467,
                "line": 27,
              },
              "start": Object {
                "column": 2,
                "index": 443,
                "line": 27,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "Get undefined",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 7,
              "index": 440,
              "line": 26,
            },
            "start": Object {
              "column": 2,
              "index": 347,
              "line": 22,
            },
          },
          "memberof": "com.Test.MyClass",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "getUndefined",
          "namespace": "MyClass.getUndefined",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "MyClass",
            },
            Object {
              "kind": "function",
              "name": "getUndefined",
              "scope": "static",
            },
          ],
          "properties": Array [],
          "returns": Array [
            Object {
              "description": Object {
                "children": Array [
                  Object {
                    "children": Array [
                      Object {
                        "type": "text",
                        "value": "does not return anything.",
                      },
                    ],
                    "type": "paragraph",
                  },
                ],
                "type": "root",
              },
              "title": "returns",
              "type": Object {
                "type": "UndefinedLiteral",
              },
            },
          ],
          "scope": "static",
          "sees": Array [],
          "tags": Array [
            Object {
              "description": "does not return anything.",
              "lineNumber": 3,
              "title": "returns",
              "type": Object {
                "type": "UndefinedLiteral",
              },
            },
          ],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
    },
    "name": "MyClass",
    "namespace": "MyClass",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "class",
        "name": "MyClass",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 3,
        "name": "MyClass",
        "title": "class",
        "type": null,
      },
      Object {
        "description": "com.Test",
        "lineNumber": 4,
        "title": "memberof",
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs memberedclass.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [MyClass][1]
    *   [getFoo][2]
        *   [Parameters][3]
    *   [getUndefined][4]

## MyClass

This is my class, a demo thing.

### getFoo

Get the number 42

#### Parameters

*   \`getIt\` **[boolean][5]** whether to get the number

Returns **[number][6]** forty-two

### getUndefined

Get undefined

Returns **[undefined][7]** does not return anything.

[1]: #myclass

[2]: #getfoo

[3]: #parameters

[4]: #getundefined

[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean

[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number

[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined
"
`;

exports[`outputs memberedclass.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "MyClass",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This is my class, a demo thing.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "getFoo",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Get the number 42",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 4,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "getIt",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "boolean",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "whether to get the number",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "number",
                },
              ],
              "identifier": "2",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "forty-two",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "getUndefined",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Get undefined",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "undefined",
                },
              ],
              "identifier": "3",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "does not return anything.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
    Object {
      "identifier": "3",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined",
    },
  ],
  "type": "root",
}
`;

exports[`outputs merge-infered-type.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 150,
          "line": 9,
        },
        "start": Object {
          "column": 0,
          "index": 95,
          "line": 7,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Add five to ",
            },
            Object {
              "type": "inlineCode",
              "value": "x",
            },
            Object {
              "type": "text",
              "value": ".",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 94,
        "line": 6,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "addFive",
    "namespace": "addFive",
    "params": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "The number to add five to.",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 3,
        "name": "x",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "addFive",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "x plus five.",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "The number to add five to.",
        "lineNumber": 3,
        "name": "x",
        "title": "param",
        "type": null,
      },
      Object {
        "description": "x plus five.",
        "lineNumber": 4,
        "title": "returns",
        "type": null,
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs merge-infered-type.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [addFive][1]
    *   [Parameters][2]

## addFive

Add five to \`x\`.

### Parameters

*   \`x\` **[number][3]** The number to add five to.

Returns **[number][3]** x plus five.

[1]: #addfive

[2]: #parameters

[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
"
`;

exports[`outputs merge-infered-type.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "addFive",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Add five to ",
        },
        Object {
          "type": "inlineCode",
          "value": "x",
        },
        Object {
          "type": "text",
          "value": ".",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "x",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "The number to add five to.",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "number",
                },
              ],
              "identifier": "1",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "x plus five.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
  ],
  "type": "root",
}
`;

exports[`outputs meta.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 2,
          "index": 352,
          "line": 14,
        },
        "start": Object {
          "column": 0,
          "index": 288,
          "line": 11,
        },
      },
    },
    "copyright": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Tom MacWright",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function returns the number one.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "license": "BSD",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 287,
        "line": 10,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "meta.input",
    "namespace": "meta.input",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "meta.input",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "numberone",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "markdown link",
                    },
                  ],
                  "title": null,
                  "type": "link",
                  "url": "http://foo.com/",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "sees",
      },
    ],
    "since": "2.0.0",
    "tags": Array [
      Object {
        "description": "numberone",
        "lineNumber": 2,
        "title": "returns",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "This function returns the number one.",
        "lineNumber": 3,
        "title": "description",
      },
      Object {
        "description": "[markdown link](http://foo.com/)",
        "lineNumber": 4,
        "title": "see",
      },
      Object {
        "description": "1.0.0",
        "lineNumber": 5,
        "title": "version",
      },
      Object {
        "description": "2.0.0",
        "lineNumber": 6,
        "title": "since",
      },
      Object {
        "description": "Tom MacWright",
        "lineNumber": 7,
        "title": "copyright",
      },
      Object {
        "description": "BSD",
        "lineNumber": 8,
        "title": "license",
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "version": "1.0.0",
    "yields": Array [],
  },
]
`;

exports[`outputs meta.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [meta.input][1]

## meta.input

*   **See**: [markdown link][2]

This function returns the number one.

Returns **[number][3]** numberone

**Meta**

*   **version**: 1.0.0
*   **since**: 2.0.0
*   **copyright**: Tom MacWright
*   **license**: BSD

[1]: #metainput

[2]: http://foo.com/

[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
"
`;

exports[`outputs meta.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "meta.input",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "See",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": ": ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": "markdown link",
                            },
                          ],
                          "identifier": "1",
                          "referenceType": "full",
                          "type": "linkReference",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "root",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This function returns the number one.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "number",
                },
              ],
              "identifier": "2",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "numberone",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Meta",
        },
      ],
      "type": "strong",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "version",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": ": ",
                },
                Object {
                  "type": "text",
                  "value": "1.0.0",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "since",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": ": ",
                },
                Object {
                  "type": "text",
                  "value": "2.0.0",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "copyright",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": ": ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Tom MacWright",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "root",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "license",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": ": ",
                },
                Object {
                  "type": "text",
                  "value": "BSD",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "http://foo.com/",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
  ],
  "type": "root",
}
`;

exports[`outputs multisignature.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 289,
          "line": 19,
        },
        "start": Object {
          "column": 0,
          "index": 170,
          "line": 13,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Get the time",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 73,
        "line": 6,
      },
      "start": Object {
        "column": 0,
        "index": 14,
        "line": 3,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "getTheTime",
    "namespace": "getTheTime",
    "params": Array [
      Object {
        "lineNumber": 13,
        "name": "time",
        "title": "param",
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "getTheTime",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "the current date",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "Date",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "the current date",
        "lineNumber": 2,
        "title": "returns",
        "type": Object {
          "name": "Date",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 289,
          "line": 19,
        },
        "start": Object {
          "column": 0,
          "index": 170,
          "line": 13,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Set the time",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 169,
        "line": 12,
      },
      "start": Object {
        "column": 0,
        "index": 75,
        "line": 8,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "getTheTime",
    "namespace": "getTheTime",
    "params": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "the current time",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 2,
        "name": "time",
        "title": "param",
        "type": Object {
          "name": "Date",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "getTheTime",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "nothing",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "type": "UndefinedLiteral",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "the current time",
        "lineNumber": 2,
        "name": "time",
        "title": "param",
        "type": Object {
          "name": "Date",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "nothing",
        "lineNumber": 3,
        "title": "returns",
        "type": Object {
          "type": "UndefinedLiteral",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs multisignature.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [getTheTime][1]
    *   [Parameters][2]
*   [getTheTime][3]
    *   [Parameters][4]

## getTheTime

Get the time

### Parameters

*   \`time\` &#x20;

Returns **[Date][5]** the current date

## getTheTime

Set the time

### Parameters

*   \`time\` **[Date][5]** the current time

Returns **[undefined][6]** nothing

[1]: #getthetime

[2]: #parameters

[3]: #getthetime-1

[4]: #parameters-1

[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date

[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined
"
`;

exports[`outputs multisignature.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "getTheTime",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Get the time",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "time",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "Date",
                },
              ],
              "identifier": "1",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "the current date",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "getTheTime",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Set the time",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "time",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Date",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "the current time",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "undefined",
                },
              ],
              "identifier": "2",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "nothing",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined",
    },
  ],
  "type": "root",
}
`;

exports[`outputs nearby_params.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 3,
          "index": 585,
          "line": 13,
        },
        "start": Object {
          "column": 0,
          "index": 479,
          "line": 10,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Attempt to establish a cookie-based session in exchange for credentials.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 478,
        "line": 9,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "sessions.create",
    "namespace": "sessions.create",
    "params": Array [
      Object {
        "lineNumber": 3,
        "name": "credentials",
        "properties": Array [
          Object {
            "description": Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "Login username. Also accepted as ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "username",
                    },
                    Object {
                      "type": "text",
                      "value": " or ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "email",
                    },
                    Object {
                      "type": "text",
                      "value": ".",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "root",
            },
            "lineNumber": 4,
            "name": "credentials.name",
            "title": "param",
            "type": Object {
              "name": "string",
              "type": "NameExpression",
            },
          },
          Object {
            "description": Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "Login password",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "root",
            },
            "lineNumber": 5,
            "name": "credentials.password",
            "title": "param",
            "type": Object {
              "name": "string",
              "type": "NameExpression",
            },
          },
        ],
        "title": "param",
        "type": Object {
          "name": "object",
          "type": "NameExpression",
        },
      },
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "Gets passed ",
                },
                Object {
                  "type": "inlineCode",
                  "value": "(err, { success:Boolean })",
                },
                Object {
                  "type": "text",
                  "value": ".",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 6,
        "name": "callback",
        "title": "param",
        "type": Object {
          "expression": Object {
            "name": "function",
            "type": "NameExpression",
          },
          "type": "OptionalType",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "sessions.create",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "promise, to be resolved on success or rejected on failure",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "Promise",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 1,
        "name": null,
        "title": "function",
      },
      Object {
        "description": null,
        "lineNumber": 2,
        "name": "sessions.create",
        "title": "name",
      },
      Object {
        "description": null,
        "lineNumber": 3,
        "name": "credentials",
        "title": "param",
        "type": Object {
          "name": "object",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "Login username. Also accepted as \`username\` or \`email\`.",
        "lineNumber": 4,
        "name": "credentials.name",
        "title": "param",
        "type": Object {
          "name": "string",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "Login password",
        "lineNumber": 5,
        "name": "credentials.password",
        "title": "param",
        "type": Object {
          "name": "string",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "Gets passed \`(err, { success:Boolean })\`.",
        "lineNumber": 6,
        "name": "callback",
        "title": "param",
        "type": Object {
          "expression": Object {
            "name": "function",
            "type": "NameExpression",
          },
          "type": "OptionalType",
        },
      },
      Object {
        "description": "promise, to be resolved on success or rejected on failure",
        "lineNumber": 7,
        "title": "returns",
        "type": Object {
          "name": "Promise",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs nearby_params.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [sessions.create][1]
    *   [Parameters][2]

## sessions.create

Attempt to establish a cookie-based session in exchange for credentials.

### Parameters

*   \`credentials\` **[object][3]**&#x20;

    *   \`credentials.name\` **[string][4]** Login username. Also accepted as \`username\` or \`email\`.
    *   \`credentials.password\` **[string][4]** Login password
*   \`callback\` **[function][5]?** Gets passed \`(err, { success:Boolean })\`.

Returns **[Promise][6]** promise, to be resolved on success or rejected on failure

[1]: #sessionscreate

[2]: #parameters

[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object

[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String

[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function

[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
"
`;

exports[`outputs nearby_params.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "sessions.create",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Attempt to establish a cookie-based session in exchange for credentials.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "credentials",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "object",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
            Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "credentials.name",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "children": Array [
                                Object {
                                  "type": "text",
                                  "value": "string",
                                },
                              ],
                              "identifier": "2",
                              "referenceType": "full",
                              "type": "linkReference",
                            },
                          ],
                          "type": "strong",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": "Login username. Also accepted as ",
                            },
                            Object {
                              "type": "inlineCode",
                              "value": "username",
                            },
                            Object {
                              "type": "text",
                              "value": " or ",
                            },
                            Object {
                              "type": "inlineCode",
                              "value": "email",
                            },
                            Object {
                              "type": "text",
                              "value": ".",
                            },
                          ],
                          "type": "paragraph",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "credentials.password",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "children": Array [
                                Object {
                                  "type": "text",
                                  "value": "string",
                                },
                              ],
                              "identifier": "2",
                              "referenceType": "full",
                              "type": "linkReference",
                            },
                          ],
                          "type": "strong",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": "Login password",
                            },
                          ],
                          "type": "paragraph",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
              ],
              "ordered": false,
              "spread": false,
              "type": "list",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "callback",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "function",
                        },
                      ],
                      "identifier": "3",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                    Object {
                      "type": "text",
                      "value": "?",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "Gets passed ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "(err, { success:Boolean })",
                    },
                    Object {
                      "type": "text",
                      "value": ".",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "Promise",
                },
              ],
              "identifier": "4",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "promise, to be resolved on success or rejected on failure",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",
    },
    Object {
      "identifier": "3",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function",
    },
    Object {
      "identifier": "4",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise",
    },
  ],
  "type": "root",
}
`;

exports[`outputs nest_events.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 6,
          "index": 114,
          "line": 13,
        },
        "start": Object {
          "column": 0,
          "index": 108,
          "line": 13,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Klass description",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 48,
        "line": 5,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 6,
                "index": 114,
                "line": 13,
              },
              "start": Object {
                "column": 0,
                "index": 108,
                "line": 13,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "Klass event",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "event",
          "loc": Object {
            "end": Object {
              "column": 3,
              "index": 107,
              "line": 12,
            },
            "start": Object {
              "column": 1,
              "index": 52,
              "line": 8,
            },
          },
          "memberof": "Klass",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "bar",
          "namespace": "Klass.event:bar",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "Klass",
            },
            Object {
              "kind": "event",
              "name": "bar",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "sees": Array [],
          "tags": Array [
            Object {
              "description": "bar",
              "lineNumber": 2,
              "title": "event",
            },
            Object {
              "description": "Klass",
              "lineNumber": 3,
              "title": "memberof",
            },
          ],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "Klass",
    "namespace": "Klass",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "class",
        "name": "Klass",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 3,
        "name": "Klass",
        "title": "class",
        "type": null,
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs nest_events.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [Klass][1]
    *   [bar][2]

## Klass

Klass description

### bar

Klass event

[1]: #klass

[2]: #bar
"
`;

exports[`outputs nest_events.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Klass",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Klass description",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "bar",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Klass event",
        },
      ],
      "type": "paragraph",
    },
  ],
  "type": "root",
}
`;

exports[`outputs nest_params.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 32,
          "index": 314,
          "line": 7,
        },
        "start": Object {
          "column": 0,
          "index": 282,
          "line": 7,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 281,
        "line": 6,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "foo",
    "namespace": "foo",
    "params": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "The employees who are responsible for the project.",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 1,
        "name": "employees",
        "properties": Array [
          Object {
            "description": Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "The name of an employee.",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "root",
            },
            "lineNumber": 2,
            "name": "employees[].name",
            "title": "param",
            "type": Object {
              "name": "string",
              "type": "NameExpression",
            },
          },
          Object {
            "description": Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "The employee's department.",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "root",
            },
            "lineNumber": 3,
            "name": "employees[].department",
            "title": "param",
            "type": Object {
              "name": "string",
              "type": "NameExpression",
            },
          },
        ],
        "title": "param",
        "type": Object {
          "applications": Array [
            Object {
              "name": "Object",
              "type": "NameExpression",
            },
          ],
          "expression": Object {
            "name": "Array",
            "type": "NameExpression",
          },
          "type": "TypeApplication",
        },
      },
      Object {
        "default": "minion",
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "The employee's type.",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 4,
        "name": "type",
        "title": "param",
        "type": Object {
          "name": "string",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "foo",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "The employees who are responsible for the project.",
        "lineNumber": 1,
        "name": "employees",
        "title": "param",
        "type": Object {
          "applications": Array [
            Object {
              "name": "Object",
              "type": "NameExpression",
            },
          ],
          "expression": Object {
            "name": "Array",
            "type": "NameExpression",
          },
          "type": "TypeApplication",
        },
      },
      Object {
        "description": "The name of an employee.",
        "lineNumber": 2,
        "name": "employees[].name",
        "title": "param",
        "type": Object {
          "name": "string",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "The employee's department.",
        "lineNumber": 3,
        "name": "employees[].department",
        "title": "param",
        "type": Object {
          "name": "string",
          "type": "NameExpression",
        },
      },
      Object {
        "default": "minion",
        "description": "The employee's type.",
        "lineNumber": 4,
        "name": "type",
        "title": "param",
        "type": Object {
          "expression": Object {
            "name": "string",
            "type": "NameExpression",
          },
          "type": "OptionalType",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 32,
          "index": 314,
          "line": 7,
        },
        "start": Object {
          "column": 0,
          "index": 282,
          "line": 7,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 654,
        "line": 19,
      },
      "start": Object {
        "column": 0,
        "index": 316,
        "line": 9,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "foo",
    "namespace": "foo",
    "params": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "some options",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 2,
        "name": "options",
        "properties": Array [
          Object {
            "description": Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "how much",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "root",
            },
            "lineNumber": 3,
            "name": "options.much",
            "title": "param",
            "type": Object {
              "name": "number",
              "type": "NameExpression",
            },
          },
        ],
        "title": "param",
        "type": Object {
          "name": "Object",
          "type": "NameExpression",
        },
      },
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "something else",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 4,
        "name": "bar",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "name": "foo",
      },
    ],
    "properties": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "the current time",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 5,
        "name": "theTime",
        "properties": Array [
          Object {
            "lineNumber": 6,
            "name": "theTime.hours",
            "title": "property",
            "type": Object {
              "name": "number",
              "type": "NameExpression",
            },
          },
          Object {
            "lineNumber": 7,
            "name": "theTime.minutes",
            "title": "property",
            "type": Object {
              "name": "number",
              "type": "NameExpression",
            },
          },
          Object {
            "lineNumber": 8,
            "name": "theTime.seconds",
            "title": "property",
            "type": Object {
              "name": "number",
              "type": "NameExpression",
            },
          },
        ],
        "title": "property",
        "type": Object {
          "name": "Object",
          "type": "NameExpression",
        },
      },
    ],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "foo something else",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "Object",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 1,
        "name": "foo",
        "title": "name",
      },
      Object {
        "description": "some options",
        "lineNumber": 2,
        "name": "options",
        "title": "param",
        "type": Object {
          "name": "Object",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "how much",
        "lineNumber": 3,
        "name": "options.much",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "something else",
        "lineNumber": 4,
        "name": "bar",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "the current time",
        "lineNumber": 5,
        "name": "theTime",
        "title": "property",
        "type": Object {
          "name": "Object",
          "type": "NameExpression",
        },
      },
      Object {
        "description": null,
        "lineNumber": 6,
        "name": "theTime.hours",
        "title": "property",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": null,
        "lineNumber": 7,
        "name": "theTime.minutes",
        "title": "property",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": null,
        "lineNumber": 8,
        "name": "theTime.seconds",
        "title": "property",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "foo something else",
        "lineNumber": 9,
        "title": "returns",
        "type": Object {
          "name": "Object",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs nest_params.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [foo][1]
    *   [Parameters][2]
*   [foo][3]
    *   [Parameters][4]
    *   [Properties][5]

## foo

### Parameters

*   \`employees\` **[Array][6]<[Object][7]>** The employees who are responsible for the project.

    *   \`employees[].name\` **[string][8]** The name of an employee.
    *   \`employees[].department\` **[string][8]** The employee's department.
*   \`type\` **[string][8]** The employee's type.&#x20;(optional, default \`minion\`)

## foo

### Parameters

*   \`options\` **[Object][7]** some options

    *   \`options.much\` **[number][9]** how much
*   \`bar\` **[number][9]** something else

### Properties

*   \`theTime\` **[Object][7]** the current time

    *   \`theTime.hours\` **[number][9]**&#x20;
    *   \`theTime.minutes\` **[number][9]**&#x20;
    *   \`theTime.seconds\` **[number][9]**&#x20;

Returns **[Object][7]** foo something else

[1]: #foo

[2]: #parameters

[3]: #foo-1

[4]: #parameters-1

[5]: #properties

[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array

[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object

[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String

[9]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
"
`;

exports[`outputs nest_params.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "foo",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "employees",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Array",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                    Object {
                      "type": "text",
                      "value": "<",
                    },
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Object",
                        },
                      ],
                      "identifier": "2",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                    Object {
                      "type": "text",
                      "value": ">",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "The employees who are responsible for the project.",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
            Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "employees[].name",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "children": Array [
                                Object {
                                  "type": "text",
                                  "value": "string",
                                },
                              ],
                              "identifier": "3",
                              "referenceType": "full",
                              "type": "linkReference",
                            },
                          ],
                          "type": "strong",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": "The name of an employee.",
                            },
                          ],
                          "type": "paragraph",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "employees[].department",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "children": Array [
                                Object {
                                  "type": "text",
                                  "value": "string",
                                },
                              ],
                              "identifier": "3",
                              "referenceType": "full",
                              "type": "linkReference",
                            },
                          ],
                          "type": "strong",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": "The employee's department.",
                            },
                          ],
                          "type": "paragraph",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
              ],
              "ordered": false,
              "spread": false,
              "type": "list",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "type",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "string",
                        },
                      ],
                      "identifier": "3",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "The employee's type.",
                    },
                  ],
                  "type": "paragraph",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": " (optional, default ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "minion",
                    },
                    Object {
                      "type": "text",
                      "value": ")",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "foo",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "options",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Object",
                        },
                      ],
                      "identifier": "2",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "some options",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
            Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "options.much",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "children": Array [
                                Object {
                                  "type": "text",
                                  "value": "number",
                                },
                              ],
                              "identifier": "4",
                              "referenceType": "full",
                              "type": "linkReference",
                            },
                          ],
                          "type": "strong",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": "how much",
                            },
                          ],
                          "type": "paragraph",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
              ],
              "ordered": false,
              "spread": false,
              "type": "list",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "bar",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "4",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "something else",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Properties",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "theTime",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Object",
                        },
                      ],
                      "identifier": "2",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "the current time",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
            Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "theTime.hours",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "children": Array [
                                Object {
                                  "type": "text",
                                  "value": "number",
                                },
                              ],
                              "identifier": "4",
                              "referenceType": "full",
                              "type": "linkReference",
                            },
                          ],
                          "type": "strong",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "theTime.minutes",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "children": Array [
                                Object {
                                  "type": "text",
                                  "value": "number",
                                },
                              ],
                              "identifier": "4",
                              "referenceType": "full",
                              "type": "linkReference",
                            },
                          ],
                          "type": "strong",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "theTime.seconds",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "children": Array [
                                Object {
                                  "type": "text",
                                  "value": "number",
                                },
                              ],
                              "identifier": "4",
                              "referenceType": "full",
                              "type": "linkReference",
                            },
                          ],
                          "type": "strong",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
              ],
              "ordered": false,
              "spread": false,
              "type": "list",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "Object",
                },
              ],
              "identifier": "2",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "foo something else",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object",
    },
    Object {
      "identifier": "3",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",
    },
    Object {
      "identifier": "4",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
  ],
  "type": "root",
}
`;

exports[`outputs newline-in-description.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 0,
          "index": 185,
          "line": 7,
        },
        "start": Object {
          "column": 0,
          "index": 0,
          "line": 1,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "A function.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [
      Object {
        "message": "could not determine @name for hierarchy",
      },
    ],
    "examples": Array [],
    "implements": Array [],
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 184,
        "line": 6,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "namespace": "",
    "params": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "The input to the function.
I should be able to continue the description on a new line, and have it
still work in the markdown table.",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 2,
        "name": "a",
        "title": "param",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "The input to the function.
I should be able to continue the description on a new line, and have it
still work in the markdown table.",
        "lineNumber": 2,
        "name": "a",
        "title": "param",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs newline-in-description.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [][1]
    *   [Parameters][2]

##

A function.

### Parameters

*   \`a\` **[Number][3]** The input to the function.
    I should be able to continue the description on a new line, and have it
    still work in the markdown table.

[1]: #

[2]: #parameters

[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
"
`;

exports[`outputs newline-in-description.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "A function.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "a",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Number",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "The input to the function.
I should be able to continue the description on a new line, and have it
still work in the markdown table.",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
  ],
  "type": "root",
}
`;

exports[`outputs no-name.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 0,
          "index": 47,
          "line": 5,
        },
        "start": Object {
          "column": 0,
          "index": 0,
          "line": 1,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Set the time",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [
      Object {
        "message": "could not determine @name for hierarchy",
      },
    ],
    "examples": Array [],
    "implements": Array [],
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 46,
        "line": 4,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "namespace": "",
    "params": Array [
      Object {
        "lineNumber": 2,
        "name": "bar",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 2,
        "name": "bar",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs no-name.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [][1]
    *   [Parameters][2]

##

Set the time

### Parameters

*   \`bar\` **[number][3]**&#x20;

[1]: #

[2]: #parameters

[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
"
`;

exports[`outputs no-name.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Set the time",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "bar",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
  ],
  "type": "root",
}
`;

exports[`outputs optional-record-field-type.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 2,
          "index": 55,
          "line": 5,
        },
        "start": Object {
          "column": 0,
          "index": 7,
          "line": 2,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "typedef",
    "loc": Object {
      "end": Object {
        "column": 6,
        "index": 6,
        "line": 1,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "Record",
    "namespace": "Record",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "typedef",
        "name": "Record",
      },
    ],
    "properties": Array [
      Object {
        "lineNumber": 3,
        "name": "opt",
        "title": "property",
        "type": Object {
          "expression": Object {
            "name": "number",
            "type": "NameExpression",
          },
          "type": "OptionalType",
        },
      },
      Object {
        "lineNumber": 4,
        "name": "req",
        "title": "property",
        "type": Object {
          "name": "string",
          "type": "NameExpression",
        },
      },
    ],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs optional-record-field-type.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [Record][1]
    *   [Properties][2]

## Record

### Properties

*   \`opt\` **[number][3]?**&#x20;
*   \`req\` **[string][4]**&#x20;

[1]: #record

[2]: #properties

[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number

[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
"
`;

exports[`outputs optional-record-field-type.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Record",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Properties",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "opt",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                    Object {
                      "type": "text",
                      "value": "?",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "req",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "string",
                        },
                      ],
                      "identifier": "2",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",
    },
  ],
  "type": "root",
}
`;

exports[`outputs params.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 161,
          "line": 7,
        },
        "start": Object {
          "column": 0,
          "index": 87,
          "line": 5,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function returns the number one.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 86,
        "line": 4,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "addThem",
    "namespace": "addThem",
    "params": Array [
      Object {
        "lineNumber": 5,
        "name": "a",
        "title": "param",
      },
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "the second param",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 2,
        "name": "b",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
      Object {
        "lineNumber": 5,
        "name": "c",
        "title": "param",
      },
      Object {
        "anonymous": true,
        "name": "$3",
        "properties": Array [
          Object {
            "lineNumber": 5,
            "name": "$3.d",
            "title": "param",
          },
          Object {
            "lineNumber": 5,
            "name": "$3.e",
            "title": "param",
          },
          Object {
            "lineNumber": 5,
            "name": "$3.f",
            "title": "param",
          },
        ],
        "title": "param",
        "type": Object {
          "name": "Object",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "addThem",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "the second param",
        "lineNumber": 2,
        "name": "b",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 372,
          "line": 16,
        },
        "start": Object {
          "column": 0,
          "index": 301,
          "line": 14,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This method has partially inferred params",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 300,
        "line": 13,
      },
      "start": Object {
        "column": 0,
        "index": 163,
        "line": 9,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "fishesAndFoxes",
    "namespace": "fishesAndFoxes",
    "params": Array [
      Object {
        "lineNumber": 2,
        "name": "options",
        "properties": Array [
          Object {
            "description": Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "number of kinds of fish",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "root",
            },
            "lineNumber": 3,
            "name": "options.fishes",
            "title": "param",
            "type": Object {
              "name": "String",
              "type": "NameExpression",
            },
          },
          Object {
            "lineNumber": 14,
            "name": "options.foxes",
            "title": "param",
          },
        ],
        "title": "param",
        "type": Object {
          "name": "Object",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "fishesAndFoxes",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 2,
        "name": "options",
        "title": "param",
        "type": Object {
          "name": "Object",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "number of kinds of fish",
        "lineNumber": 3,
        "name": "options.fishes",
        "title": "param",
        "type": Object {
          "name": "String",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 517,
          "line": 24,
        },
        "start": Object {
          "column": 0,
          "index": 474,
          "line": 22,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This method has a type in the description and a default in the code",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 473,
        "line": 21,
      },
      "start": Object {
        "column": 0,
        "index": 374,
        "line": 18,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "withDefault",
    "namespace": "withDefault",
    "params": Array [
      Object {
        "default": "2",
        "lineNumber": 2,
        "name": "x",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "withDefault",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 2,
        "name": "x",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 653,
          "line": 35,
        },
        "start": Object {
          "column": 0,
          "index": 558,
          "line": 29,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This is foo's documentation",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 557,
        "line": 28,
      },
      "start": Object {
        "column": 0,
        "index": 519,
        "line": 26,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 14,
                "index": 651,
                "line": 34,
              },
              "start": Object {
                "column": 2,
                "index": 639,
                "line": 34,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "The method",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 5,
              "index": 636,
              "line": 33,
            },
            "start": Object {
              "column": 2,
              "index": 572,
              "line": 30,
            },
          },
          "memberof": "Foo",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "method",
          "namespace": "Foo#method",
          "params": Array [
            Object {
              "description": Object {
                "children": Array [
                  Object {
                    "children": Array [
                      Object {
                        "type": "text",
                        "value": "Param to method",
                      },
                    ],
                    "type": "paragraph",
                  },
                ],
                "type": "root",
              },
              "lineNumber": 2,
              "name": "x",
              "title": "param",
              "type": Object {
                "name": "number",
                "type": "NameExpression",
              },
            },
          ],
          "path": Array [
            Object {
              "kind": "class",
              "name": "Foo",
            },
            Object {
              "kind": "function",
              "name": "method",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [
            Object {
              "description": "Param to method",
              "lineNumber": 2,
              "name": "x",
              "title": "param",
              "type": Object {
                "name": "number",
                "type": "NameExpression",
              },
            },
          ],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
      "static": Array [],
    },
    "name": "Foo",
    "namespace": "Foo",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "class",
        "name": "Foo",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 2,
          "index": 822,
          "line": 47,
        },
        "start": Object {
          "column": 0,
          "index": 685,
          "line": 40,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Traditional object",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 684,
        "line": 39,
      },
      "start": Object {
        "column": 0,
        "index": 655,
        "line": 37,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 3,
                "index": 819,
                "line": 46,
              },
              "start": Object {
                "column": 2,
                "index": 769,
                "line": 44,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "This method should acquire the param x",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 5,
              "index": 766,
              "line": 43,
            },
            "start": Object {
              "column": 2,
              "index": 713,
              "line": 41,
            },
          },
          "memberof": "TraditionalObject",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "traditionalMethod",
          "namespace": "TraditionalObject.traditionalMethod",
          "params": Array [
            Object {
              "lineNumber": 44,
              "name": "x",
              "title": "param",
            },
          ],
          "path": Array [
            Object {
              "name": "TraditionalObject",
            },
            Object {
              "kind": "function",
              "name": "traditionalMethod",
              "scope": "static",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "static",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
    },
    "name": "TraditionalObject",
    "namespace": "TraditionalObject",
    "params": Array [],
    "path": Array [
      Object {
        "name": "TraditionalObject",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 22,
          "index": 1216,
          "line": 61,
        },
        "start": Object {
          "column": 0,
          "index": 1194,
          "line": 61,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Represents an IPv6 address",
            },
          ],
          "type": "paragraph",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This tests  our support of optional parameters",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [
      Object {
        "description": "var address = new Address6('2001::/32');",
      },
    ],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 1193,
        "line": 60,
      },
      "start": Object {
        "column": 0,
        "index": 824,
        "line": 49,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "Address6",
    "namespace": "Address6",
    "params": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "An IPv6 address string",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 5,
        "name": "address",
        "title": "param",
        "type": Object {
          "name": "string",
          "type": "NameExpression",
        },
      },
      Object {
        "default": "8",
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "How many octets to parse",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 6,
        "name": "groups",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "A third argument",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 7,
        "name": "third",
        "title": "param",
        "type": Object {
          "expression": Object {
            "name": "number",
            "type": "NameExpression",
          },
          "prefix": true,
          "type": "NullableType",
        },
      },
      Object {
        "default": "[1]",
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "to properly be parsed",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 8,
        "name": "foo",
        "title": "param",
        "type": Object {
          "name": "Array",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "class",
        "name": "Address6",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 4,
        "name": "Address6",
        "title": "class",
        "type": null,
      },
      Object {
        "description": "An IPv6 address string",
        "lineNumber": 5,
        "name": "address",
        "title": "param",
        "type": Object {
          "name": "string",
          "type": "NameExpression",
        },
      },
      Object {
        "default": "8",
        "description": "How many octets to parse",
        "lineNumber": 6,
        "name": "groups",
        "title": "param",
        "type": Object {
          "expression": Object {
            "name": "number",
            "type": "NameExpression",
          },
          "type": "OptionalType",
        },
      },
      Object {
        "description": "A third argument",
        "lineNumber": 7,
        "name": "third",
        "title": "param",
        "type": Object {
          "expression": Object {
            "name": "number",
            "type": "NameExpression",
          },
          "prefix": true,
          "type": "NullableType",
        },
      },
      Object {
        "default": "[1]",
        "description": "to properly be parsed",
        "lineNumber": 8,
        "name": "foo",
        "title": "param",
        "type": Object {
          "expression": Object {
            "name": "Array",
            "type": "NameExpression",
          },
          "type": "OptionalType",
        },
      },
      Object {
        "description": "var address = new Address6('2001::/32');",
        "lineNumber": 9,
        "title": "example",
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 1833,
          "line": 77,
        },
        "start": Object {
          "column": 0,
          "index": 1772,
          "line": 75,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Create a GeoJSON data source instance given an options object",
            },
          ],
          "type": "paragraph",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This tests our support of nested parameters",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 1771,
        "line": 74,
      },
      "start": Object {
        "column": 0,
        "index": 1218,
        "line": 63,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "GeoJSONSource",
    "namespace": "GeoJSONSource",
    "params": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "optional options",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 5,
        "name": "options",
        "properties": Array [
          Object {
            "description": Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "A GeoJSON data object or URL to it.
The latter is preferable in case of large GeoJSON files.",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "root",
            },
            "lineNumber": 6,
            "name": "options.data",
            "title": "param",
            "type": Object {
              "elements": Array [
                Object {
                  "name": "Object",
                  "type": "NameExpression",
                },
                Object {
                  "name": "string",
                  "type": "NameExpression",
                },
              ],
              "type": "UnionType",
            },
          },
          Object {
            "default": "14",
            "description": Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "Maximum zoom to preserve detail at.",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "root",
            },
            "lineNumber": 8,
            "name": "options.maxzoom",
            "title": "param",
            "type": Object {
              "name": "number",
              "type": "NameExpression",
            },
          },
          Object {
            "description": Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "Tile buffer on each side.",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "root",
            },
            "lineNumber": 9,
            "name": "options.buffer",
            "title": "param",
            "type": Object {
              "expression": Object {
                "name": "number",
                "type": "NameExpression",
              },
              "type": "OptionalType",
            },
          },
          Object {
            "description": Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "Simplification tolerance (higher means simpler).",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "root",
            },
            "lineNumber": 10,
            "name": "options.tolerance",
            "title": "param",
            "type": Object {
              "expression": Object {
                "name": "number",
                "type": "NameExpression",
              },
              "type": "OptionalType",
            },
          },
        ],
        "title": "param",
        "type": Object {
          "expression": Object {
            "name": "Object",
            "type": "NameExpression",
          },
          "type": "OptionalType",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "class",
        "name": "GeoJSONSource",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 4,
        "name": "GeoJSONSource",
        "title": "class",
        "type": null,
      },
      Object {
        "description": "optional options",
        "lineNumber": 5,
        "name": "options",
        "title": "param",
        "type": Object {
          "expression": Object {
            "name": "Object",
            "type": "NameExpression",
          },
          "type": "OptionalType",
        },
      },
      Object {
        "description": "A GeoJSON data object or URL to it.
The latter is preferable in case of large GeoJSON files.",
        "lineNumber": 6,
        "name": "options.data",
        "title": "param",
        "type": Object {
          "elements": Array [
            Object {
              "name": "Object",
              "type": "NameExpression",
            },
            Object {
              "name": "string",
              "type": "NameExpression",
            },
          ],
          "type": "UnionType",
        },
      },
      Object {
        "default": "14",
        "description": "Maximum zoom to preserve detail at.",
        "lineNumber": 8,
        "name": "options.maxzoom",
        "title": "param",
        "type": Object {
          "expression": Object {
            "name": "number",
            "type": "NameExpression",
          },
          "type": "OptionalType",
        },
      },
      Object {
        "description": "Tile buffer on each side.",
        "lineNumber": 9,
        "name": "options.buffer",
        "title": "param",
        "type": Object {
          "expression": Object {
            "name": "number",
            "type": "NameExpression",
          },
          "type": "OptionalType",
        },
      },
      Object {
        "description": "Simplification tolerance (higher means simpler).",
        "lineNumber": 10,
        "name": "options.tolerance",
        "title": "param",
        "type": Object {
          "expression": Object {
            "name": "number",
            "type": "NameExpression",
          },
          "type": "OptionalType",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 37,
          "index": 2052,
          "line": 87,
        },
        "start": Object {
          "column": 0,
          "index": 2015,
          "line": 87,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This tests our support for parameters with explicit types but with default
values specified in code.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "constant",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 2014,
        "line": 86,
      },
      "start": Object {
        "column": 0,
        "index": 1835,
        "line": 79,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "myfunc",
    "namespace": "myfunc",
    "params": Array [
      Object {
        "default": "123",
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "an argument",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 4,
        "name": "x",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "constant",
        "name": "myfunc",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "some",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "an argument",
        "lineNumber": 4,
        "name": "x",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "some",
        "lineNumber": 6,
        "title": "returns",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 2283,
          "line": 97,
        },
        "start": Object {
          "column": 0,
          "index": 2240,
          "line": 95,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This tests our support of JSDoc param tags without type information,
or any type information we could infer from annotations.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 2239,
        "line": 94,
      },
      "start": Object {
        "column": 0,
        "index": 2054,
        "line": 89,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "foo",
    "namespace": "foo",
    "params": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "An IPv6 address string",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 4,
        "name": "address",
        "title": "param",
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "foo",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "An IPv6 address string",
        "lineNumber": 4,
        "name": "address",
        "title": "param",
        "type": null,
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 2629,
          "line": 111,
        },
        "start": Object {
          "column": 0,
          "index": 2570,
          "line": 109,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This tests our support for iterator rest inside an
iterator destructure (RestElement)",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 2569,
        "line": 108,
      },
      "start": Object {
        "column": 0,
        "index": 2285,
        "line": 99,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "rotate",
    "namespace": "rotate",
    "params": Array [
      Object {
        "lineNumber": 4,
        "name": "input",
        "properties": Array [
          Object {
            "description": Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "head of iterator",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "root",
            },
            "lineNumber": 5,
            "name": "input.0",
            "title": "param",
            "type": Object {
              "name": "any",
              "type": "NameExpression",
            },
          },
          Object {
            "description": Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "body of iterator",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "root",
            },
            "lineNumber": 6,
            "name": "input.xs",
            "title": "param",
            "type": Object {
              "expression": Object {
                "name": "any",
                "type": "NameExpression",
              },
              "type": "RestType",
            },
          },
        ],
        "title": "param",
        "type": Object {
          "name": "Array",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "rotate",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "rotated such that the last element was the first",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "applications": Array [
            Object {
              "name": "any",
              "type": "NameExpression",
            },
          ],
          "expression": Object {
            "name": "Array",
            "type": "NameExpression",
          },
          "type": "TypeApplication",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 4,
        "name": "input",
        "title": "param",
        "type": Object {
          "name": "Array",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "head of iterator",
        "lineNumber": 5,
        "name": "input.0",
        "title": "param",
        "type": Object {
          "name": "any",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "body of iterator",
        "lineNumber": 6,
        "name": "input.xs",
        "title": "param",
        "type": Object {
          "expression": Object {
            "name": "any",
            "type": "NameExpression",
          },
          "type": "RestType",
        },
      },
      Object {
        "description": "rotated such that the last element was the first",
        "lineNumber": 8,
        "title": "returns",
        "type": Object {
          "applications": Array [
            Object {
              "name": "any",
              "type": "NameExpression",
            },
          ],
          "expression": Object {
            "name": "Array",
            "type": "NameExpression",
          },
          "type": "TypeApplication",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs params.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [addThem][1]
    *   [Parameters][2]
*   [fishesAndFoxes][3]
    *   [Parameters][4]
*   [withDefault][5]
    *   [Parameters][6]
*   [Foo][7]
    *   [method][8]
        *   [Parameters][9]
*   [TraditionalObject][10]
    *   [traditionalMethod][11]
        *   [Parameters][12]
*   [Address6][13]
    *   [Parameters][14]
    *   [Examples][15]
*   [GeoJSONSource][16]
    *   [Parameters][17]
*   [myfunc][18]
    *   [Parameters][19]
*   [foo][20]
    *   [Parameters][21]
*   [rotate][22]
    *   [Parameters][23]

## addThem

This function returns the number one.

### Parameters

*   \`a\` &#x20;
*   \`b\` **[number][24]** the second param
*   \`c\` &#x20;
*   \`$3\` **[Object][25]**&#x20;

    *   \`$3.d\` &#x20;
    *   \`$3.e\` &#x20;
    *   \`$3.f\` &#x20;

## fishesAndFoxes

This method has partially inferred params

### Parameters

*   \`options\` **[Object][25]**&#x20;

    *   \`options.fishes\` **[String][26]** number of kinds of fish
    *   \`options.foxes\` &#x20;

## withDefault

This method has a type in the description and a default in the code

### Parameters

*   \`x\` **[number][24]** &#x20;(optional, default \`2\`)

## Foo

This is foo's documentation

### method

The method

#### Parameters

*   \`x\` **[number][24]** Param to method

## TraditionalObject

Traditional object

### traditionalMethod

This method should acquire the param x

#### Parameters

*   \`x\` &#x20;

## Address6

Represents an IPv6 address

This tests  our support of optional parameters

### Parameters

*   \`address\` **[string][26]** An IPv6 address string
*   \`groups\` **[number][24]** How many octets to parse&#x20;(optional, default \`8\`)
*   \`third\` **[number][24]?** A third argument
*   \`foo\` **[Array][27]** to properly be parsed&#x20;(optional, default \`[1]\`)

### Examples

\`\`\`javascript
var address = new Address6('2001::/32');
\`\`\`

## GeoJSONSource

Create a GeoJSON data source instance given an options object

This tests our support of nested parameters

### Parameters

*   \`options\` **[Object][25]?** optional options

    *   \`options.data\` **([Object][25] | [string][26])** A GeoJSON data object or URL to it.
        The latter is preferable in case of large GeoJSON files.
    *   \`options.maxzoom\` **[number][24]** Maximum zoom to preserve detail at.&#x20;(optional, default \`14\`)
    *   \`options.buffer\` **[number][24]?** Tile buffer on each side.
    *   \`options.tolerance\` **[number][24]?** Simplification tolerance (higher means simpler).

## myfunc

This tests our support for parameters with explicit types but with default
values specified in code.

### Parameters

*   \`x\` **[number][24]** an argument&#x20;(optional, default \`123\`)

Returns **[number][24]** some

## foo

This tests our support of JSDoc param tags without type information,
or any type information we could infer from annotations.

### Parameters

*   \`address\`  An IPv6 address string

## rotate

This tests our support for iterator rest inside an
iterator destructure (RestElement)

### Parameters

*   \`input\` **[Array][27]**&#x20;

    *   \`input.0\` **any** head of iterator
    *   \`input.xs\` **...any** body of iterator

Returns **[Array][27]\\\\<any>** rotated such that the last element was the first

[1]: #addthem

[2]: #parameters

[3]: #fishesandfoxes

[4]: #parameters-1

[5]: #withdefault

[6]: #parameters-2

[7]: #foo

[8]: #method

[9]: #parameters-3

[10]: #traditionalobject

[11]: #traditionalmethod

[12]: #parameters-4

[13]: #address6

[14]: #parameters-5

[15]: #examples

[16]: #geojsonsource

[17]: #parameters-6

[18]: #myfunc

[19]: #parameters-7

[20]: #foo-1

[21]: #parameters-8

[22]: #rotate

[23]: #parameters-9

[24]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number

[25]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object

[26]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String

[27]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
"
`;

exports[`outputs params.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "addThem",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This function returns the number one.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "a",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "b",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "the second param",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "c",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "$3",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Object",
                        },
                      ],
                      "identifier": "2",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
            Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "$3.d",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "$3.e",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "$3.f",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
              ],
              "ordered": false,
              "spread": false,
              "type": "list",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "fishesAndFoxes",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This method has partially inferred params",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "options",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Object",
                        },
                      ],
                      "identifier": "2",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
            Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "options.fishes",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "children": Array [
                                Object {
                                  "type": "text",
                                  "value": "String",
                                },
                              ],
                              "identifier": "3",
                              "referenceType": "full",
                              "type": "linkReference",
                            },
                          ],
                          "type": "strong",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": "number of kinds of fish",
                            },
                          ],
                          "type": "paragraph",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "options.foxes",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
              ],
              "ordered": false,
              "spread": false,
              "type": "list",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "withDefault",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This method has a type in the description and a default in the code",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "x",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": " (optional, default ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "2",
                    },
                    Object {
                      "type": "text",
                      "value": ")",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Foo",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This is foo's documentation",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "method",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "The method",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 4,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "x",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "Param to method",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "TraditionalObject",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Traditional object",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "traditionalMethod",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This method should acquire the param x",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 4,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "x",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Address6",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Represents an IPv6 address",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This tests  our support of optional parameters",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "address",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "string",
                        },
                      ],
                      "identifier": "3",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "An IPv6 address string",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "groups",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "How many octets to parse",
                    },
                  ],
                  "type": "paragraph",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": " (optional, default ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "8",
                    },
                    Object {
                      "type": "text",
                      "value": ")",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "third",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                    Object {
                      "type": "text",
                      "value": "?",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "A third argument",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "foo",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Array",
                        },
                      ],
                      "identifier": "4",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "to properly be parsed",
                    },
                  ],
                  "type": "paragraph",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": " (optional, default ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "[1]",
                    },
                    Object {
                      "type": "text",
                      "value": ")",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Examples",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "lang": "javascript",
      "type": "code",
      "value": "var address = new Address6('2001::/32');",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "GeoJSONSource",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Create a GeoJSON data source instance given an options object",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This tests our support of nested parameters",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "options",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Object",
                        },
                      ],
                      "identifier": "2",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                    Object {
                      "type": "text",
                      "value": "?",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "optional options",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
            Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "options.data",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": "(",
                            },
                            Object {
                              "children": Array [
                                Object {
                                  "type": "text",
                                  "value": "Object",
                                },
                              ],
                              "identifier": "2",
                              "referenceType": "full",
                              "type": "linkReference",
                            },
                            Object {
                              "type": "text",
                              "value": " | ",
                            },
                            Object {
                              "children": Array [
                                Object {
                                  "type": "text",
                                  "value": "string",
                                },
                              ],
                              "identifier": "3",
                              "referenceType": "full",
                              "type": "linkReference",
                            },
                            Object {
                              "type": "text",
                              "value": ")",
                            },
                          ],
                          "type": "strong",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": "A GeoJSON data object or URL to it.
The latter is preferable in case of large GeoJSON files.",
                            },
                          ],
                          "type": "paragraph",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "options.maxzoom",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "children": Array [
                                Object {
                                  "type": "text",
                                  "value": "number",
                                },
                              ],
                              "identifier": "1",
                              "referenceType": "full",
                              "type": "linkReference",
                            },
                          ],
                          "type": "strong",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": "Maximum zoom to preserve detail at.",
                            },
                          ],
                          "type": "paragraph",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": " (optional, default ",
                            },
                            Object {
                              "type": "inlineCode",
                              "value": "14",
                            },
                            Object {
                              "type": "text",
                              "value": ")",
                            },
                          ],
                          "type": "paragraph",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "options.buffer",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "children": Array [
                                Object {
                                  "type": "text",
                                  "value": "number",
                                },
                              ],
                              "identifier": "1",
                              "referenceType": "full",
                              "type": "linkReference",
                            },
                            Object {
                              "type": "text",
                              "value": "?",
                            },
                          ],
                          "type": "strong",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": "Tile buffer on each side.",
                            },
                          ],
                          "type": "paragraph",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "options.tolerance",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "children": Array [
                                Object {
                                  "type": "text",
                                  "value": "number",
                                },
                              ],
                              "identifier": "1",
                              "referenceType": "full",
                              "type": "linkReference",
                            },
                            Object {
                              "type": "text",
                              "value": "?",
                            },
                          ],
                          "type": "strong",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": "Simplification tolerance (higher means simpler).",
                            },
                          ],
                          "type": "paragraph",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
              ],
              "ordered": false,
              "spread": false,
              "type": "list",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "myfunc",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This tests our support for parameters with explicit types but with default
values specified in code.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "x",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "an argument",
                    },
                  ],
                  "type": "paragraph",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": " (optional, default ",
                    },
                    Object {
                      "type": "inlineCode",
                      "value": "123",
                    },
                    Object {
                      "type": "text",
                      "value": ")",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "number",
                },
              ],
              "identifier": "1",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "some",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "foo",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This tests our support of JSDoc param tags without type information,
or any type information we could infer from annotations.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "address",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "An IPv6 address string",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "rotate",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This tests our support for iterator rest inside an
iterator destructure (RestElement)",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "input",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Array",
                        },
                      ],
                      "identifier": "4",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
            Object {
              "children": Array [
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "input.0",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": "any",
                            },
                          ],
                          "type": "strong",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": "head of iterator",
                            },
                          ],
                          "type": "paragraph",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "inlineCode",
                          "value": "input.xs",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": "...",
                            },
                            Object {
                              "type": "text",
                              "value": "any",
                            },
                          ],
                          "type": "strong",
                        },
                        Object {
                          "type": "text",
                          "value": " ",
                        },
                        Object {
                          "children": Array [
                            Object {
                              "type": "text",
                              "value": "body of iterator",
                            },
                          ],
                          "type": "paragraph",
                        },
                      ],
                      "type": "paragraph",
                    },
                  ],
                  "type": "listItem",
                },
              ],
              "ordered": false,
              "spread": false,
              "type": "list",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "Array",
                },
              ],
              "identifier": "4",
              "referenceType": "full",
              "type": "linkReference",
            },
            Object {
              "type": "text",
              "value": "<",
            },
            Object {
              "type": "text",
              "value": "any",
            },
            Object {
              "type": "text",
              "value": ">",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "rotated such that the last element was the first",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object",
    },
    Object {
      "identifier": "3",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",
    },
    Object {
      "identifier": "4",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",
    },
  ],
  "type": "root",
}
`;

exports[`outputs react-jsx.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 20,
          "index": 38,
          "line": 4,
        },
        "start": Object {
          "column": 0,
          "index": 18,
          "line": 4,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "apples",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 17,
        "line": 3,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "apples",
    "namespace": "apples",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "apples",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs react-jsx.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [apples][1]

## apples

apples

[1]: #apples
"
`;

exports[`outputs react-jsx.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "apples",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "apples",
        },
      ],
      "type": "paragraph",
    },
  ],
  "type": "root",
}
`;

exports[`outputs require-json.input.js JSON 1`] = `Array []`;

exports[`outputs require-json.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents
"
`;

exports[`outputs require-json.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
  ],
  "type": "root",
}
`;

exports[`outputs require-json-no-extension.input.js JSON 1`] = `Array []`;

exports[`outputs require-json-no-extension.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents
"
`;

exports[`outputs require-json-no-extension.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
  ],
  "type": "root",
}
`;

exports[`outputs sections.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 19,
          "index": 53,
          "line": 4,
        },
        "start": Object {
          "column": 0,
          "index": 34,
          "line": 4,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function is first",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 33,
        "line": 3,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "first",
    "namespace": "first",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "first",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 16,
          "index": 194,
          "line": 12,
        },
        "start": Object {
          "column": 2,
          "index": 180,
          "line": 12,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "forgot a memberof here... sure hope that doesn't crash anything!",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 5,
        "index": 177,
        "line": 11,
      },
      "start": Object {
        "column": 2,
        "index": 79,
        "line": 8,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "first",
    "namespace": "first",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "first",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 2,
        "name": "first",
        "title": "method",
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 333,
          "line": 19,
        },
        "start": Object {
          "column": 0,
          "index": 62,
          "line": 7,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 6,
        "index": 61,
        "line": 6,
      },
      "start": Object {
        "column": 0,
        "index": 55,
        "line": 6,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 13,
                "index": 331,
                "line": 18,
              },
              "start": Object {
                "column": 2,
                "index": 320,
                "line": 18,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "shares a name with a top level item referenced in the TOC... sure hope
that doesn't crash anything!",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 5,
              "index": 317,
              "line": 17,
            },
            "start": Object {
              "column": 2,
              "index": 198,
              "line": 14,
            },
          },
          "memberof": "AClass",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "second",
          "namespace": "AClass#second",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "AClass",
            },
            Object {
              "kind": "function",
              "name": "second",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
      "static": Array [],
    },
    "name": "AClass",
    "namespace": "AClass",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "class",
        "name": "AClass",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 20,
          "index": 394,
          "line": 24,
        },
        "start": Object {
          "column": 0,
          "index": 374,
          "line": 24,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This class has some members",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 373,
        "line": 23,
      },
      "start": Object {
        "column": 0,
        "index": 335,
        "line": 21,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 41,
                "index": 460,
                "line": 29,
              },
              "start": Object {
                "column": 0,
                "index": 419,
                "line": 29,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "second::foo",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 3,
              "index": 418,
              "line": 28,
            },
            "start": Object {
              "column": 0,
              "index": 396,
              "line": 26,
            },
          },
          "memberof": "second",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "foo",
          "namespace": "second#foo",
          "params": Array [
            Object {
              "lineNumber": 29,
              "name": "pork",
              "title": "param",
            },
          ],
          "path": Array [
            Object {
              "kind": "function",
              "name": "second",
            },
            Object {
              "kind": "function",
              "name": "foo",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 48,
                "index": 533,
                "line": 34,
              },
              "start": Object {
                "column": 0,
                "index": 485,
                "line": 34,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "second::bar",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 3,
              "index": 484,
              "line": 33,
            },
            "start": Object {
              "column": 0,
              "index": 462,
              "line": 31,
            },
          },
          "memberof": "second",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "bar",
          "namespace": "second#bar",
          "params": Array [
            Object {
              "lineNumber": 34,
              "name": "beans",
              "title": "param",
            },
            Object {
              "lineNumber": 34,
              "name": "rice",
              "title": "param",
            },
          ],
          "path": Array [
            Object {
              "kind": "function",
              "name": "second",
            },
            Object {
              "kind": "function",
              "name": "bar",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
      "static": Array [],
    },
    "name": "second",
    "namespace": "second",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "second",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 19,
          "index": 588,
          "line": 39,
        },
        "start": Object {
          "column": 0,
          "index": 569,
          "line": 39,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function is third",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 568,
        "line": 38,
      },
      "start": Object {
        "column": 0,
        "index": 535,
        "line": 36,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "third",
    "namespace": "third",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "third",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs sections.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [first][1]
*   [first][2]
*   [AClass][3]
    *   [second][4]
*   [second][5]
    *   [foo][6]
        *   [Parameters][7]
    *   [bar][8]
        *   [Parameters][9]
*   [third][10]

## first

This function is first

## first

forgot a memberof here... sure hope that doesn't crash anything!

## AClass

### second

shares a name with a top level item referenced in the TOC... sure hope
that doesn't crash anything!

## second

This class has some members

### foo

second::foo

#### Parameters

*   \`pork\` &#x20;

### bar

second::bar

#### Parameters

*   \`beans\` &#x20;
*   \`rice\` &#x20;

## third

This function is third

[1]: #first

[2]: #first-1

[3]: #aclass

[4]: #second

[5]: #second-1

[6]: #foo

[7]: #parameters

[8]: #bar

[9]: #parameters-1

[10]: #third
"
`;

exports[`outputs sections.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "first",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This function is first",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "first",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "forgot a memberof here... sure hope that doesn't crash anything!",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "AClass",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "second",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "shares a name with a top level item referenced in the TOC... sure hope
that doesn't crash anything!",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "second",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This class has some members",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "foo",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "second::foo",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 4,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "pork",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "bar",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "second::bar",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 4,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "beans",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "rice",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "third",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This function is third",
        },
      ],
      "type": "paragraph",
    },
  ],
  "type": "root",
}
`;

exports[`outputs simple.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 2,
          "index": 144,
          "line": 8,
        },
        "start": Object {
          "column": 0,
          "index": 80,
          "line": 5,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function returns the number one.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 79,
        "line": 4,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "simple.input",
    "namespace": "simple.input",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "simple.input",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "numberone",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "numberone",
        "lineNumber": 2,
        "title": "returns",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs simple.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [simple.input][1]

## simple.input

This function returns the number one.

Returns **[number][2]** numberone

[1]: #simpleinput

[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
"
`;

exports[`outputs simple.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "simple.input",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This function returns the number one.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "number",
                },
              ],
              "identifier": "1",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "numberone",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
  ],
  "type": "root",
}
`;

exports[`outputs simple-callback.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 238,
          "line": 10,
        },
        "start": Object {
          "column": 0,
          "index": 180,
          "line": 8,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This takes a number and a callback and calls the callback with the number
plus 3.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 179,
        "line": 7,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "takesSimpleCallback",
    "namespace": "takesSimpleCallback",
    "params": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "The number.",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 4,
        "name": "n",
        "title": "param",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "The callback.",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 5,
        "name": "cb",
        "title": "param",
        "type": Object {
          "name": "simpleCallback",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "takesSimpleCallback",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "The number.",
        "lineNumber": 4,
        "name": "n",
        "title": "param",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "The callback.",
        "lineNumber": 5,
        "name": "cb",
        "title": "param",
        "type": Object {
          "name": "simpleCallback",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 238,
          "line": 10,
        },
        "start": Object {
          "column": 0,
          "index": 180,
          "line": 8,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This callback takes an error and a number.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "typedef",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 395,
        "line": 18,
      },
      "start": Object {
        "column": 0,
        "index": 240,
        "line": 12,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "simpleCallback",
    "namespace": "simpleCallback",
    "params": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "The error.",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 4,
        "name": "err",
        "title": "param",
        "type": Object {
          "expression": Object {
            "name": "Error",
            "type": "NameExpression",
          },
          "prefix": true,
          "type": "NullableType",
        },
      },
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "The number.",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 5,
        "name": "n",
        "title": "param",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "typedef",
        "name": "simpleCallback",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "simpleCallback",
        "lineNumber": 3,
        "title": "callback",
      },
      Object {
        "description": "The error.",
        "lineNumber": 4,
        "name": "err",
        "title": "param",
        "type": Object {
          "expression": Object {
            "name": "Error",
            "type": "NameExpression",
          },
          "prefix": true,
          "type": "NullableType",
        },
      },
      Object {
        "description": "The number.",
        "lineNumber": 5,
        "name": "n",
        "title": "param",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "type": Object {
      "name": "Function",
      "type": "NameExpression",
    },
    "yields": Array [],
  },
]
`;

exports[`outputs simple-callback.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [takesSimpleCallback][1]
    *   [Parameters][2]
*   [simpleCallback][3]
    *   [Parameters][4]

## takesSimpleCallback

This takes a number and a callback and calls the callback with the number
plus 3.

### Parameters

*   \`n\` **[Number][5]** The number.
*   \`cb\` **[simpleCallback][3]** The callback.

## simpleCallback

This callback takes an error and a number.

Type: [Function][6]

### Parameters

*   \`err\` **[Error][7]?** The error.
*   \`n\` **[Number][5]** The number.

[1]: #takessimplecallback

[2]: #parameters

[3]: #simplecallback

[4]: #parameters-1

[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number

[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function

[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error
"
`;

exports[`outputs simple-callback.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "takesSimpleCallback",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This takes a number and a callback and calls the callback with the number
plus 3.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "n",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Number",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "The number.",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "cb",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "simpleCallback",
                        },
                      ],
                      "identifier": "2",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "The callback.",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "simpleCallback",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This callback takes an error and a number.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Type: ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Function",
            },
          ],
          "identifier": "3",
          "referenceType": "full",
          "type": "linkReference",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "err",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Error",
                        },
                      ],
                      "identifier": "4",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                    Object {
                      "type": "text",
                      "value": "?",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "The error.",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "n",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Number",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "The number.",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "#simplecallback",
    },
    Object {
      "identifier": "3",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function",
    },
    Object {
      "identifier": "4",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error",
    },
  ],
  "type": "root",
}
`;

exports[`outputs simple-hashbang.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 2,
          "index": 165,
          "line": 10,
        },
        "start": Object {
          "column": 0,
          "index": 101,
          "line": 7,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function returns the number one.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 100,
        "line": 6,
      },
      "start": Object {
        "column": 0,
        "index": 21,
        "line": 3,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "simple-hashbang.input",
    "namespace": "simple-hashbang.input",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "simple-hashbang.input",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "numberone",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "numberone",
        "lineNumber": 2,
        "title": "returns",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs simple-hashbang.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [simple-hashbang.input][1]

## simple-hashbang.input

This function returns the number one.

Returns **[Number][2]** numberone

[1]: #simple-hashbanginput

[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
"
`;

exports[`outputs simple-hashbang.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "simple-hashbang.input",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This function returns the number one.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "Number",
                },
              ],
              "identifier": "1",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "numberone",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
  ],
  "type": "root",
}
`;

exports[`outputs simple-private.input.js JSON 1`] = `Array []`;

exports[`outputs simple-private.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents
"
`;

exports[`outputs simple-private.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
  ],
  "type": "root",
}
`;

exports[`outputs simple-singlestar.input.js JSON 1`] = `Array []`;

exports[`outputs simple-singlestar.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents
"
`;

exports[`outputs simple-singlestar.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
  ],
  "type": "root",
}
`;

exports[`outputs simple-triplestar.input.js JSON 1`] = `Array []`;

exports[`outputs simple-triplestar.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents
"
`;

exports[`outputs simple-triplestar.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
  ],
  "type": "root",
}
`;

exports[`outputs simple-two.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 245,
          "line": 13,
        },
        "start": Object {
          "column": 0,
          "index": 180,
          "line": 10,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "This function returns the number plus two.",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [
      Object {
        "description": "var result = returnTwo(4);
// result is 6",
      },
    ],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 179,
        "line": 9,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "returnTwo",
    "namespace": "returnTwo",
    "params": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "the number",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 3,
        "name": "a",
        "title": "param",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "returnTwo",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "numbertwo",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "title": "returns",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": "the number",
        "lineNumber": 3,
        "name": "a",
        "title": "param",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "numbertwo",
        "lineNumber": 4,
        "title": "returns",
        "type": Object {
          "name": "Number",
          "type": "NameExpression",
        },
      },
      Object {
        "description": "var result = returnTwo(4);
// result is 6",
        "lineNumber": 5,
        "title": "example",
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs simple-two.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [returnTwo][1]
    *   [Parameters][2]
    *   [Examples][3]

## returnTwo

This function returns the number plus two.

### Parameters

*   \`a\` **[Number][4]** the number

### Examples

\`\`\`javascript
var result = returnTwo(4);
// result is 6
\`\`\`

Returns **[Number][4]** numbertwo

[1]: #returntwo

[2]: #parameters

[3]: #examples

[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
"
`;

exports[`outputs simple-two.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "returnTwo",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "This function returns the number plus two.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "a",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Number",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "the number",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Examples",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "lang": "javascript",
      "type": "code",
      "value": "var result = returnTwo(4);
// result is 6",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "Number",
                },
              ],
              "identifier": "1",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "numbertwo",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
  ],
  "type": "root",
}
`;

exports[`outputs sort-order-alpha.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 176,
          "line": 19,
        },
        "start": Object {
          "column": 0,
          "index": 93,
          "line": 10,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 6,
        "index": 92,
        "line": 9,
      },
      "start": Object {
        "column": 0,
        "index": 86,
        "line": 9,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 8,
                "index": 174,
                "line": 18,
              },
              "start": Object {
                "column": 2,
                "index": 168,
                "line": 18,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 8,
              "index": 165,
              "line": 17,
            },
            "start": Object {
              "column": 2,
              "index": 159,
              "line": 17,
            },
          },
          "memberof": "C",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "A",
          "namespace": "C#A",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "C",
            },
            Object {
              "kind": "function",
              "name": "A",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 8,
                "index": 156,
                "line": 16,
              },
              "start": Object {
                "column": 2,
                "index": 150,
                "line": 16,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 8,
              "index": 147,
              "line": 15,
            },
            "start": Object {
              "column": 2,
              "index": 141,
              "line": 15,
            },
          },
          "memberof": "C",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "a",
          "namespace": "C#a",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "C",
            },
            Object {
              "kind": "function",
              "name": "a",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 8,
                "index": 138,
                "line": 14,
              },
              "start": Object {
                "column": 2,
                "index": 132,
                "line": 14,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 8,
              "index": 129,
              "line": 13,
            },
            "start": Object {
              "column": 2,
              "index": 123,
              "line": 13,
            },
          },
          "memberof": "C",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "B",
          "namespace": "C#B",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "C",
            },
            Object {
              "kind": "function",
              "name": "B",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 8,
                "index": 120,
                "line": 12,
              },
              "start": Object {
                "column": 2,
                "index": 114,
                "line": 12,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 8,
              "index": 111,
              "line": 11,
            },
            "start": Object {
              "column": 2,
              "index": 105,
              "line": 11,
            },
          },
          "memberof": "C",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "b",
          "namespace": "C#b",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "C",
            },
            Object {
              "kind": "function",
              "name": "b",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
      "static": Array [],
    },
    "name": "C",
    "namespace": "C",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "class",
        "name": "C",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 1,
          "index": 268,
          "line": 31,
        },
        "start": Object {
          "column": 0,
          "index": 185,
          "line": 22,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 6,
        "index": 184,
        "line": 21,
      },
      "start": Object {
        "column": 0,
        "index": 178,
        "line": 21,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 8,
                "index": 266,
                "line": 30,
              },
              "start": Object {
                "column": 2,
                "index": 260,
                "line": 30,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 8,
              "index": 257,
              "line": 29,
            },
            "start": Object {
              "column": 2,
              "index": 251,
              "line": 29,
            },
          },
          "memberof": "D",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "A",
          "namespace": "D#A",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "D",
            },
            Object {
              "kind": "function",
              "name": "A",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 8,
                "index": 248,
                "line": 28,
              },
              "start": Object {
                "column": 2,
                "index": 242,
                "line": 28,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 8,
              "index": 239,
              "line": 27,
            },
            "start": Object {
              "column": 2,
              "index": 233,
              "line": 27,
            },
          },
          "memberof": "D",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "a",
          "namespace": "D#a",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "D",
            },
            Object {
              "kind": "function",
              "name": "a",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 8,
                "index": 230,
                "line": 26,
              },
              "start": Object {
                "column": 2,
                "index": 224,
                "line": 26,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 8,
              "index": 221,
              "line": 25,
            },
            "start": Object {
              "column": 2,
              "index": 215,
              "line": 25,
            },
          },
          "memberof": "D",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "B",
          "namespace": "D#B",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "D",
            },
            Object {
              "kind": "function",
              "name": "B",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 8,
                "index": 212,
                "line": 24,
              },
              "start": Object {
                "column": 2,
                "index": 206,
                "line": 24,
              },
            },
          },
          "description": "",
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "kind": "function",
          "loc": Object {
            "end": Object {
              "column": 8,
              "index": 203,
              "line": 23,
            },
            "start": Object {
              "column": 2,
              "index": 197,
              "line": 23,
            },
          },
          "memberof": "D",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "b",
          "namespace": "D#b",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "D",
            },
            Object {
              "kind": "function",
              "name": "b",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
      "static": Array [],
    },
    "name": "D",
    "namespace": "D",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "class",
        "name": "D",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 15,
          "index": 84,
          "line": 7,
        },
        "start": Object {
          "column": 0,
          "index": 69,
          "line": 7,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 6,
        "index": 68,
        "line": 6,
      },
      "start": Object {
        "column": 0,
        "index": 62,
        "line": 6,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "a",
    "namespace": "a",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "a",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 15,
          "index": 60,
          "line": 4,
        },
        "start": Object {
          "column": 0,
          "index": 45,
          "line": 4,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 6,
        "index": 44,
        "line": 3,
      },
      "start": Object {
        "column": 0,
        "index": 38,
        "line": 3,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "b",
    "namespace": "b",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "function",
        "name": "b",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs sort-order-alpha.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [C][1]
    *   [A][2]
    *   [a][3]
    *   [B][4]
    *   [b][5]
*   [D][6]
    *   [A][7]
    *   [a][8]
    *   [B][9]
    *   [b][10]
*   [a][11]
*   [b][12]

## C

### A

### a

### B

### b

## D

### A

### a

### B

### b

## a

## b

[1]: #c

[2]: #a

[3]: #a-1

[4]: #b

[5]: #b-1

[6]: #d

[7]: #a-2

[8]: #a-3

[9]: #b-2

[10]: #b-3

[11]: #a-4

[12]: #b-4
"
`;

exports[`outputs sort-order-alpha.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "C",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "A",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "a",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "B",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "b",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "D",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "A",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "a",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "B",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "b",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "a",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "b",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
  ],
  "type": "root",
}
`;

exports[`outputs string-literal-key.input.js JSON 1`] = `
Array [
  Object {
    "alias": "MyContainerObject",
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 2,
          "index": 110,
          "line": 11,
        },
        "start": Object {
          "column": 0,
          "index": 36,
          "line": 4,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "constant",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 35,
        "line": 3,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "MyContainerObject",
    "namespace": "MyContainerObject",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "constant",
        "name": "MyContainerObject",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 1,
        "name": "MyContainerObject",
        "title": "alias",
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 3,
          "index": 107,
          "line": 10,
        },
        "start": Object {
          "column": 2,
          "index": 86,
          "line": 8,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "The foo property",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [
      Object {
        "commentLineNumber": 0,
        "message": "@memberof reference to obj not found",
      },
    ],
    "examples": Array [],
    "implements": Array [],
    "loc": Object {
      "end": Object {
        "column": 5,
        "index": 83,
        "line": 7,
      },
      "start": Object {
        "column": 2,
        "index": 52,
        "line": 5,
      },
    },
    "memberof": "obj",
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "foo",
    "namespace": ".foo",
    "params": Array [],
    "path": Array [
      Object {
        "name": "foo",
        "scope": "static",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "scope": "static",
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs string-literal-key.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [MyContainerObject][1]
*   [foo][2]

## MyContainerObject

## foo

The foo property

[1]: #mycontainerobject

[2]: #foo
"
`;

exports[`outputs string-literal-key.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "MyContainerObject",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "foo",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "The foo property",
        },
      ],
      "type": "paragraph",
    },
  ],
  "type": "root",
}
`;

exports[`outputs this-class.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 2,
          "index": 125,
          "line": 7,
        },
        "start": Object {
          "column": 0,
          "index": 40,
          "line": 4,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "module",
    "loc": Object {
      "end": Object {
        "column": 24,
        "index": 24,
        "line": 1,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "bookshelf",
    "namespace": "bookshelf",
    "params": Array [],
    "path": Array [
      Object {
        "kind": "module",
        "name": "bookshelf",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 0,
        "name": "bookshelf",
        "title": "module",
        "type": null,
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 2,
          "index": 125,
          "line": 7,
        },
        "start": Object {
          "column": 0,
          "index": 40,
          "line": 4,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 13,
        "index": 39,
        "line": 3,
      },
      "start": Object {
        "column": 0,
        "index": 26,
        "line": 3,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 21,
                "index": 122,
                "line": 6,
              },
              "start": Object {
                "column": 2,
                "index": 103,
                "line": 6,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "The title of the book.",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "loc": Object {
            "end": Object {
              "column": 31,
              "index": 100,
              "line": 5,
            },
            "start": Object {
              "column": 2,
              "index": 71,
              "line": 5,
            },
          },
          "memberof": "Book",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "title",
          "namespace": "Book#title",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "Book",
            },
            Object {
              "name": "title",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
      "static": Array [],
    },
    "name": "Book",
    "namespace": "Book",
    "params": Array [
      Object {
        "lineNumber": 4,
        "name": "title",
        "title": "param",
      },
    ],
    "path": Array [
      Object {
        "kind": "class",
        "name": "Book",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 0,
        "name": null,
        "title": "class",
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 2,
          "index": 237,
          "line": 13,
        },
        "start": Object {
          "column": 0,
          "index": 141,
          "line": 10,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 13,
        "index": 140,
        "line": 9,
      },
      "start": Object {
        "column": 0,
        "index": 127,
        "line": 9,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [
        Object {
          "augments": Array [],
          "context": Object {
            "loc": Object {
              "end": Object {
                "column": 21,
                "index": 234,
                "line": 12,
              },
              "start": Object {
                "column": 2,
                "index": 215,
                "line": 12,
              },
            },
          },
          "description": Object {
            "children": Array [
              Object {
                "children": Array [
                  Object {
                    "type": "text",
                    "value": "The title of the bookshelf.",
                  },
                ],
                "type": "paragraph",
              },
            ],
            "type": "root",
          },
          "errors": Array [],
          "examples": Array [],
          "implements": Array [],
          "loc": Object {
            "end": Object {
              "column": 36,
              "index": 212,
              "line": 11,
            },
            "start": Object {
              "column": 2,
              "index": 178,
              "line": 11,
            },
          },
          "memberof": "BookShelf",
          "members": Object {
            "events": Array [],
            "global": Array [],
            "inner": Array [],
            "instance": Array [],
            "static": Array [],
          },
          "name": "title",
          "namespace": "BookShelf#title",
          "params": Array [],
          "path": Array [
            Object {
              "kind": "class",
              "name": "BookShelf",
            },
            Object {
              "name": "title",
              "scope": "instance",
            },
          ],
          "properties": Array [],
          "returns": Array [],
          "scope": "instance",
          "sees": Array [],
          "tags": Array [],
          "throws": Array [],
          "todos": Array [],
          "yields": Array [],
        },
      ],
      "static": Array [],
    },
    "name": "BookShelf",
    "namespace": "BookShelf",
    "params": Array [
      Object {
        "lineNumber": 10,
        "name": "title",
        "title": "param",
      },
    ],
    "path": Array [
      Object {
        "kind": "class",
        "name": "BookShelf",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 0,
        "name": null,
        "title": "class",
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs this-class.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [bookshelf][1]
*   [Book][2]
    *   [Parameters][3]
    *   [title][4]
*   [BookShelf][5]
    *   [Parameters][6]
    *   [title][7]

## bookshelf

## Book

### Parameters

*   \`title\` &#x20;

### title

The title of the book.

## BookShelf

### Parameters

*   \`title\` &#x20;

### title

The title of the bookshelf.

[1]: #bookshelf

[2]: #book

[3]: #parameters

[4]: #title

[5]: #bookshelf-1

[6]: #parameters-1

[7]: #title-1
"
`;

exports[`outputs this-class.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "bookshelf",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Book",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "title",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "title",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "The title of the book.",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "BookShelf",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "title",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "title",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "The title of the bookshelf.",
        },
      ],
      "type": "paragraph",
    },
  ],
  "type": "root",
}
`;

exports[`outputs type_application.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 0,
          "index": 116,
          "line": 6,
        },
        "start": Object {
          "column": 0,
          "index": 0,
          "line": 1,
        },
      },
    },
    "description": Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "type": "text",
              "value": "Represents an IPv6 address",
            },
          ],
          "type": "paragraph",
        },
      ],
      "type": "root",
    },
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "class",
    "loc": Object {
      "end": Object {
        "column": 3,
        "index": 115,
        "line": 5,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "Address6",
    "namespace": "Address6",
    "params": Array [
      Object {
        "description": Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "An IPv6 address string",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "root",
        },
        "lineNumber": 3,
        "name": "address",
        "title": "param",
        "type": Object {
          "applications": Array [
            Object {
              "name": "string",
              "type": "NameExpression",
            },
          ],
          "expression": Object {
            "name": "Array",
            "type": "NameExpression",
          },
          "type": "TypeApplication",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "class",
        "name": "Address6",
      },
    ],
    "properties": Array [],
    "returns": Array [],
    "sees": Array [],
    "tags": Array [
      Object {
        "description": null,
        "lineNumber": 2,
        "name": "Address6",
        "title": "class",
        "type": null,
      },
      Object {
        "description": "An IPv6 address string",
        "lineNumber": 3,
        "name": "address",
        "title": "param",
        "type": Object {
          "applications": Array [
            Object {
              "name": "string",
              "type": "NameExpression",
            },
          ],
          "expression": Object {
            "name": "Array",
            "type": "NameExpression",
          },
          "type": "TypeApplication",
        },
      },
    ],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs type_application.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [Address6][1]
    *   [Parameters][2]

## Address6

Represents an IPv6 address

### Parameters

*   \`address\` **[Array][3]<[string][4]>** An IPv6 address string

[1]: #address6

[2]: #parameters

[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array

[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
"
`;

exports[`outputs type_application.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Address6",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Represents an IPv6 address",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "address",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "Array",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                    Object {
                      "type": "text",
                      "value": "<",
                    },
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "string",
                        },
                      ],
                      "identifier": "2",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                    Object {
                      "type": "text",
                      "value": ">",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "type": "text",
                      "value": "An IPv6 address string",
                    },
                  ],
                  "type": "paragraph",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",
    },
  ],
  "type": "root",
}
`;

exports[`outputs var-function-param-return.input.js JSON 1`] = `
Array [
  Object {
    "augments": Array [],
    "context": Object {
      "loc": Object {
        "end": Object {
          "column": 40,
          "index": 47,
          "line": 2,
        },
        "start": Object {
          "column": 0,
          "index": 7,
          "line": 2,
        },
      },
    },
    "description": "",
    "errors": Array [],
    "examples": Array [],
    "implements": Array [],
    "kind": "function",
    "loc": Object {
      "end": Object {
        "column": 6,
        "index": 6,
        "line": 1,
      },
      "start": Object {
        "column": 0,
        "index": 0,
        "line": 1,
      },
    },
    "members": Object {
      "events": Array [],
      "global": Array [],
      "inner": Array [],
      "instance": Array [],
      "static": Array [],
    },
    "name": "f",
    "namespace": "f",
    "params": Array [
      Object {
        "lineNumber": 2,
        "name": "x",
        "title": "param",
        "type": Object {
          "name": "number",
          "type": "NameExpression",
        },
      },
    ],
    "path": Array [
      Object {
        "kind": "function",
        "name": "f",
      },
    ],
    "properties": Array [],
    "returns": Array [
      Object {
        "title": "returns",
        "type": Object {
          "name": "boolean",
          "type": "NameExpression",
        },
      },
    ],
    "sees": Array [],
    "tags": Array [],
    "throws": Array [],
    "todos": Array [],
    "yields": Array [],
  },
]
`;

exports[`outputs var-function-param-return.input.js markdown 1`] = `
"<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [f][1]
    *   [Parameters][2]

## f

### Parameters

*   \`x\` **[number][3]**&#x20;

Returns **[boolean][4]**&#x20;

[1]: #f

[2]: #parameters

[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number

[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
"
`;

exports[`outputs var-function-param-return.input.js markdown AST 1`] = `
Object {
  "children": Array [
    Object {
      "type": "html",
      "value": "<!-- Generated by documentation.js. Update this documentation by updating the source code. -->",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "f",
        },
      ],
      "depth": 2,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Parameters",
        },
      ],
      "depth": 3,
      "type": "heading",
    },
    Object {
      "children": Array [
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "inlineCode",
                  "value": "x",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
                Object {
                  "children": Array [
                    Object {
                      "children": Array [
                        Object {
                          "type": "text",
                          "value": "number",
                        },
                      ],
                      "identifier": "1",
                      "referenceType": "full",
                      "type": "linkReference",
                    },
                  ],
                  "type": "strong",
                },
                Object {
                  "type": "text",
                  "value": " ",
                },
              ],
              "type": "paragraph",
            },
          ],
          "type": "listItem",
        },
      ],
      "ordered": false,
      "spread": false,
      "type": "list",
    },
    Object {
      "children": Array [
        Object {
          "type": "text",
          "value": "Returns ",
        },
        Object {
          "children": Array [
            Object {
              "children": Array [
                Object {
                  "type": "text",
                  "value": "boolean",
                },
              ],
              "identifier": "2",
              "referenceType": "full",
              "type": "linkReference",
            },
          ],
          "type": "strong",
        },
        Object {
          "type": "text",
          "value": " ",
        },
      ],
      "type": "paragraph",
    },
    Object {
      "identifier": "1",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",
    },
    Object {
      "identifier": "2",
      "title": "",
      "type": "definition",
      "url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",
    },
  ],
  "type": "root",
}
`;
