summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock12
-rw-r--r--Cargo.toml2
-rw-r--r--ext/net/ops_tls.rs36
-rw-r--r--ext/node/ops/blocklist.rs2
-rw-r--r--ext/node/ops/crypto/x509.rs2
-rw-r--r--ext/node/ops/vm.rs2
-rw-r--r--ext/node/ops/vm_internal.rs5
-rw-r--r--ext/node/ops/zlib/mod.rs2
-rw-r--r--ext/tls/tls_key.rs4
9 files changed, 36 insertions, 31 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 5f93eaf3f..3c29dbdaf 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1281,9 +1281,9 @@ dependencies = [
[[package]]
name = "deno_core"
-version = "0.290.0"
+version = "0.291.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48ba7176428b2dd879e8bdb38075c0e355f7e6b6280d0d11591e14c2e092edc5"
+checksum = "ec3d6bd1d8fc2858208a55aa492d43d92de7d42b9f434f0a7ed251befaf27a3c"
dependencies = [
"anyhow",
"bincode",
@@ -1738,9 +1738,9 @@ dependencies = [
[[package]]
name = "deno_ops"
-version = "0.166.0"
+version = "0.167.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b4e924b7703ff1ec71b38d0c2b09efcd7ff19a2a8ce5be11b712c22ea9fd1ba"
+checksum = "b573e543149e9a37cdf9cf37b88d778215a8eff7da8211b94f84d3d155cfe3f5"
dependencies = [
"proc-macro-rules",
"proc-macro2",
@@ -5745,9 +5745,9 @@ dependencies = [
[[package]]
name = "serde_v8"
-version = "0.199.0"
+version = "0.200.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b467186012b61a4754390c7a4304db281ee91f5686210584ea0c09894497d27f"
+checksum = "579057484ec81c031826ca53bc5b4ab5d1273fcd5cc4c8057c0f0cd1e57dfa65"
dependencies = [
"num-bigint",
"serde",
diff --git a/Cargo.toml b/Cargo.toml
index b80e680dc..55c9f1a4f 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -44,7 +44,7 @@ repository = "https://github.com/denoland/deno"
[workspace.dependencies]
deno_ast = { version = "=0.39.2", features = ["transpiling"] }
-deno_core = { version = "0.290.0" }
+deno_core = { version = "0.291.0" }
deno_bench_util = { version = "0.152.0", path = "./bench_util" }
deno_lockfile = "0.20.0"
diff --git a/ext/net/ops_tls.rs b/ext/net/ops_tls.rs
index c52985908..adfa8224c 100644
--- a/ext/net/ops_tls.rs
+++ b/ext/net/ops_tls.rs
@@ -195,41 +195,34 @@ pub struct StartTlsArgs {
}
#[op2]
-pub fn op_tls_key_null<'s>(
- scope: &mut v8::HandleScope<'s>,
-) -> Result<v8::Local<'s, v8::Object>, AnyError> {
- Ok(deno_core::cppgc::make_cppgc_object(
- scope,
- TlsKeysHolder::from(TlsKeys::Null),
- ))
+#[cppgc]
+pub fn op_tls_key_null() -> TlsKeysHolder {
+ TlsKeysHolder::from(TlsKeys::Null)
}
#[op2]
-pub fn op_tls_key_static<'s>(
- scope: &mut v8::HandleScope<'s>,
- #[string] cert: String,
- #[string] key: String,
-) -> Result<v8::Local<'s, v8::Object>, AnyError> {
+#[cppgc]
+pub fn op_tls_key_static(
+ #[string] cert: &str,
+ #[string] key: &str,
+) -> Result<TlsKeysHolder, AnyError> {
let cert = load_certs(&mut BufReader::new(cert.as_bytes()))?;
let key = load_private_keys(key.as_bytes())?
.into_iter()
.next()
.unwrap();
- Ok(deno_core::cppgc::make_cppgc_object(
- scope,
- TlsKeysHolder::from(TlsKeys::Static(TlsKey(cert, key))),
- ))
+ Ok(TlsKeysHolder::from(TlsKeys::Static(TlsKey(cert, key))))
}
/// Legacy op -- will be removed in Deno 2.0.
#[op2]
-pub fn op_tls_key_static_from_file<'s, NP>(
+#[cppgc]
+pub fn op_tls_key_static_from_file<NP>(
state: &mut OpState,
- scope: &mut v8::HandleScope<'s>,
#[string] api: String,
#[string] cert_file: String,
#[string] key_file: String,
-) -> Result<v8::Local<'s, v8::Object>, AnyError>
+) -> Result<TlsKeysHolder, AnyError>
where
NP: NetPermissions + 'static,
{
@@ -244,10 +237,7 @@ where
.into_iter()
.next()
.unwrap();
- Ok(deno_core::cppgc::make_cppgc_object(
- scope,
- TlsKeysHolder::from(TlsKeys::Static(TlsKey(cert, key))),
- ))
+ Ok(TlsKeysHolder::from(TlsKeys::Static(TlsKey(cert, key))))
}
#[op2]
diff --git a/ext/node/ops/blocklist.rs b/ext/node/ops/blocklist.rs
index ce32c14ba..b853a5723 100644
--- a/ext/node/ops/blocklist.rs
+++ b/ext/node/ops/blocklist.rs
@@ -22,6 +22,8 @@ pub struct BlockListResource {
blocklist: RefCell<BlockList>,
}
+impl deno_core::GcResource for BlockListResource {}
+
#[derive(Serialize)]
struct SocketAddressSerialization(String, String);
diff --git a/ext/node/ops/crypto/x509.rs b/ext/node/ops/crypto/x509.rs
index 8ae7c314d..517a3a943 100644
--- a/ext/node/ops/crypto/x509.rs
+++ b/ext/node/ops/crypto/x509.rs
@@ -19,6 +19,8 @@ pub(crate) struct Certificate {
cert: X509Certificate<'static>,
}
+impl deno_core::GcResource for Certificate {}
+
impl Certificate {
fn fingerprint<D: Digest>(&self) -> Option<String> {
self.pem.as_ref().map(|pem| {
diff --git a/ext/node/ops/vm.rs b/ext/node/ops/vm.rs
index 7b12b72b7..2614c4f73 100644
--- a/ext/node/ops/vm.rs
+++ b/ext/node/ops/vm.rs
@@ -29,6 +29,8 @@ pub struct Script {
inner: i::ContextifyScript,
}
+impl deno_core::GcResource for Script {}
+
impl Script {
fn new(
scope: &mut v8::HandleScope,
diff --git a/ext/node/ops/vm_internal.rs b/ext/node/ops/vm_internal.rs
index 4af182595..0ac714c9f 100644
--- a/ext/node/ops/vm_internal.rs
+++ b/ext/node/ops/vm_internal.rs
@@ -64,6 +64,8 @@ pub struct ContextifyContext {
sandbox: v8::Global<v8::Object>,
}
+impl deno_core::GcResource for ContextifyContext {}
+
impl ContextifyContext {
pub fn attach(
scope: &mut v8::HandleScope,
@@ -125,7 +127,7 @@ impl ContextifyContext {
}
pub fn from_sandbox_obj<'a>(
- scope: &mut v8::HandleScope,
+ scope: &mut v8::HandleScope<'a>,
sandbox_obj: v8::Local<v8::Object>,
) -> Option<&'a Self> {
let private_str =
@@ -136,6 +138,7 @@ impl ContextifyContext {
.get_private(scope, private_symbol)
.and_then(|wrapper| {
deno_core::cppgc::try_unwrap_cppgc_object::<Self>(wrapper)
+ .map(|s| s as _)
})
}
diff --git a/ext/node/ops/zlib/mod.rs b/ext/node/ops/zlib/mod.rs
index 7f2871a16..9e030176a 100644
--- a/ext/node/ops/zlib/mod.rs
+++ b/ext/node/ops/zlib/mod.rs
@@ -233,6 +233,8 @@ struct Zlib {
inner: RefCell<Option<ZlibInner>>,
}
+impl deno_core::GcResource for Zlib {}
+
impl deno_core::Resource for Zlib {
fn name(&self) -> Cow<str> {
"zlib".into()
diff --git a/ext/tls/tls_key.rs b/ext/tls/tls_key.rs
index 18064a91a..66fea3a69 100644
--- a/ext/tls/tls_key.rs
+++ b/ext/tls/tls_key.rs
@@ -50,6 +50,8 @@ pub enum TlsKeys {
pub struct TlsKeysHolder(RefCell<TlsKeys>);
+impl deno_core::GcResource for TlsKeysHolder {}
+
impl TlsKeysHolder {
pub fn take(&self) -> TlsKeys {
std::mem::take(&mut *self.0.borrow_mut())
@@ -222,6 +224,8 @@ pub struct TlsKeyLookup {
RefCell<HashMap<String, broadcast::Sender<Result<TlsKey, ErrorType>>>>,
}
+impl deno_core::GcResource for TlsKeyLookup {}
+
impl TlsKeyLookup {
/// Multiple `poll` calls are safe, but this method is not starvation-safe. Generally
/// only one `poll`er should be active at any time.