summaryrefslogtreecommitdiff
path: root/runtime/ops
diff options
context:
space:
mode:
authorsnek <snek@deno.com>2024-08-02 08:14:35 -0700
committerGitHub <noreply@github.com>2024-08-02 08:14:35 -0700
commit3a1a1cc030fb7fc90d51ee27162466d6ac924926 (patch)
treeb23cc115bbe39d25eb8ff7dc410700b7f42cf46d /runtime/ops
parentb82a2f114c7c936bf4398669453513ace478cb1d (diff)
feat: async context (#24402)
We are switching to ContinuationPreservedEmbedderData. This allows adding async context tracking to the various async operations that deno provides. Fixes: https://github.com/denoland/deno/issues/7010 Fixes: https://github.com/denoland/deno/issues/22886 Fixes: https://github.com/denoland/deno/issues/24368
Diffstat (limited to 'runtime/ops')
-rw-r--r--runtime/ops/runtime.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/runtime/ops/runtime.rs b/runtime/ops/runtime.rs
index 306e6ce8f..b52a23f30 100644
--- a/runtime/ops/runtime.rs
+++ b/runtime/ops/runtime.rs
@@ -2,13 +2,14 @@
use deno_core::error::AnyError;
use deno_core::op2;
+use deno_core::v8;
use deno_core::ModuleSpecifier;
use deno_core::OpState;
use deno_permissions::PermissionsContainer;
deno_core::extension!(
deno_runtime,
- ops = [op_main_module, op_ppid],
+ ops = [op_main_module, op_ppid, op_get_extras_binding_object],
options = { main_module: ModuleSpecifier },
state = |state, options| {
state.put::<ModuleSpecifier>(options.main_module);
@@ -94,3 +95,11 @@ pub fn op_ppid() -> i64 {
parent_id().into()
}
}
+
+#[op2]
+pub fn op_get_extras_binding_object<'a>(
+ scope: &mut v8::HandleScope<'a>,
+) -> v8::Local<'a, v8::Value> {
+ let context = scope.get_current_context();
+ context.get_extras_binding_object(scope).into()
+}