@@ -59,6 +59,15 @@ using v8::ReadOnly;
5959using v8::String;
6060using v8::Value;
6161
62+ void GetErrMessage (const FunctionCallbackInfo<Value>& args) {
63+ Environment* env = Environment::GetCurrent (args);
64+ int err = args[0 ].As <v8::Int32>()->Value ();
65+ CHECK_LT (err, 0 );
66+ char message[50 ];
67+ uv_strerror_r (err, message, sizeof (message));
68+ args.GetReturnValue ().Set (OneByteString (env->isolate (), message));
69+ }
70+
6271void ErrName (const FunctionCallbackInfo<Value>& args) {
6372 Environment* env = Environment::GetCurrent (args);
6473 if (env->options ()->pending_deprecation && env->EmitErrNameWarning ()) {
@@ -70,8 +79,7 @@ void ErrName(const FunctionCallbackInfo<Value>& args) {
7079 " DEP0119" ).IsNothing ())
7180 return ;
7281 }
73- int err;
74- if (!args[0 ]->Int32Value (env->context ()).To (&err)) return ;
82+ int err = args[0 ].As <v8::Int32>()->Value ();
7583 CHECK_LT (err, 0 );
7684 char name[50 ];
7785 uv_err_name_r (err, name, sizeof (name));
@@ -128,11 +136,13 @@ void Initialize(Local<Object> target,
128136 }
129137
130138 SetMethod (context, target, " getErrorMap" , GetErrMap);
139+ SetMethod (context, target, " getErrorMessage" , GetErrMessage);
131140}
132141
133142void RegisterExternalReferences (ExternalReferenceRegistry* registry) {
134143 registry->Register (ErrName);
135144 registry->Register (GetErrMap);
145+ registry->Register (GetErrMessage);
136146}
137147} // namespace uv
138148} // namespace node
0 commit comments