aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-05-09 22:39:22 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-05-09 22:39:22 -0700
commit1cb870be162493ebc24c709cb177912c344776e5 (patch)
treeeb22c05b68915bed3bd3d6f8cbb6904494a67445 /src
parent35232fa42248d98c7107e3ae45d6a67c293578c7 (diff)
downloadbun-1cb870be162493ebc24c709cb177912c344776e5.tar.gz
bun-1cb870be162493ebc24c709cb177912c344776e5.tar.zst
bun-1cb870be162493ebc24c709cb177912c344776e5.zip
few more napi functions
Diffstat (limited to 'src')
-rw-r--r--src/javascript/jsc/bindings/napi.cpp28
-rw-r--r--src/symbols.txt3
2 files changed, 30 insertions, 1 deletions
diff --git a/src/javascript/jsc/bindings/napi.cpp b/src/javascript/jsc/bindings/napi.cpp
index b387daf6b..9a8a03405 100644
--- a/src/javascript/jsc/bindings/napi.cpp
+++ b/src/javascript/jsc/bindings/napi.cpp
@@ -749,9 +749,35 @@ extern "C" napi_status napi_detach_arraybuffer(napi_env env,
return napi_ok;
}
+extern "C" napi_status napi_adjust_external_memory(napi_env env,
+ int64_t change_in_bytes,
+ int64_t* adjusted_value)
+{
+ if (change_in_bytes > 0) {
+ toJS(env)->vm().heap.deprecatedReportExtraMemory(change_in_bytes);
+ }
+ *adjusted_value = toJS(env)->vm().heap.extraMemorySize();
+ return napi_ok;
+}
+
+extern "C" napi_status napi_is_exception_pending(napi_env env, bool* result)
+{
+ auto globalObject = toJS(env);
+ *result = globalObject->vm().exceptionForInspection() != nullptr;
+ return napi_ok;
+}
+extern "C" napi_status napi_get_and_clear_last_exception(napi_env env,
+ napi_value* result)
+{
+ auto globalObject = toJS(env);
+ *result = toNapi(JSC::JSValue(globalObject->vm().lastException()));
+ globalObject->vm().clearLastException();
+ return napi_ok;
+}
+
extern "C" napi_status napi_throw(napi_env env, napi_value error)
{
- Zig::GlobalObject* globalObject = toJS(env);
+ auto globalObject = toJS(env);
JSC::VM& vm = globalObject->vm();
auto throwScope = DECLARE_THROW_SCOPE(vm);
diff --git a/src/symbols.txt b/src/symbols.txt
index 47588af88..e3c47f531 100644
--- a/src/symbols.txt
+++ b/src/symbols.txt
@@ -121,3 +121,6 @@ _napi_reference_unref
_napi_reference_ref
_napi_get_reference_value
_napi_delete_reference
+_napi_adjust_external_memory
+_napi_is_exception_pending
+_napi_get_and_clear_last_exception