mirror of
https://github.com/nodejs/node.git
synced 2025-05-02 16:22:29 +00:00

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>
39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
'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);
|