From 6257b4044a181fcaa462aba6c361e3c8fdcad2c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Tue, 22 Oct 2019 16:49:58 +0200 Subject: core: gracefully handle bad op id (#3131) --- core/libdeno/api.cc | 6 ++++++ core/libdeno/deno.h | 2 ++ 2 files changed, 8 insertions(+) (limited to 'core/libdeno') 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); -- cgit v1.2.3