diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/javascript/jsc/bindings/napi.cpp | 28 | ||||
-rw-r--r-- | src/symbols.txt | 3 |
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 |