mirror of https://github.com/lukechilds/node.git
Browse Source
PR-URL: https://github.com/nodejs/node/pull/13784 Fixes: https://github.com/nodejs/node/issues/13771 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>canary-base
3 changed files with 56 additions and 4 deletions
@ -0,0 +1,38 @@ |
|||
'use strict'; |
|||
const common = require('../common'); |
|||
|
|||
const expectedDeprecationWarning = 'Unhandled promise rejections are ' + |
|||
'deprecated. In the future, promise ' + |
|||
'rejections that are not handled will ' + |
|||
'terminate the Node.js process with a ' + |
|||
'non-zero exit code.'; |
|||
const expectedPromiseWarning = 'Unhandled promise rejection (rejection id: ' + |
|||
'1): [object Object]'; |
|||
|
|||
function throwErr() { |
|||
throw new Error('Error from proxy'); |
|||
} |
|||
|
|||
const thorny = new Proxy({}, { |
|||
getPrototypeOf: throwErr, |
|||
setPrototypeOf: throwErr, |
|||
isExtensible: throwErr, |
|||
preventExtensions: throwErr, |
|||
getOwnPropertyDescriptor: throwErr, |
|||
defineProperty: throwErr, |
|||
has: throwErr, |
|||
get: throwErr, |
|||
set: throwErr, |
|||
deleteProperty: throwErr, |
|||
ownKeys: throwErr, |
|||
apply: throwErr, |
|||
construct: throwErr |
|||
}); |
|||
|
|||
common.expectWarning({ |
|||
DeprecationWarning: expectedDeprecationWarning, |
|||
UnhandledPromiseRejectionWarning: expectedPromiseWarning, |
|||
}); |
|||
|
|||
// ensure this doesn't crash
|
|||
Promise.reject(thorny); |
Loading…
Reference in new issue