@@ -153,6 +153,27 @@ void ThrowRangeError(const CallbackInfo& info) {
153153 throw RangeError::New (info.Env (), message);
154154}
155155
156+ #if NAPI_VERSION > 8
157+ void ThrowSyntaxErrorCStr (const CallbackInfo& info) {
158+ std::string message = info[0 ].As <String>().Utf8Value ();
159+ ReleaseAndWaitForChildProcess (info, 1 );
160+ throw SyntaxError::New (info.Env (), message.c_str ());
161+ }
162+
163+ void ThrowSyntaxErrorCtor (const CallbackInfo& info) {
164+ Napi::Value js_range_err = info[0 ];
165+ ReleaseAndWaitForChildProcess (info, 1 );
166+ throw Napi::SyntaxError (info.Env (), js_range_err);
167+ }
168+
169+ void ThrowSyntaxError (const CallbackInfo& info) {
170+ std::string message = info[0 ].As <String>().Utf8Value ();
171+
172+ ReleaseAndWaitForChildProcess (info, 1 );
173+ throw SyntaxError::New (info.Env (), message);
174+ }
175+ #endif // NAPI_VERSION > 8
176+
156177Value CatchError (const CallbackInfo& info) {
157178 Function thrower = info[0 ].As <Function>();
158179 try {
@@ -255,6 +276,27 @@ void ThrowEmptyRangeError(const CallbackInfo& info) {
255276 RangeError ().ThrowAsJavaScriptException ();
256277}
257278
279+ #if NAPI_VERSION > 8
280+ void ThrowSyntaxError (const CallbackInfo& info) {
281+ std::string message = info[0 ].As <String>().Utf8Value ();
282+
283+ ReleaseAndWaitForChildProcess (info, 1 );
284+ SyntaxError::New (info.Env (), message).ThrowAsJavaScriptException ();
285+ }
286+
287+ void ThrowSyntaxErrorCtor (const CallbackInfo& info) {
288+ Napi::Value js_range_err = info[0 ];
289+ ReleaseAndWaitForChildProcess (info, 1 );
290+ SyntaxError (info.Env (), js_range_err).ThrowAsJavaScriptException ();
291+ }
292+
293+ void ThrowSyntaxErrorCStr (const CallbackInfo& info) {
294+ std::string message = info[0 ].As <String>().Utf8Value ();
295+ ReleaseAndWaitForChildProcess (info, 1 );
296+ SyntaxError::New (info.Env (), message.c_str ()).ThrowAsJavaScriptException ();
297+ }
298+ #endif // NAPI_VERSION > 8
299+
258300Value CatchError (const CallbackInfo& info) {
259301 Function thrower = info[0 ].As <Function>();
260302 thrower ({});
@@ -372,6 +414,11 @@ Object InitError(Env env) {
372414 exports[" throwRangeErrorCtor" ] = Function::New (env, ThrowRangeErrorCtor);
373415 exports[" throwRangeErrorCStr" ] = Function::New (env, ThrowRangeErrorCStr);
374416 exports[" throwEmptyRangeError" ] = Function::New (env, ThrowEmptyRangeError);
417+ #if NAPI_VERSION > 8
418+ exports[" throwSyntaxError" ] = Function::New (env, ThrowSyntaxError);
419+ exports[" throwSyntaxErrorCtor" ] = Function::New (env, ThrowSyntaxErrorCtor);
420+ exports[" throwSyntaxErrorCStr" ] = Function::New (env, ThrowSyntaxErrorCStr);
421+ #endif // NAPI_VERSION > 8
375422 exports[" catchError" ] = Function::New (env, CatchError);
376423 exports[" catchErrorMessage" ] = Function::New (env, CatchErrorMessage);
377424 exports[" doNotCatch" ] = Function::New (env, DoNotCatch);
0 commit comments