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