src: add error codes to errors thrown in node_i18n.cc

PR-URL: https://github.com/nodejs/node/pull/28221
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
This commit is contained in:
Yaniv Friedensohn 2019-06-14 13:17:40 +03:00 committed by Rich Trott
parent 7334aaf2ea
commit e6edd66c10
2 changed files with 10 additions and 6 deletions

View File

@ -655,7 +655,7 @@ static void ToUnicode(const FunctionCallbackInfo<Value>& args) {
int32_t len = ToUnicode(&buf, *val, val.length());
if (len < 0) {
return env->ThrowError("Cannot convert name to Unicode");
return THROW_ERR_INVALID_ARG_VALUE(env, "Cannot convert name to Unicode");
}
args.GetReturnValue().Set(
@ -678,7 +678,7 @@ static void ToASCII(const FunctionCallbackInfo<Value>& args) {
int32_t len = ToASCII(&buf, *val, val.length(), mode);
if (len < 0) {
return env->ThrowError("Cannot convert name to ASCII");
return THROW_ERR_INVALID_ARG_VALUE(env, "Cannot convert name to ASCII");
}
args.GetReturnValue().Set(

View File

@ -33,8 +33,6 @@ const wptToASCIITests = require(
}
{
const errMessage = /^Error: Cannot convert name to ASCII$/;
for (const [i, test] of wptToASCIITests.entries()) {
if (typeof test === 'string')
continue; // skip comments
@ -43,8 +41,14 @@ const wptToASCIITests = require(
if (comment)
caseComment += ` (${comment})`;
if (output === null) {
assert.throws(() => icu.toASCII(input),
errMessage, `ToASCII ${caseComment}`);
common.expectsError(
() => icu.toASCII(input),
{
code: 'ERR_INVALID_ARG_VALUE',
type: TypeError,
message: 'Cannot convert name to ASCII'
}
);
icu.toASCII(input, true); // Should not throw.
} else {
assert.strictEqual(icu.toASCII(input), output, `ToASCII ${caseComment}`);