@@ -1082,17 +1082,26 @@ static MaybeLocal<Value> GetX509NameObject(Environment* env, X509* cert) {
10821082 // change here without breaking things. Note that this creates nested data
10831083 // structures, yet still does not allow representing Distinguished Names
10841084 // accurately.
1085- if (result->HasOwnProperty (env->context (), v8_name).ToChecked ()) {
1086- Local<Value> accum =
1087- result->Get (env->context (), v8_name).ToLocalChecked ();
1085+ bool multiple;
1086+ if (!result->HasOwnProperty (env->context (), v8_name).To (&multiple)) {
1087+ return MaybeLocal<Value>();
1088+ } else if (multiple) {
1089+ Local<Value> accum;
1090+ if (!result->Get (env->context (), v8_name).ToLocal (&accum)) {
1091+ return MaybeLocal<Value>();
1092+ }
10881093 if (!accum->IsArray ()) {
10891094 accum = Array::New (env->isolate (), &accum, 1 );
1090- result->Set (env->context (), v8_name, accum).Check ();
1095+ if (result->Set (env->context (), v8_name, accum).IsNothing ()) {
1096+ return MaybeLocal<Value>();
1097+ }
10911098 }
10921099 Local<Array> array = accum.As <Array>();
1093- array->Set (env->context (), array->Length (), v8_value).Check ();
1094- } else {
1095- result->Set (env->context (), v8_name, v8_value).Check ();
1100+ if (array->Set (env->context (), array->Length (), v8_value).IsNothing ()) {
1101+ return MaybeLocal<Value>();
1102+ }
1103+ } else if (result->Set (env->context (), v8_name, v8_value).IsNothing ()) {
1104+ return MaybeLocal<Value>();
10961105 }
10971106 }
10981107
0 commit comments