summaryrefslogtreecommitdiff
path: root/core/libdeno/exceptions.cc
diff options
context:
space:
mode:
authorBert Belder <bertbelder@gmail.com>2019-07-23 21:12:49 +0200
committerBert Belder <bertbelder@gmail.com>2019-07-24 01:57:32 +0200
commit1406961d2b32b6ff9d842e13d2add124b7e3119d (patch)
tree227956a5c1d83c6eed89f89d8158518484906a0e /core/libdeno/exceptions.cc
parente49d1e16ca2fca45e959c1add9b5a1d6866dbb90 (diff)
Add error handling for dynamic imports to libdeno (#2678)
Diffstat (limited to 'core/libdeno/exceptions.cc')
-rw-r--r--core/libdeno/exceptions.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/core/libdeno/exceptions.cc b/core/libdeno/exceptions.cc
index 7484e4eb4..5f4d578b6 100644
--- a/core/libdeno/exceptions.cc
+++ b/core/libdeno/exceptions.cc
@@ -200,6 +200,7 @@ void HandleException(v8::Local<v8::Context> context,
std::string json_str = EncodeExceptionAsJSON(context, exception);
CHECK_NOT_NULL(d);
d->last_exception_ = json_str;
+ d->last_exception_handle_.Reset(isolate, exception);
}
void HandleExceptionMessage(v8::Local<v8::Context> context,
@@ -218,6 +219,15 @@ void HandleExceptionMessage(v8::Local<v8::Context> context,
d->last_exception_ = json_str;
}
+void ClearException(v8::Local<v8::Context> context) {
+ v8::Isolate* isolate = context->GetIsolate();
+ DenoIsolate* d = DenoIsolate::FromIsolate(isolate);
+ CHECK_NOT_NULL(d);
+
+ d->last_exception_.clear();
+ d->last_exception_handle_.Reset();
+}
+
void ThrowInvalidArgument(v8::Isolate* isolate) {
isolate->ThrowException(v8::Exception::TypeError(v8_str("Invalid Argument")));
}