@@ -1157,10 +1157,10 @@ void OnPromiseGC(const FunctionCallbackInfo<Value>& args) {
11571157
11581158 CHECK (args[0 ]->IsObject ());
11591159 Local<Object> promise = args[0 ].As <Object>();
1160+ Local<Value> err = GetPromiseReason (env, promise);
11601161
1161- TrackPromise::New (env->isolate (), promise);
1162+ TrackPromise::New (env->isolate (), promise, err );
11621163
1163- Local<Value> err = GetPromiseReason (env, promise);
11641164 Local<NativeWeakMap> unhandled_reject_map =
11651165 env->promise_unhandled_reject_map ();
11661166 Local<Set> unhandled_reject_keys =
@@ -1639,12 +1639,10 @@ void AppendExceptionLine(Environment* env,
16391639 PrintErrorString (" \n %s" , arrow);
16401640}
16411641
1642- void ReportPromiseRejection (Isolate* isolate, Local<Value> promise ) {
1642+ void ReportPromiseRejection (Isolate* isolate, Local<Value> reason ) {
16431643 Environment* env = Environment::GetCurrent (isolate);
16441644
1645- Local<Value> err = GetPromiseReason (env, promise);
1646-
1647- ReportException (env, err, Exception::CreateMessage (isolate, err));
1645+ ReportException (env, reason, Exception::CreateMessage (isolate, reason));
16481646}
16491647
16501648void ReportException (Environment* env,
@@ -4416,7 +4414,9 @@ static void StartNodeInstance(void* arg) {
44164414 key_iter).ToLocalChecked ();
44174415
44184416 if (unhandled_reject_map->Has (key)) {
4419- ReportPromiseRejection (isolate, unhandled_reject_map->Get (key));
4417+ Local<Value> err = GetPromiseReason (env,
4418+ unhandled_reject_map->Get (key));
4419+ ReportPromiseRejection (isolate, err);
44204420 exit (1 );
44214421 }
44224422 }
0 commit comments