summaryrefslogtreecommitdiff
path: root/core/libdeno
diff options
context:
space:
mode:
Diffstat (limited to 'core/libdeno')
-rw-r--r--core/libdeno/api.cc6
-rw-r--r--core/libdeno/deno.h2
2 files changed, 8 insertions, 0 deletions
diff --git a/core/libdeno/api.cc b/core/libdeno/api.cc
index 061638cb5..332a1c555 100644
--- a/core/libdeno/api.cc
+++ b/core/libdeno/api.cc
@@ -160,6 +160,12 @@ void deno_pinned_buf_delete(deno_pinned_buf* buf) {
auto _ = deno::PinnedBuf(buf);
}
+void deno_throw_exception(Deno* d_, const char* text) {
+ auto* d = unwrap(d_);
+ auto* isolate = d->isolate_;
+ isolate->ThrowException(deno::v8_str(text));
+}
+
void deno_respond(Deno* d_, void* user_data, deno_op_id op_id, deno_buf buf) {
auto* d = unwrap(d_);
if (d->current_args_ != nullptr) {
diff --git a/core/libdeno/deno.h b/core/libdeno/deno.h
index 0bdd31f50..946978e3b 100644
--- a/core/libdeno/deno.h
+++ b/core/libdeno/deno.h
@@ -110,6 +110,8 @@ void deno_execute(Deno* d, void* user_data, const char* js_filename,
// If a JS exception was encountered, deno_last_exception() will be non-NULL.
void deno_respond(Deno* d, void* user_data, deno_op_id op_id, deno_buf buf);
+void deno_throw_exception(Deno* d, const char* text);
+
// consumes zero_copy
void deno_pinned_buf_delete(deno_pinned_buf* buf);