@@ -2285,36 +2285,60 @@ inline Napi::Value FunctionReference::operator ()(
22852285
22862286inline Napi::Value FunctionReference::Call (const std::initializer_list<napi_value>& args) const {
22872287 EscapableHandleScope scope (_env);
2288- return scope.Escape (Value ().Call (args));
2288+ Napi::Value result = Value ().Call (args);
2289+ if (scope.Env ().IsExceptionPending ()) {
2290+ return Value ();
2291+ }
2292+ return scope.Escape (result);
22892293}
22902294
22912295inline Napi::Value FunctionReference::Call (const std::vector<napi_value>& args) const {
22922296 EscapableHandleScope scope (_env);
2293- return scope.Escape (Value ().Call (args));
2297+ Napi::Value result = Value ().Call (args);
2298+ if (scope.Env ().IsExceptionPending ()) {
2299+ return Value ();
2300+ }
2301+ return scope.Escape (result);
22942302}
22952303
22962304inline Napi::Value FunctionReference::Call (
22972305 napi_value recv, const std::initializer_list<napi_value>& args) const {
22982306 EscapableHandleScope scope (_env);
2299- return scope.Escape (Value ().Call (recv, args));
2307+ Napi::Value result = Value ().Call (recv, args);
2308+ if (scope.Env ().IsExceptionPending ()) {
2309+ return Value ();
2310+ }
2311+ return scope.Escape (result);
23002312}
23012313
23022314inline Napi::Value FunctionReference::Call (
23032315 napi_value recv, const std::vector<napi_value>& args) const {
23042316 EscapableHandleScope scope (_env);
2305- return scope.Escape (Value ().Call (recv, args));
2317+ Napi::Value result = Value ().Call (recv, args);
2318+ if (scope.Env ().IsExceptionPending ()) {
2319+ return Value ();
2320+ }
2321+ return scope.Escape (result);
23062322}
23072323
23082324inline Napi::Value FunctionReference::MakeCallback (
23092325 napi_value recv, const std::initializer_list<napi_value>& args) const {
23102326 EscapableHandleScope scope (_env);
2311- return scope.Escape (Value ().MakeCallback (recv, args));
2327+ Napi::Value result = Value ().MakeCallback (recv, args);
2328+ if (scope.Env ().IsExceptionPending ()) {
2329+ return Value ();
2330+ }
2331+ return scope.Escape (result);
23122332}
23132333
23142334inline Napi::Value FunctionReference::MakeCallback (
23152335 napi_value recv, const std::vector<napi_value>& args) const {
23162336 EscapableHandleScope scope (_env);
2317- return scope.Escape (Value ().MakeCallback (recv, args));
2337+ Napi::Value result = Value ().MakeCallback (recv, args);
2338+ if (scope.Env ().IsExceptionPending ()) {
2339+ return Value ();
2340+ }
2341+ return scope.Escape (result);
23182342}
23192343
23202344inline Object FunctionReference::New (const std::initializer_list<napi_value>& args) const {
0 commit comments