Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix regex in utils.stackTraceFilter to prevent ReDoS #3416 #3686

Merged
merged 1 commit into from Jan 30, 2019

Conversation

Projects
None yet
6 participants
@cyjake
Copy link
Contributor

commented Jan 24, 2019

if the stack trace begins with a large error message (>= 20k charactors), and user leaves --full-trace disabled, utils.stackTraceFilter() takes ages to finish. Large error messages is quite possible when user makes containment assertions such as expect(content).to.contain(word).

Description of the Change

simplified the regex used in utils.stackTraceFilter() to boost performance therefore prevent ReDoS if the stack contains large error message.

Alternate Designs

It's possible to skip check error message in stack by skipping the first line but the regex fix won't change any behavior hence it is chosen.

Why should this be in core?

well, it's a bug introduced by the stack filtering feature.

Benefits

mocha won't hang even if users make assertions with large error messages, which is quite possible because containment check is used a lot.

Possible Drawbacks

None

Applicable issues

#3416 looks like one but it was because of an external library (still quite possible if chai makes large error message and assert.deepEqual don't, didn't check).

Show resolved Hide resolved lib/utils.js
Show resolved Hide resolved test/unit/runner.spec.js
@coveralls

This comment has been minimized.

Copy link

commented Jan 24, 2019

Coverage Status

Coverage increased (+0.04%) to 91.159% when pulling ec7699b on cyjake:master into 7fee3a3 on mochajs:master.

@boneskull
Copy link
Member

left a comment

thanks! LGTM

@boneskull boneskull added this to the v6.0.0 milestone Jan 24, 2019

@boneskull boneskull requested review from juergba, outsideris and plroebuck Jan 24, 2019

@boneskull

This comment has been minimized.

Copy link
Member

commented Jan 24, 2019

will wait for someone else to review, but fine by me if it's merged thereafter

Show resolved Hide resolved lib/utils.js
Show resolved Hide resolved lib/utils.js
Show resolved Hide resolved lib/utils.js
Show resolved Hide resolved lib/utils.js
Show resolved Hide resolved test/unit/runner.spec.js
Show resolved Hide resolved lib/utils.js
Show resolved Hide resolved lib/utils.js
Show resolved Hide resolved lib/utils.js
@juergba

This comment has been minimized.

Copy link
Member

commented Jan 27, 2019

@cyjake I feel uncomfortable with this err.stack stuff, since I still don't understand it clearly. My platform is windows.

  • I run your test case and your "end-to-end benchmark" example, both work with and without your changes. I didn't check the time though, but no obvious difference.
  • Error.prototype.message is a standard property which contains a brief description of the error (definition of Mozilla.org). Do assertion errors (ab)use this property to log huge diffs? And when getting too large we have those hangers?
  • why not pass err.message as second parameter to stackTraceFilter() and omit that regex?
for (var i = 0; i < 20000; i++) {
var line = stack[i % stack.length];
message[i] = line[Math.floor(Math.random() * line.length)];
}

This comment has been minimized.

Copy link
@plroebuck

plroebuck Jan 27, 2019

Member

OK. Think I'm good with the regex change to code in "lib/utils.js". But uncomfortable with your test here, which seems at odds with your issue. Why doesn't it just create a multi-line AssertionError.message and replace stack[0]? The for loop code seems... excessive-? to that task, and its contents are non-reproducible. Shouldn't message be of type String?

This comment has been minimized.

Copy link
@cyjake

cyjake Jan 28, 2019

Author Contributor

@plroebuck ah, good catch. There actually are two factors that might slow down the regex test, a long single line (>= 40k takes ~1600ms), or a large message with multiple lines. The test case I constructed was trying to mimic the first case but it was done incorrectly. I've pushed the fix.

The for loop is the simplest way I can come up with to create a long and non-repeating text. Using fs.readFileSync(path.join(__dirname, '../mocha.js'), 'utf8') suffices the task but I'm not sure this unit test is node.js only or not.

This comment has been minimized.

Copy link
@cyjake

cyjake Jan 28, 2019

Author Contributor

ha, turns out I wasn't very wrong.

> a = [1,2]
[ 1, 2 ]
> [a]
[ [ 1, 2 ] ]
> [a].concat(3).join('\n')
'1,2\n3'

[message].concat(stack).join(\n') just yields a large err.message with lots of ,. Anyway, I've updated the test code.

This comment has been minimized.

Copy link
@plroebuck

plroebuck Jan 29, 2019

Member

Could you add a test case for a large multi-line message to cover both triggers?

// L491
 describe('when the stacktrace error message is ridiculously long', function() {
   it('should not hang temporarily if error message is single line', function(done) {
     // existing test here
   });
   it('should not hang temporarily if error message is multiple lines', function(done) {
     // requested test here
   });
 });

This comment has been minimized.

Copy link
@cyjake

cyjake Jan 30, 2019

Author Contributor

ah, guess I missed this one. I'm on it.

@@ -487,6 +487,32 @@ describe('Runner', function() {
});

This comment has been minimized.

Copy link
@plroebuck

plroebuck Jan 27, 2019

Member

On L450 and L471, can we change the skip condition to be more apparent?

 if (path.sep !== '/') {

would become

 if (process.platform === 'win32') {

This comment has been minimized.

Copy link
@boneskull

boneskull Jan 29, 2019

Member

yes, but it doesn't need to happen in this PR.

@cyjake cyjake force-pushed the cyjake:master branch from 81d9525 to 8fe5c23 Jan 28, 2019

@cyjake

This comment has been minimized.

Copy link
Contributor Author

commented Jan 29, 2019

@juergba Sorry for not catching your comment. Here's my two cents.

  • You might've got a computer faster than mine. It should fail if you bump the length in the for loop of the mock function. Run the test with shorter timeout shall suffice too, such as ./bin/mocha.js test/unit/runner.spec.js --timeout 500.
  • Yes, AssertionError use err.message to display failure message which might be (accidentally) very large because expect(content).to.contain(string) is quite common, at least in my projects.
  • I did consider the approach of separating err.message from err.stack, but the changes involved is disproportionate compared to this one. The regex needs fix anyway, /\(?.+/ simply matches any character which makes no point.
Show resolved Hide resolved test/unit/runner.spec.js Outdated

@cyjake cyjake force-pushed the cyjake:master branch 2 times, most recently from f6d9635 to 38ee9d7 Jan 30, 2019

Show resolved Hide resolved test/unit/runner.spec.js Outdated
Show resolved Hide resolved test/unit/runner.spec.js
it('should not hang if error message is ridiculously long multiple lines either', function(done) {
var hook = new Hook();
hook.parent = suite;
var fpath = require('path').join(__dirname, '../../mocha.js');

This comment has been minimized.

Copy link
@plroebuck

plroebuck Jan 30, 2019

Member
        var fpath = path.join(__dirname, '..', '..', 'mocha.js');

This comment has been minimized.

Copy link
@cyjake

cyjake Jan 30, 2019

Author Contributor

https://nodejs.org/api/path.html#path_path_sep path actually accepts both back and forward slash, manually separating them into parameters is unnecessary.

fix regex in utils.stackTraceFilter to prevent ReDoS #3416
if the stack trace begins with a large error message (>= 20k charactors), and user leaves `--full-trace` disabled, `utils.stackTraceFilter()` takes ages to finish. Large error messages is quite possible when user makes containment assertions such as `expect(content).to.contain(word)`.

@cyjake cyjake force-pushed the cyjake:master branch from 38ee9d7 to ec7699b Jan 30, 2019

.slice(-3)
.join('\n'),
'to be',
stack.slice(0, 3).join('\n')

This comment has been minimized.

Copy link
@plroebuck

plroebuck Jan 30, 2019

Member

assertion is comparing the last three lines of err.stack against the first three lines of stack?

This comment has been minimized.

Copy link
@cyjake

cyjake Jan 30, 2019

Author Contributor

I think I need to explain L546 a bit. err.stack is huge because of the enormous err.message, which makes cleaning the stack to be comparable to stack.slice(0, 3) a bit complicated. In theory, if err.stack is correctly filtered, the last 3 lines should match the first thee of stack, because the rest of stack is meant to be filtered out.

This comment has been minimized.

Copy link
@plroebuck

plroebuck Jan 30, 2019

Member

See prettyErrStack comment above.

.slice(1)
.join('\n'),
'to be',
stack.slice(0, 3).join('\n')

This comment has been minimized.

Copy link
@plroebuck

plroebuck Jan 30, 2019

Member

assertion is comparing err.stack sans message against the first three lines of stack?

This comment has been minimized.

Copy link
@cyjake

cyjake Jan 30, 2019

Author Contributor

yes, because the rest of stack should be filtered out.


it('should not hang if error message is ridiculously long multiple lines either', function(done) {
var hook = new Hook();
hook.parent = suite;

This comment has been minimized.

Copy link
@plroebuck

plroebuck Jan 30, 2019

Member
function genMultiLineMessage() {
    var fpath = path.join(__dirname, '..', '..', 'mocha.js');
    return fs.readFileSync(fpath, 'utf8');
}
var message = genMultiLineMessage();
var data = [];
// mock a long message
for (var i = 0; i < 10000; i++) data[i] = {a: 1};
var message = JSON.stringify(data);

This comment has been minimized.

Copy link
@plroebuck

plroebuck Jan 30, 2019

Member
function genSingleLineMessage() {
  var data = [];
  for (var i = 0; i < 10000; i++) data[i] = {a: 1};
  return JSON.stringify(data);
}
var message = genSingleLineMessage();

This comment has been minimized.

Copy link
@cyjake

cyjake Jan 30, 2019

Author Contributor

I think the test case title is self explanatory enough. The test case body isn't that long that needs this level of refactor. Can I pass on this one?

This comment has been minimized.

Copy link
@plroebuck

plroebuck Jan 30, 2019

Member

Each function would live outside the corresponding it() replacing the how with what was generated. Prefer self-documenting code (especially considering the number of questions this small PR has already brought up). But whatever...

This comment has been minimized.

Copy link
@cyjake

cyjake Jan 30, 2019

Author Contributor

Let's just discuss in this thread. I believe the changes you proposed are all quite similar. Extracting three lines into a function, breaking one line into multiple or joining multiple into one, these are all personal preferences. This repo has already configured quite strict (far too strict in my opinion) rules, and I've done the changes to comply with them already.

And about the number of questions this small PR has already brought up , at least half of them were because you guys didn't read my PR description or the code carefully to understand in the first place. A week has passed since I requested this PR, four reviewers have reviewed the code, more than 55 comments were made, the real change that actually matters is to remove five characters \(?.+, and guess what, it is still not merged.

I understand that people get busy and stuff, but I'm done. Take it or leave it.

This comment has been minimized.

Copy link
@plroebuck

plroebuck Jan 30, 2019

Member

And about the number of questions this small PR has already brought up , at least half of
them were because you guys didn't read my PR description or the code carefully to
understand in the first place. A week has passed since I requested this PR, four reviewers
have reviewed the code, more than 55 comments were made, the real change that actually
matters is to remove five characters \(?.+, and guess what, it is still not merged.

I read your PR description. Problem is that you're making the assumption we're extremely familiar with the entirety of the codebase. Most of us aren't. As such, we have to learn what the original code does, figure out what changes you made, whether it could have been done differently, what is tested (or wasn't), and what possible breakage could come. We also have to maintain it afterwards, typically only having gained cursory knowledge of the original problem.
And all that takes unpaid time away from our families... Sorry we're too slow for your taste.

// Fake stack-trace
err.stack = [message].concat(stack).join('\n');

runner.on('fail', function(hook, err) {

This comment has been minimized.

Copy link
@plroebuck

plroebuck Jan 30, 2019

Member

How about this to make it more clear:

          var prettyErrStack = err.stack.split('\n').slice(1)
          expect(
            prettyErrStack.join('\n'),
            'to be',
            stack.slice(0, 3).join('\n')
          );

This comment has been minimized.

Copy link
@cyjake

cyjake Jan 30, 2019

Author Contributor

Actually I wrote a one-liner in the first place err.stack.split('\n').slice(1).join('\n'), which is frowned upon by the prettier pre-check and forced me to broke them into lines. Assigning an extra variable does reduce the lines but I do still prefer err.stack.split('\n').slice(1).join('\n') in the first place.

Anyway, var prettyErrStack = err.stack.split('\n').slice(1) is good, var prettyErrStack = err.stack.split('\n').slice(1).join('\n') is bad. This makes no sense.

This comment has been minimized.

Copy link
@plroebuck

plroebuck Jan 30, 2019

Member

Was trying to annotate (albeit poorly) that err.stack had changed behind the scenes by using different variable with "pretty" in its name.

Line length probably triggers Prettier to break things up (but I don't know what column).

@juergba

This comment has been minimized.

Copy link
Member

commented Jan 30, 2019

@cyjake I didn't get your description at first, especially this Error.stack is non standard and quite fuzzy to catch. A few more words in your description would have helped me a lot. And it's true, most of us don't know every line of code in every detail.

@plroebuck what about one more round of reviewing, then we merge this PR and you do your adaptions later?

@plroebuck

This comment has been minimized.

Copy link
Member

commented Jan 30, 2019

@juergba, I've said what I was going to. You have anything else? If not, let's just merge it and I'll make my changes to the tests afterwards.

@juergba

This comment has been minimized.

Copy link
Member

commented Jan 30, 2019

@plroebuck I didn't follow all the latest comments, but yes let's merge it.

@plroebuck plroebuck merged commit 1a43d8b into mochajs:master Jan 30, 2019

5 checks passed

continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
coverage/coveralls Coverage increased (+0.04%) to 91.159%
Details
deploy/netlify Deploy preview ready!
Details
licence/cla Contributor License Agreement is signed.
Details

plroebuck added a commit that referenced this pull request Jan 30, 2019

test(unit/runner.spec.js): Minor tweeks related to #3686
Refactored portions of tests for (hopefully) increased clarity.

plroebuck added a commit that referenced this pull request Feb 1, 2019

test(unit/runner.spec.js): Minor tweeks related to #3686 (#3704)
* Refactored portions of tests for increased clarity.
* Updated code to run all stacktrace tests on Windows (previously skipped).
* Updated/replaced logic for generation of overlong messages used in filter tests.

germanattanasio added a commit to watson-developer-cloud/language-translator-nodejs that referenced this pull request Feb 18, 2019

Update mocha to the latest version 🚀 (#67)
## The devDependency [mocha](https://github.com/mochajs/mocha) was updated from `5.2.0` to `6.0.0`.
This version is **not covered** by your **current version range**.

If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.

---

<details>
<summary>Release Notes for v6.0.0</summary>

<h1>6.0.0 / 2019-02-18</h1>
<h2><g-emoji class="g-emoji" alias="boom" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4a5.png">💥</g-emoji> Breaking Changes</h2>
<ul>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3149" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3149/hovercard">#3149</a>: <strong>Drop Node.js v4.x support</strong> (<a href="https://urls.greenkeeper.io/outsideris"><strong>@outsideris</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3556" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3556/hovercard">#3556</a>: Changes to command-line options (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>):
<ul>
<li><code>--grep</code> and <code>--fgrep</code> are now mutually exclusive; attempting to use both will cause Mocha to fail instead of simply ignoring <code>--grep</code></li>
<li><code>--compilers</code> is no longer supported; attempting to use will cause Mocha to fail with a link to more information</li>
<li><code>-d</code> is no longer an alias for <code>--debug</code>; <code>-d</code> is currently ignored</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3275" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3275/hovercard">#3275</a>: <code>--watch-extensions</code> no longer implies <code>js</code>; it must be explicitly added (<a href="https://urls.greenkeeper.io/TheDancingCode"><strong>@TheDancingCode</strong></a>)</li>
</ul>
</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2908" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/2908/hovercard">#2908</a>: <code>tap</code> reporter emits error messages (<a href="https://urls.greenkeeper.io/chrmod"><strong>@chrmod</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2819" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/2819/hovercard">#2819</a>: When conditionally skipping in a <code>before</code> hook, subsequent <code>before</code> hooks <em>and</em> tests in nested suites are now skipped (<a href="https://urls.greenkeeper.io/bannmoore"><strong>@bannmoore</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/627" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/627/hovercard">#627</a>: Emit filepath in "timeout exceeded" exceptions where applicable (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3556" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3556/hovercard">#3556</a>: <code>lib/template.html</code> has moved to <code>lib/browser/template.html</code> (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2576" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/2576/hovercard">#2576</a>: An exception is now thrown if Mocha fails to parse or find a <code>mocha.opts</code> at a user-specified path (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3458" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3458/hovercard">#3458</a>: Instantiating a <code>Base</code>-extending reporter without a <code>Runner</code> parameter will throw an exception (<a href="https://urls.greenkeeper.io/craigtaub"><strong>@craigtaub</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3125" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3125/hovercard">#3125</a>: For consumers of Mocha's programmatic API, all exceptions thrown from Mocha now have a <code>code</code> property (and some will have additional metadata).  Some <code>Error</code> messages have changed.  <strong>Please use the <code>code</code> property to check <code>Error</code> types instead of the <code>message</code> property</strong>; these descriptions will be  localized in the future. (<a href="https://urls.greenkeeper.io/craigtaub"><strong>@craigtaub</strong></a>)</li>
</ul>
<h2><g-emoji class="g-emoji" alias="fax" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e0.png">📠</g-emoji> Deprecations</h2>
<p>These are <em>soft</em>-deprecated, and will emit a warning upon use.  Support will be removed in (likely) the next major version of Mocha:</p>
<ul>
<li><code>-gc</code> users should use <code>--gc-global</code> instead</li>
<li>Consumers of the function exported by <code>bin/options</code> should now use the <code>loadMochaOpts</code> or <code>loadOptions</code> (preferred) functions exported by the <code>lib/cli/options</code> module</li>
</ul>
<p>Regarding the <code>Mocha</code> class constructor (from <code>lib/mocha</code>):</p>
<ul>
<li>Use property <code>color: false</code> instead of <code>useColors: false</code></li>
<li>Use property <code>timeout: false</code> instead of <code>enableTimeouts: false</code></li>
</ul>
<p>All of the above deprecations were introduced by <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3556" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3556/hovercard">#3556</a>.</p>
<p><code>mocha.opts</code> is now considered "legacy"; please prefer RC file or <code>package.json</code> over <code>mocha.opts</code>.</p>
<h2><g-emoji class="g-emoji" alias="tada" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f389.png">🎉</g-emoji> Enhancements</h2>
<ul>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3726" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3726/hovercard">#3726</a>: Add ability to unload files from <code>require</code> cache (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a>)</li>
</ul>
<p>Enhancements introduced in <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3556" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3556/hovercard">#3556</a>:</p>
<ul>
<li>
<p>Mocha now supports "RC" files in JS, JSON, YAML, or <code>package.json</code>-based (using <code>mocha</code> property) format</p>
<ul>
<li><code>.mocharc.js</code>, <code>.mocharc.json</code>, <code>.mocharc.yaml</code> or <code>.mocharc.yml</code> are valid "rc" file names and will be automatically loaded</li>
<li>Use <code>--config /path/to/rc/file</code> to specify an explicit path</li>
<li>Use <code>--package /path/to/package.json</code> to specify an explicit <code>package.json</code> to read the <code>mocha</code> prop from</li>
<li>Use <code>--no-config</code> or <code>--no-package</code> to completely disable loading of configuration via RC file and <code>package.json</code>, respectively</li>
<li>Configurations are merged as applicable using the priority list:
<ol>
<li>Command-line arguments</li>
<li>RC file</li>
<li><code>package.json</code></li>
<li><code>mocha.opts</code></li>
<li>Mocha's own defaults</li>
</ol>
</li>
<li>Check out these <a href="https://urls.greenkeeper.io/mochajs/mocha/tree/master/example/config">example config files</a></li>
</ul>
</li>
<li>
<p>Node/V8 flag support in <code>mocha</code> executable:</p>
<ul>
<li>Support all allowed <code>node</code> flags as supported by the running version of <code>node</code> (also thanks to <a href="https://urls.greenkeeper.io/demurgos"><strong>@demurgos</strong></a>)</li>
<li>Support any V8 flag by prepending <code>--v8-</code> to the flag name</li>
<li>All flags are also supported via config files, <code>package.json</code> properties, or <code>mocha.opts</code></li>
<li>Debug-related flags (e.g., <code>--inspect</code>) now <em>imply</em> <code>--no-timeouts</code></li>
<li>Use of e.g., <code>--debug</code> will automatically invoke <code>--inspect</code> if supported by running version of <code>node</code></li>
</ul>
</li>
<li>
<p>Support negation of any Mocha-specific command-line flag by prepending <code>--no-</code> to the flag name</p>
</li>
<li>
<p>Interfaces now have descriptions when listed using <code>--interfaces</code> flag</p>
</li>
<li>
<p><code>Mocha</code> constructor supports all options</p>
</li>
<li>
<p><code>--extension</code> is now an alias for <code>--watch-extensions</code> and affects <em>non-watch-mode</em> test runs as well.  For example, to run <em>only</em> <code>test/*.coffee</code> (not <code>test/*.js</code>), you can do <code>mocha --require coffee-script/register --extensions coffee</code>.</p>
</li>
<li>
<p><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3552" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3552/hovercard">#3552</a>: <code>tap</code> reporter is now TAP13-capable (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a> &amp; <a href="https://urls.greenkeeper.io/mollstam"><strong>@mollstam</strong></a>)</p>
</li>
<li>
<p><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3535" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3535/hovercard">#3535</a>: Mocha's version can now be queried programmatically via public property <code>Mocha.prototype.version</code> (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a>)</p>
</li>
<li>
<p><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3428" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3428/hovercard">#3428</a>: <code>xunit</code> reporter shows diffs (<a href="https://urls.greenkeeper.io/mlucool"><strong>@mlucool</strong></a>)</p>
</li>
<li>
<p><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2529" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/2529/hovercard">#2529</a>: <code>Runner</code> now emits a <code>retry</code> event when tests are retried (reporters can listen for this) (<a href="https://urls.greenkeeper.io/catdad"><strong>@catdad</strong></a>)</p>
</li>
<li>
<p><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2962" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/2962/hovercard">#2962</a>, <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3111" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3111/hovercard">#3111</a>: In-browser notification support; warn about missing prereqs when <code>--growl</code> supplied (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a>)</p>
</li>
</ul>
<h2><g-emoji class="g-emoji" alias="bug" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f41b.png">🐛</g-emoji> Fixes</h2>
<ul>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3737" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3737/hovercard">#3737</a>: Fix falsy values from options globals (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3707" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3707/hovercard">#3707</a>: Fix encapsulation issues for <code>Suite#_onlyTests</code> and <code>Suite#_onlySuites</code> (<a href="https://urls.greenkeeper.io/vkarpov15"><strong>@vkarpov15</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3711" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3711/hovercard">#3711</a>: Fix diagnostic messages dealing with plurality and markup of output (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3723" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3723/hovercard">#3723</a>: Fix "reporter-option" to allow comma-separated options (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3722" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3722/hovercard">#3722</a>: Fix code quality and performance of <code>lookupFiles</code> and <code>files</code> (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3650" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3650/hovercard">#3650</a>, <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3654" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3654/hovercard">#3654</a>: Fix noisy error message when no files found (<a href="https://urls.greenkeeper.io/craigtaub"><strong>@craigtaub</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3632" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3632/hovercard">#3632</a>: Tests having an empty title are no longer confused with the "root" suite (<a href="https://urls.greenkeeper.io/juergba"><strong>@juergba</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3666" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3666/hovercard">#3666</a>: Fix missing error codes (<a href="https://urls.greenkeeper.io/vkarpov15"><strong>@vkarpov15</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3684" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3684/hovercard">#3684</a>: Fix exiting problem in Node.js v11.7.0+ (<a href="https://urls.greenkeeper.io/addaleax"><strong>@addaleax</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3691" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3691/hovercard">#3691</a>: Fix <code>--delay</code> (and other boolean options) not working in all cases (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3692" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3692/hovercard">#3692</a>: Fix invalid command-line argument usage not causing actual errors (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3698" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3698/hovercard">#3698</a>, <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3699" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3699/hovercard">#3699</a>: Fix debug-related Node.js options not working in all cases (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3700" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3700/hovercard">#3700</a>: Growl notifications now show the correct number of tests run (<a href="https://urls.greenkeeper.io/outsideris"><strong>@outsideris</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3686" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3686/hovercard">#3686</a>: Avoid potential ReDoS when diffing large objects (<a href="https://urls.greenkeeper.io/cyjake"><strong>@cyjake</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3715" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3715/hovercard">#3715</a>: Fix incorrect order of emitted events when used programmatically (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3706" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3706/hovercard">#3706</a>: Fix regression wherein <code>--reporter-option</code>/<code>--reporter-options</code> did not support comma-separated key/value pairs (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li>Fix missing <code>mocharc.json</code> in published package (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3356" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3356/hovercard">#3356</a>: <code>--no-timeouts</code> and <code>--timeout 0</code> now does what you'd expect (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3475" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3475/hovercard">#3475</a>: Restore <code>--no-exit</code> option (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3570" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3570/hovercard">#3570</a>: Long-running tests now respect <code>SIGINT</code> (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2944" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/2944/hovercard">#2944</a>: <code>--forbid-only</code> and <code>--forbid-pending</code> now "fail fast" when encountered on a suite (<a href="https://urls.greenkeeper.io/outsideris"><strong>@outsideris</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/1652" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/1652/hovercard">#1652</a>, <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2951" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/2951/hovercard">#2951</a>: Fix broken clamping of timeout values (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2753" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/2753/hovercard">#2753</a>: <code>start</code> and <code>end</code> events now emitted properly from <code>Runner</code> instance when using Mocha programmatically (<a href="https://urls.greenkeeper.io/outsideris"><strong>@outsideris</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2095" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/2095/hovercard">#2095</a>, <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3521" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3521/hovercard">#3521</a>: Do not log <code>stdout:</code> prefix in browser console (<a href="https://urls.greenkeeper.io/Bamieh"><strong>@Bamieh</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3595" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3595/hovercard">#3595</a>: Fix mochajs.org deployment problems (<a href="https://urls.greenkeeper.io/papandreou"><strong>@papandreou</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3518" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3518/hovercard">#3518</a>: Improve <code>utils.isPromise()</code> (<a href="https://urls.greenkeeper.io/fabiosantoscode"><strong>@fabiosantoscode</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3320" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3320/hovercard">#3320</a>: Fail gracefully when non-extensible objects are thrown in async tests (<a href="https://urls.greenkeeper.io/fargies"><strong>@fargies</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2475" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/2475/hovercard">#2475</a>: XUnit does not duplicate test result numbers in "errors" and "failures"; "failures" will <strong>always</strong> be zero (<a href="https://urls.greenkeeper.io/mlucool"><strong>@mlucool</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3398" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3398/hovercard">#3398</a>, <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3598" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3598/hovercard">#3598</a>, <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3457" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3457/hovercard">#3457</a>, <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3617" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3617/hovercard">#3617</a>: Fix regression wherein <code>--bail</code> would not execute "after" nor "after each" hooks (<a href="https://urls.greenkeeper.io/juergba"><strong>@juergba</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3580" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3580/hovercard">#3580</a>: Fix potential exception when using XUnit reporter programmatically (<a href="https://urls.greenkeeper.io/Lana-Light"><strong>@Lana-Light</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/1304" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/1304/hovercard">#1304</a>: Do not output color to <code>TERM=dumb</code> (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a>)</li>
</ul>
<h2><g-emoji class="g-emoji" alias="book" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4d6.png">📖</g-emoji> Documentation</h2>
<ul>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3525" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3525/hovercard">#3525</a>: Improvements to <code>.github/CONTRIBUTING.md</code> (<a href="https://urls.greenkeeper.io/markowsiak"><strong>@markowsiak</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3466" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3466/hovercard">#3466</a>: Update description of <code>slow</code> option (<a href="https://urls.greenkeeper.io/finfin"><strong>@finfin</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3405" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3405/hovercard">#3405</a>: Remove references to bower installations (<a href="https://urls.greenkeeper.io/goteamtim"><strong>@goteamtim</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3361" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3361/hovercard">#3361</a>: Improvements to <code>--watch</code> docs (<a href="https://urls.greenkeeper.io/benglass"><strong>@benglass</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3136" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3136/hovercard">#3136</a>: Improve docs around globbing and shell expansion (<a href="https://urls.greenkeeper.io/akrawchyk"><strong>@akrawchyk</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2819" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/2819/hovercard">#2819</a>: Update docs around skips and hooks (<a href="https://urls.greenkeeper.io/bannmoore"><strong>@bannmoore</strong></a>)</li>
<li>Many improvements by <a href="https://urls.greenkeeper.io/outsideris"><strong>@outsideris</strong></a></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3652" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3652/hovercard">#3652</a>: Switch from Jekyll to Eleventy (<a href="https://urls.greenkeeper.io/Munter"><strong>@Munter</strong></a>)</li>
</ul>
<h2><g-emoji class="g-emoji" alias="nut_and_bolt" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f529.png">🔩</g-emoji> Other</h2>
<ul>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3677" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3677/hovercard">#3677</a>: Add error objects for createUnsupportedError and createInvalidExceptionError (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3733" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3733/hovercard">#3733</a>: Removed unnecessary processing in post-processing hook (<a href="https://urls.greenkeeper.io/wanseob"><strong>@wanseob</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3730" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3730/hovercard">#3730</a>: Update nyc to latest version (<a href="https://urls.greenkeeper.io/coreyfarrell"><strong>@coreyfarrell</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3648" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3648/hovercard">#3648</a>, <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3680" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3680/hovercard">#3680</a>: Fixes to support latest versions of <a href="https://npm.im/unexpected" rel="nofollow">unexpected</a> and <a href="https://npm.im/unexpected-sinon" rel="nofollow">unexpected-sinon</a> (<a href="https://urls.greenkeeper.io/sunesimonsen"><strong>@sunesimonsen</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3638" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3638/hovercard">#3638</a>: Add meta tag to site (<a href="https://urls.greenkeeper.io/MartijnCuppens"><strong>@MartijnCuppens</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3653" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3653/hovercard">#3653</a>: Fix parts of test suite failing to run on Windows (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3557" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3557/hovercard">#3557</a>: Use <code>ms</code> userland module instead of hand-rolled solution (<a href="https://urls.greenkeeper.io/gizemkeser"><strong>@gizemkeser</strong></a>)</li>
<li>Many CI fixes and other refactors by <a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a></li>
<li>Test refactors by <a href="https://urls.greenkeeper.io/outsideris"><strong>@outsideris</strong></a></li>
</ul>
</details>

<details>
<summary>Commits</summary>
<p>The new version differs by 209 commits ahead by 209, behind by 39.</p>
<ul>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/42303e2acba217af554294b1174ee53b5627cc33"><code>42303e2</code></a> <code>Release v6.0.0</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/a553ca70287f407abd4a82180e4a1155b8730756"><code>a553ca7</code></a> <code>punctuation updates for changelog v6.0.0</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/c7107926b3a546960e841b0339bf4a3b85170c4c"><code>c710792</code></a> <code>grammar updates for changelog v6.0.0</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/9f9293a0db44ce41e1bd9cc38d68e3d7a1010f41"><code>9f9293a</code></a> <code>update changelog for v6.0.0</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/a540eb06f23135db563a6b2bd2e0b3b51583fde7"><code>a540eb0</code></a> <code>remove "projects" section from MAINTAINERS.md [ci skip]</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/52b5c42c3dda8c386735969642843bd1129a4562"><code>52b5c42</code></a> <code>Uppercased JSON reporter name in <code>describe</code> title (#3739)</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/82307fbf9bfa7cd72042facd1d42fb108257100c"><code>82307fb</code></a> <code>Fix <code>.globals</code> to remove falsy values (#3737)</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/56dc28e62f63903632d5fe4169b52cb2cdb5f7ea"><code>56dc28e</code></a> <code>Remove unnecessary post-processing code having no effect; closes #3708 (#3733)</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/16b4281b6e86d93e959a37f830a349c0542d968a"><code>16b4281</code></a> <code>Documentation updates (#3728)</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/5d9d3eb665825ea69435388f5776150f40c844be"><code>5d9d3eb</code></a> <code>Update nyc</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/118c9aeab5b6192d627b0b369e43584ab8f9f0b7"><code>118c9ae</code></a> <code>Refactor out usages of Suite#_onlyTests and Suite#_onlyTests (#3689) (#3707)</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/0dacd1fb0067e40f8567653f828f677022e4fb89"><code>0dacd1f</code></a> <code>Add ability to unload files from <code>require</code> cache (redux) (#3726)</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/66a52f25cafd266ab3cce2db975a560a695ecae9"><code>66a52f2</code></a> <code>update release steps [ci skip]</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/45ae014d0baba97b4b50b37ae526e1b50a9334e9"><code>45ae014</code></a> <code>Refactor <code>lookupFiles</code> and <code>files</code> (#3722)</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/94c932095b4b8e8a7a5d9dde93ad2172d95f5ebe"><code>94c9320</code></a> <code>fix --reporter-option to allow comma-separated options; closes #3706</code></li>
</ul>
<p>There are 209 commits in total.</p>
<p>See the <a href="https://urls.greenkeeper.io/mochajs/mocha/compare/5bd33a0ba201d227159759e8ced86756595b0c54...42303e2acba217af554294b1174ee53b5627cc33">full diff</a></p>
</details>

<details>
  <summary>FAQ and help</summary>

  There is a collection of [frequently asked questions](https://greenkeeper.io/faq.html). If those don’t help, you can always [ask the humans behind Greenkeeper](https://github.com/greenkeeperio/greenkeeper/issues/new).
</details>

---


Your [Greenkeeper](https://greenkeeper.io) bot 🌴



Co-authored-by: null <greenkeeper[bot]@users.noreply.github.com>

goto-bus-stop added a commit to u-wave/react-vimeo that referenced this pull request Feb 19, 2019

Update mocha to the latest version 🚀 (#73)
## The devDependency [mocha](https://github.com/mochajs/mocha) was updated from `5.2.0` to `6.0.0`.
This version is **not covered** by your **current version range**.

If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.

---

<details>
<summary>Release Notes for v6.0.0</summary>

<h1>6.0.0 / 2019-02-18</h1>
<h2><g-emoji class="g-emoji" alias="boom" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4a5.png">💥</g-emoji> Breaking Changes</h2>
<ul>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3149" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3149/hovercard">#3149</a>: <strong>Drop Node.js v4.x support</strong> (<a href="https://urls.greenkeeper.io/outsideris"><strong>@outsideris</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3556" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3556/hovercard">#3556</a>: Changes to command-line options (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>):
<ul>
<li><code>--grep</code> and <code>--fgrep</code> are now mutually exclusive; attempting to use both will cause Mocha to fail instead of simply ignoring <code>--grep</code></li>
<li><code>--compilers</code> is no longer supported; attempting to use will cause Mocha to fail with a link to more information</li>
<li><code>-d</code> is no longer an alias for <code>--debug</code>; <code>-d</code> is currently ignored</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3275" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3275/hovercard">#3275</a>: <code>--watch-extensions</code> no longer implies <code>js</code>; it must be explicitly added (<a href="https://urls.greenkeeper.io/TheDancingCode"><strong>@TheDancingCode</strong></a>)</li>
</ul>
</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2908" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/2908/hovercard">#2908</a>: <code>tap</code> reporter emits error messages (<a href="https://urls.greenkeeper.io/chrmod"><strong>@chrmod</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2819" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/2819/hovercard">#2819</a>: When conditionally skipping in a <code>before</code> hook, subsequent <code>before</code> hooks <em>and</em> tests in nested suites are now skipped (<a href="https://urls.greenkeeper.io/bannmoore"><strong>@bannmoore</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/627" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/627/hovercard">#627</a>: Emit filepath in "timeout exceeded" exceptions where applicable (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3556" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3556/hovercard">#3556</a>: <code>lib/template.html</code> has moved to <code>lib/browser/template.html</code> (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2576" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/2576/hovercard">#2576</a>: An exception is now thrown if Mocha fails to parse or find a <code>mocha.opts</code> at a user-specified path (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3458" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3458/hovercard">#3458</a>: Instantiating a <code>Base</code>-extending reporter without a <code>Runner</code> parameter will throw an exception (<a href="https://urls.greenkeeper.io/craigtaub"><strong>@craigtaub</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3125" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3125/hovercard">#3125</a>: For consumers of Mocha's programmatic API, all exceptions thrown from Mocha now have a <code>code</code> property (and some will have additional metadata).  Some <code>Error</code> messages have changed.  <strong>Please use the <code>code</code> property to check <code>Error</code> types instead of the <code>message</code> property</strong>; these descriptions will be  localized in the future. (<a href="https://urls.greenkeeper.io/craigtaub"><strong>@craigtaub</strong></a>)</li>
</ul>
<h2><g-emoji class="g-emoji" alias="fax" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e0.png">📠</g-emoji> Deprecations</h2>
<p>These are <em>soft</em>-deprecated, and will emit a warning upon use.  Support will be removed in (likely) the next major version of Mocha:</p>
<ul>
<li><code>-gc</code> users should use <code>--gc-global</code> instead</li>
<li>Consumers of the function exported by <code>bin/options</code> should now use the <code>loadMochaOpts</code> or <code>loadOptions</code> (preferred) functions exported by the <code>lib/cli/options</code> module</li>
</ul>
<p>Regarding the <code>Mocha</code> class constructor (from <code>lib/mocha</code>):</p>
<ul>
<li>Use property <code>color: false</code> instead of <code>useColors: false</code></li>
<li>Use property <code>timeout: false</code> instead of <code>enableTimeouts: false</code></li>
</ul>
<p>All of the above deprecations were introduced by <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3556" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3556/hovercard">#3556</a>.</p>
<p><code>mocha.opts</code> is now considered "legacy"; please prefer RC file or <code>package.json</code> over <code>mocha.opts</code>.</p>
<h2><g-emoji class="g-emoji" alias="tada" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f389.png">🎉</g-emoji> Enhancements</h2>
<ul>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3726" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3726/hovercard">#3726</a>: Add ability to unload files from <code>require</code> cache (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a>)</li>
</ul>
<p>Enhancements introduced in <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3556" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3556/hovercard">#3556</a>:</p>
<ul>
<li>
<p>Mocha now supports "RC" files in JS, JSON, YAML, or <code>package.json</code>-based (using <code>mocha</code> property) format</p>
<ul>
<li><code>.mocharc.js</code>, <code>.mocharc.json</code>, <code>.mocharc.yaml</code> or <code>.mocharc.yml</code> are valid "rc" file names and will be automatically loaded</li>
<li>Use <code>--config /path/to/rc/file</code> to specify an explicit path</li>
<li>Use <code>--package /path/to/package.json</code> to specify an explicit <code>package.json</code> to read the <code>mocha</code> prop from</li>
<li>Use <code>--no-config</code> or <code>--no-package</code> to completely disable loading of configuration via RC file and <code>package.json</code>, respectively</li>
<li>Configurations are merged as applicable using the priority list:
<ol>
<li>Command-line arguments</li>
<li>RC file</li>
<li><code>package.json</code></li>
<li><code>mocha.opts</code></li>
<li>Mocha's own defaults</li>
</ol>
</li>
<li>Check out these <a href="https://urls.greenkeeper.io/mochajs/mocha/tree/master/example/config">example config files</a></li>
</ul>
</li>
<li>
<p>Node/V8 flag support in <code>mocha</code> executable:</p>
<ul>
<li>Support all allowed <code>node</code> flags as supported by the running version of <code>node</code> (also thanks to <a href="https://urls.greenkeeper.io/demurgos"><strong>@demurgos</strong></a>)</li>
<li>Support any V8 flag by prepending <code>--v8-</code> to the flag name</li>
<li>All flags are also supported via config files, <code>package.json</code> properties, or <code>mocha.opts</code></li>
<li>Debug-related flags (e.g., <code>--inspect</code>) now <em>imply</em> <code>--no-timeouts</code></li>
<li>Use of e.g., <code>--debug</code> will automatically invoke <code>--inspect</code> if supported by running version of <code>node</code></li>
</ul>
</li>
<li>
<p>Support negation of any Mocha-specific command-line flag by prepending <code>--no-</code> to the flag name</p>
</li>
<li>
<p>Interfaces now have descriptions when listed using <code>--interfaces</code> flag</p>
</li>
<li>
<p><code>Mocha</code> constructor supports all options</p>
</li>
<li>
<p><code>--extension</code> is now an alias for <code>--watch-extensions</code> and affects <em>non-watch-mode</em> test runs as well.  For example, to run <em>only</em> <code>test/*.coffee</code> (not <code>test/*.js</code>), you can do <code>mocha --require coffee-script/register --extensions coffee</code>.</p>
</li>
<li>
<p><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3552" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3552/hovercard">#3552</a>: <code>tap</code> reporter is now TAP13-capable (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a> &amp; <a href="https://urls.greenkeeper.io/mollstam"><strong>@mollstam</strong></a>)</p>
</li>
<li>
<p><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3535" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3535/hovercard">#3535</a>: Mocha's version can now be queried programmatically via public property <code>Mocha.prototype.version</code> (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a>)</p>
</li>
<li>
<p><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3428" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3428/hovercard">#3428</a>: <code>xunit</code> reporter shows diffs (<a href="https://urls.greenkeeper.io/mlucool"><strong>@mlucool</strong></a>)</p>
</li>
<li>
<p><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2529" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/2529/hovercard">#2529</a>: <code>Runner</code> now emits a <code>retry</code> event when tests are retried (reporters can listen for this) (<a href="https://urls.greenkeeper.io/catdad"><strong>@catdad</strong></a>)</p>
</li>
<li>
<p><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2962" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/2962/hovercard">#2962</a>, <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3111" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3111/hovercard">#3111</a>: In-browser notification support; warn about missing prereqs when <code>--growl</code> supplied (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a>)</p>
</li>
</ul>
<h2><g-emoji class="g-emoji" alias="bug" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f41b.png">🐛</g-emoji> Fixes</h2>
<ul>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3737" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3737/hovercard">#3737</a>: Fix falsy values from options globals (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3707" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3707/hovercard">#3707</a>: Fix encapsulation issues for <code>Suite#_onlyTests</code> and <code>Suite#_onlySuites</code> (<a href="https://urls.greenkeeper.io/vkarpov15"><strong>@vkarpov15</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3711" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3711/hovercard">#3711</a>: Fix diagnostic messages dealing with plurality and markup of output (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3723" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3723/hovercard">#3723</a>: Fix "reporter-option" to allow comma-separated options (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3722" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3722/hovercard">#3722</a>: Fix code quality and performance of <code>lookupFiles</code> and <code>files</code> (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3650" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3650/hovercard">#3650</a>, <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3654" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3654/hovercard">#3654</a>: Fix noisy error message when no files found (<a href="https://urls.greenkeeper.io/craigtaub"><strong>@craigtaub</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3632" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3632/hovercard">#3632</a>: Tests having an empty title are no longer confused with the "root" suite (<a href="https://urls.greenkeeper.io/juergba"><strong>@juergba</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3666" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3666/hovercard">#3666</a>: Fix missing error codes (<a href="https://urls.greenkeeper.io/vkarpov15"><strong>@vkarpov15</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3684" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3684/hovercard">#3684</a>: Fix exiting problem in Node.js v11.7.0+ (<a href="https://urls.greenkeeper.io/addaleax"><strong>@addaleax</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3691" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3691/hovercard">#3691</a>: Fix <code>--delay</code> (and other boolean options) not working in all cases (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3692" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3692/hovercard">#3692</a>: Fix invalid command-line argument usage not causing actual errors (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3698" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3698/hovercard">#3698</a>, <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3699" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3699/hovercard">#3699</a>: Fix debug-related Node.js options not working in all cases (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3700" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3700/hovercard">#3700</a>: Growl notifications now show the correct number of tests run (<a href="https://urls.greenkeeper.io/outsideris"><strong>@outsideris</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3686" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3686/hovercard">#3686</a>: Avoid potential ReDoS when diffing large objects (<a href="https://urls.greenkeeper.io/cyjake"><strong>@cyjake</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3715" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3715/hovercard">#3715</a>: Fix incorrect order of emitted events when used programmatically (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3706" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3706/hovercard">#3706</a>: Fix regression wherein <code>--reporter-option</code>/<code>--reporter-options</code> did not support comma-separated key/value pairs (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li>Fix missing <code>mocharc.json</code> in published package (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3356" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3356/hovercard">#3356</a>: <code>--no-timeouts</code> and <code>--timeout 0</code> now does what you'd expect (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3475" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3475/hovercard">#3475</a>: Restore <code>--no-exit</code> option (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3570" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3570/hovercard">#3570</a>: Long-running tests now respect <code>SIGINT</code> (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2944" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/2944/hovercard">#2944</a>: <code>--forbid-only</code> and <code>--forbid-pending</code> now "fail fast" when encountered on a suite (<a href="https://urls.greenkeeper.io/outsideris"><strong>@outsideris</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/1652" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/1652/hovercard">#1652</a>, <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2951" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/2951/hovercard">#2951</a>: Fix broken clamping of timeout values (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2753" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/2753/hovercard">#2753</a>: <code>start</code> and <code>end</code> events now emitted properly from <code>Runner</code> instance when using Mocha programmatically (<a href="https://urls.greenkeeper.io/outsideris"><strong>@outsideris</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2095" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/2095/hovercard">#2095</a>, <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3521" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3521/hovercard">#3521</a>: Do not log <code>stdout:</code> prefix in browser console (<a href="https://urls.greenkeeper.io/Bamieh"><strong>@Bamieh</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3595" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3595/hovercard">#3595</a>: Fix mochajs.org deployment problems (<a href="https://urls.greenkeeper.io/papandreou"><strong>@papandreou</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3518" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3518/hovercard">#3518</a>: Improve <code>utils.isPromise()</code> (<a href="https://urls.greenkeeper.io/fabiosantoscode"><strong>@fabiosantoscode</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3320" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3320/hovercard">#3320</a>: Fail gracefully when non-extensible objects are thrown in async tests (<a href="https://urls.greenkeeper.io/fargies"><strong>@fargies</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2475" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/2475/hovercard">#2475</a>: XUnit does not duplicate test result numbers in "errors" and "failures"; "failures" will <strong>always</strong> be zero (<a href="https://urls.greenkeeper.io/mlucool"><strong>@mlucool</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3398" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3398/hovercard">#3398</a>, <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3598" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3598/hovercard">#3598</a>, <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3457" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3457/hovercard">#3457</a>, <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3617" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3617/hovercard">#3617</a>: Fix regression wherein <code>--bail</code> would not execute "after" nor "after each" hooks (<a href="https://urls.greenkeeper.io/juergba"><strong>@juergba</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3580" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3580/hovercard">#3580</a>: Fix potential exception when using XUnit reporter programmatically (<a href="https://urls.greenkeeper.io/Lana-Light"><strong>@Lana-Light</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/1304" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/1304/hovercard">#1304</a>: Do not output color to <code>TERM=dumb</code> (<a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a>)</li>
</ul>
<h2><g-emoji class="g-emoji" alias="book" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4d6.png">📖</g-emoji> Documentation</h2>
<ul>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3525" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3525/hovercard">#3525</a>: Improvements to <code>.github/CONTRIBUTING.md</code> (<a href="https://urls.greenkeeper.io/markowsiak"><strong>@markowsiak</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3466" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3466/hovercard">#3466</a>: Update description of <code>slow</code> option (<a href="https://urls.greenkeeper.io/finfin"><strong>@finfin</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3405" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3405/hovercard">#3405</a>: Remove references to bower installations (<a href="https://urls.greenkeeper.io/goteamtim"><strong>@goteamtim</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3361" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3361/hovercard">#3361</a>: Improvements to <code>--watch</code> docs (<a href="https://urls.greenkeeper.io/benglass"><strong>@benglass</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3136" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3136/hovercard">#3136</a>: Improve docs around globbing and shell expansion (<a href="https://urls.greenkeeper.io/akrawchyk"><strong>@akrawchyk</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/2819" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/2819/hovercard">#2819</a>: Update docs around skips and hooks (<a href="https://urls.greenkeeper.io/bannmoore"><strong>@bannmoore</strong></a>)</li>
<li>Many improvements by <a href="https://urls.greenkeeper.io/outsideris"><strong>@outsideris</strong></a></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3652" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3652/hovercard">#3652</a>: Switch from Jekyll to Eleventy (<a href="https://urls.greenkeeper.io/Munter"><strong>@Munter</strong></a>)</li>
</ul>
<h2><g-emoji class="g-emoji" alias="nut_and_bolt" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f529.png">🔩</g-emoji> Other</h2>
<ul>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3677" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3677/hovercard">#3677</a>: Add error objects for createUnsupportedError and createInvalidExceptionError (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3733" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3733/hovercard">#3733</a>: Removed unnecessary processing in post-processing hook (<a href="https://urls.greenkeeper.io/wanseob"><strong>@wanseob</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3730" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3730/hovercard">#3730</a>: Update nyc to latest version (<a href="https://urls.greenkeeper.io/coreyfarrell"><strong>@coreyfarrell</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3648" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3648/hovercard">#3648</a>, <a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3680" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3680/hovercard">#3680</a>: Fixes to support latest versions of <a href="https://npm.im/unexpected" rel="nofollow">unexpected</a> and <a href="https://npm.im/unexpected-sinon" rel="nofollow">unexpected-sinon</a> (<a href="https://urls.greenkeeper.io/sunesimonsen"><strong>@sunesimonsen</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3638" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3638/hovercard">#3638</a>: Add meta tag to site (<a href="https://urls.greenkeeper.io/MartijnCuppens"><strong>@MartijnCuppens</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3653" data-hovercard-type="pull_request" data-hovercard-url="/mochajs/mocha/pull/3653/hovercard">#3653</a>: Fix parts of test suite failing to run on Windows (<a href="https://urls.greenkeeper.io/boneskull"><strong>@boneskull</strong></a>)</li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/issues/3557" data-hovercard-type="issue" data-hovercard-url="/mochajs/mocha/issues/3557/hovercard">#3557</a>: Use <code>ms</code> userland module instead of hand-rolled solution (<a href="https://urls.greenkeeper.io/gizemkeser"><strong>@gizemkeser</strong></a>)</li>
<li>Many CI fixes and other refactors by <a href="https://urls.greenkeeper.io/plroebuck"><strong>@plroebuck</strong></a></li>
<li>Test refactors by <a href="https://urls.greenkeeper.io/outsideris"><strong>@outsideris</strong></a></li>
</ul>
</details>

<details>
<summary>Commits</summary>
<p>The new version differs by 209 commits ahead by 209, behind by 39.</p>
<ul>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/42303e2acba217af554294b1174ee53b5627cc33"><code>42303e2</code></a> <code>Release v6.0.0</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/a553ca70287f407abd4a82180e4a1155b8730756"><code>a553ca7</code></a> <code>punctuation updates for changelog v6.0.0</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/c7107926b3a546960e841b0339bf4a3b85170c4c"><code>c710792</code></a> <code>grammar updates for changelog v6.0.0</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/9f9293a0db44ce41e1bd9cc38d68e3d7a1010f41"><code>9f9293a</code></a> <code>update changelog for v6.0.0</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/a540eb06f23135db563a6b2bd2e0b3b51583fde7"><code>a540eb0</code></a> <code>remove "projects" section from MAINTAINERS.md [ci skip]</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/52b5c42c3dda8c386735969642843bd1129a4562"><code>52b5c42</code></a> <code>Uppercased JSON reporter name in <code>describe</code> title (#3739)</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/82307fbf9bfa7cd72042facd1d42fb108257100c"><code>82307fb</code></a> <code>Fix <code>.globals</code> to remove falsy values (#3737)</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/56dc28e62f63903632d5fe4169b52cb2cdb5f7ea"><code>56dc28e</code></a> <code>Remove unnecessary post-processing code having no effect; closes #3708 (#3733)</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/16b4281b6e86d93e959a37f830a349c0542d968a"><code>16b4281</code></a> <code>Documentation updates (#3728)</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/5d9d3eb665825ea69435388f5776150f40c844be"><code>5d9d3eb</code></a> <code>Update nyc</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/118c9aeab5b6192d627b0b369e43584ab8f9f0b7"><code>118c9ae</code></a> <code>Refactor out usages of Suite#_onlyTests and Suite#_onlyTests (#3689) (#3707)</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/0dacd1fb0067e40f8567653f828f677022e4fb89"><code>0dacd1f</code></a> <code>Add ability to unload files from <code>require</code> cache (redux) (#3726)</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/66a52f25cafd266ab3cce2db975a560a695ecae9"><code>66a52f2</code></a> <code>update release steps [ci skip]</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/45ae014d0baba97b4b50b37ae526e1b50a9334e9"><code>45ae014</code></a> <code>Refactor <code>lookupFiles</code> and <code>files</code> (#3722)</code></li>
<li><a href="https://urls.greenkeeper.io/mochajs/mocha/commit/94c932095b4b8e8a7a5d9dde93ad2172d95f5ebe"><code>94c9320</code></a> <code>fix --reporter-option to allow comma-separated options; closes #3706</code></li>
</ul>
<p>There are 209 commits in total.</p>
<p>See the <a href="https://urls.greenkeeper.io/mochajs/mocha/compare/5bd33a0ba201d227159759e8ced86756595b0c54...42303e2acba217af554294b1174ee53b5627cc33">full diff</a></p>
</details>

<details>
  <summary>FAQ and help</summary>

  There is a collection of [frequently asked questions](https://greenkeeper.io/faq.html). If those don’t help, you can always [ask the humans behind Greenkeeper](https://github.com/greenkeeperio/greenkeeper/issues/new).
</details>

---


Your [Greenkeeper](https://greenkeeper.io) bot 🌴

goto-bus-stop added a commit to u-wave/react-youtube that referenced this pull request Feb 19, 2019