blob: f13e6d29e2f0879215a63a444ee42d1c22df076e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
// Flags: --unhandled-rejections=warn
'use strict';
const common = require('../common');
const assert = require('assert');
// Verify that ignoring unhandled rejection works fine and that no warning is
// logged.
new Promise(() => {
throw new Error('One');
});
Promise.reject('test');
function lookForMeInStackTrace() {
Promise.reject(new class ErrorLike {
constructor() {
Error.captureStackTrace(this);
this.message = 'ErrorLike';
}
}());
}
lookForMeInStackTrace();
// Unhandled rejections trigger two warning per rejection. One is the rejection
// reason and the other is a note where this warning is coming from.
process.on('warning', common.mustCall((reason) => {
if (reason.message.includes('ErrorLike')) {
assert.match(reason.stack, /lookForMeInStackTrace/);
}
}, 6));
process.on('uncaughtException', common.mustNotCall('uncaughtException'));
process.on('rejectionHandled', common.mustCall(3));
process.on('unhandledRejection', (reason, promise) => {
// Handle promises but still warn!
promise.catch(() => {});
});
setTimeout(common.mustCall(), 2);
|