src: refactor and harden `ProcessEmitWarning()`
- Handle exceptions when getting
process.emitWarning
or when calling it properly - Add
Maybe<bool>
to the return type, like the V8 API uses it to indicate failure conditions - Update call sites to account for that and clean up/return to JS when encountering an error
- Add an internal
ProcessEmitDeprecationWarning()
sibling for use in https://github.com/nodejs/node/pull/17417, with common code extracted to a helper function - Allow the warning to contain non-Latin-1 characters. Since the message will usually be a template string containing data passed from the user, this is the right thing to do.
- Add tests for the failure modes (except string creation failures) and UTF-8 warning messages.
Refs: https://github.com/nodejs/node/pull/17417
Checklist
-
make -j4 test
(UNIX), orvcbuild test
(Windows) passes -
tests and/or benchmarks are included -
commit message follows commit guidelines
Affected core subsystem(s)
src