summaryrefslogtreecommitdiff
path: root/core/libdeno/api.cc
diff options
context:
space:
mode:
Diffstat (limited to 'core/libdeno/api.cc')
-rw-r--r--core/libdeno/api.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/core/libdeno/api.cc b/core/libdeno/api.cc
index 8a3a56156..30f82b6cc 100644
--- a/core/libdeno/api.cc
+++ b/core/libdeno/api.cc
@@ -153,11 +153,15 @@ void deno_pinned_buf_delete(deno_pinned_buf* buf) {
auto _ = deno::PinnedBuf(buf);
}
-void deno_respond(Deno* d_, void* user_data, deno_buf buf) {
+void deno_respond(Deno* d_, void* user_data, deno_buf buf, int* promise_id) {
auto* d = unwrap(d_);
if (d->current_args_ != nullptr) {
// Synchronous response.
- if (buf.data_ptr != nullptr) {
+ if (promise_id != nullptr) {
+ auto number = v8::Number::New(d->isolate_, *promise_id);
+ d->current_args_->GetReturnValue().Set(number);
+ } else {
+ CHECK_NOT_NULL(buf.data_ptr);
auto ab = deno::ImportBuf(d, buf);
d->current_args_->GetReturnValue().Set(ab);
}