@@ -204,16 +204,16 @@ PromiseWrap* PromiseWrap::New(Environment* env,
204204 Local<Promise> promise,
205205 PromiseWrap* parent_wrap,
206206 bool silent) {
207- Local<Object> object = env-> promise_wrap_template ()
208- -> NewInstance (env->context ()).ToLocalChecked ();
209- object-> SetInternalField (PromiseWrap:: kPromiseField , promise) ;
210- object ->SetInternalField (PromiseWrap::kIsChainedPromiseField ,
211- parent_wrap != nullptr ?
212- v8::True (env->isolate ()) :
213- v8::False (env->isolate ()));
207+ Local<Object> obj;
208+ if (!env-> promise_wrap_template ()-> NewInstance (env->context ()).ToLocal (&obj))
209+ return nullptr ;
210+ obj ->SetInternalField (PromiseWrap::kPromiseField , promise);
211+ obj-> SetInternalField (PromiseWrap:: kIsChainedPromiseField ,
212+ parent_wrap != nullptr ? v8::True (env->isolate ())
213+ : v8::False (env->isolate ()));
214214 CHECK_EQ (promise->GetAlignedPointerFromInternalField (0 ), nullptr );
215- promise->SetInternalField (0 , object );
216- return new PromiseWrap (env, object , silent);
215+ promise->SetInternalField (0 , obj );
216+ return new PromiseWrap (env, obj , silent);
217217}
218218
219219void PromiseWrap::GetPromise (Local<String> property,
@@ -251,6 +251,7 @@ static void PromiseHook(PromiseHookType type, Local<Promise> promise,
251251 PromiseWrap* parent_wrap = extractPromiseWrap (parent_promise);
252252 if (parent_wrap == nullptr ) {
253253 parent_wrap = PromiseWrap::New (env, parent_promise, nullptr , true );
254+ if (parent_wrap == nullptr ) return ;
254255 }
255256
256257 AsyncHooks::DefaultTriggerAsyncIdScope trigger_scope (parent_wrap);
@@ -260,7 +261,8 @@ static void PromiseHook(PromiseHookType type, Local<Promise> promise,
260261 }
261262 }
262263
263- CHECK_NOT_NULL (wrap);
264+ if (wrap == nullptr ) return ;
265+
264266 if (type == PromiseHookType::kBefore ) {
265267 env->async_hooks ()->push_async_ids (
266268 wrap->get_async_id (), wrap->get_trigger_async_id ());
0 commit comments