aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/napi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/bindings/napi.cpp')
-rw-r--r--src/bun.js/bindings/napi.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/bun.js/bindings/napi.cpp b/src/bun.js/bindings/napi.cpp
index d42ee9da1..574224939 100644
--- a/src/bun.js/bindings/napi.cpp
+++ b/src/bun.js/bindings/napi.cpp
@@ -967,6 +967,21 @@ extern "C" napi_status napi_get_and_clear_last_exception(napi_env env,
return napi_ok;
}
+extern "C" napi_status napi_fatal_exception(napi_env env,
+ napi_value err)
+{
+ auto globalObject = toJS(env);
+ JSC::JSValue value = JSC::JSValue::decode(reinterpret_cast<JSC::EncodedJSValue>(err));
+ JSC::JSObject* obj = value.getObject();
+ if (UNLIKELY(obj == nullptr || !obj->isErrorInstance())) {
+ return napi_invalid_arg;
+ }
+
+ Bun__reportUnhandledError(globalObject, JSValue::encode(value));
+
+ return napi_ok;
+}
+
extern "C" napi_status napi_throw(napi_env env, napi_value error)
{
auto globalObject = toJS(env);