diff --git a/src/async_wrap-inl.h b/src/async_wrap-inl.h index e3e48666e4fbd6..9f46e2fe26c34b 100644 --- a/src/async_wrap-inl.h +++ b/src/async_wrap-inl.h @@ -26,6 +26,7 @@ #include "async_wrap.h" #include "base_object-inl.h" +#include "node_errors.h" #include "node_internals.h" namespace node { @@ -74,9 +75,8 @@ inline v8::MaybeLocal AsyncWrap::MakeCallback( if (!object()->Get(env()->context(), symbol).ToLocal(&cb_v)) return v8::MaybeLocal(); if (!cb_v->IsFunction()) { - // TODO(addaleax): We should throw an error here to fulfill the - // `MaybeLocal<>` API contract. - return v8::MaybeLocal(); + v8::Isolate* isolate = env()->isolate(); + return Undefined(isolate); } return MakeCallback(cb_v.As(), argc, argv); }