refactor: rename IS_PRIMOP -> PRIMOP_METADATA

This commit is contained in:
2026-01-04 17:32:38 +08:00
parent 45d777a157
commit 89b68d5fe9
6 changed files with 35 additions and 32 deletions

View File

@@ -206,17 +206,17 @@ fn op_resolve_path(#[string] path: String) -> std::result::Result<String, NixErr
struct RuntimeContext<'a, 'b> {
scope: &'a v8::PinnedRef<'a, v8::HandleScope<'b>>,
is_thunk_symbol: Option<v8::Local<'a, v8::Symbol>>,
is_primop_symbol: Option<v8::Local<'a, v8::Symbol>>,
primop_metadata_symbol: Option<v8::Local<'a, v8::Symbol>>,
}
impl<'a, 'b> RuntimeContext<'a, 'b> {
fn new(scope: &'a v8::PinnedRef<'a, v8::HandleScope<'b>>) -> Self {
let is_thunk_symbol = Self::get_is_thunk_symbol(scope);
let is_primop_symbol = Self::get_is_primop_symbol(scope);
let primop_metadata_symbol = Self::get_primop_metadata_symbol(scope);
Self {
scope,
is_thunk_symbol,
is_primop_symbol,
primop_metadata_symbol,
}
}
@@ -237,18 +237,18 @@ impl<'a, 'b> RuntimeContext<'a, 'b> {
}
}
fn get_is_primop_symbol(
fn get_primop_metadata_symbol(
scope: &v8::PinnedRef<'a, v8::HandleScope<'b>>,
) -> Option<v8::Local<'a, v8::Symbol>> {
let global = scope.get_current_context().global(scope);
let nix_key = v8::String::new(scope, "Nix")?;
let nix_obj = global.get(scope, nix_key.into())?.to_object(scope)?;
let is_primop_sym_key = v8::String::new(scope, "IS_PRIMOP")?;
let is_primop_sym = nix_obj.get(scope, is_primop_sym_key.into())?;
let primop_metadata_sym_key = v8::String::new(scope, "PRIMOP_METADATA")?;
let primop_metadata_sym = nix_obj.get(scope, primop_metadata_sym_key.into())?;
if is_primop_sym.is_symbol() {
is_primop_sym.try_cast().ok()
if primop_metadata_sym.is_symbol() {
primop_metadata_sym.try_cast().ok()
} else {
None
}
@@ -382,13 +382,13 @@ fn primop_name<'a, 'b>(
return None;
}
// Use cached IS_PRIMOP symbol from context
let is_primop_sym = ctx.is_primop_symbol?;
// Use cached PRIMOP_METADATA symbol from context
let primop_metadata_sym = ctx.primop_metadata_symbol?;
let scope = ctx.scope;
let obj = val.to_object(scope).unwrap();
if let Some(metadata) = obj.get(scope, is_primop_sym.into())
if let Some(metadata) = obj.get(scope, primop_metadata_sym.into())
&& let Some(metadata_obj) = metadata.to_object(scope)
&& let Some(name_key) = v8::String::new(scope, "name")
&& let Some(name_val) = metadata_obj.get(scope, name_key.into())
@@ -406,13 +406,13 @@ fn primop_app_name<'a, 'b>(
) -> Option<String> {
let name = primop_name(val, ctx)?;
// Get cached IS_PRIMOP symbol
let is_primop_sym = ctx.is_primop_symbol?;
// Get cached PRIMOP_METADATA symbol
let primop_metadata_sym = ctx.primop_metadata_symbol?;
let scope = ctx.scope;
let obj = val.to_object(scope).unwrap();
if let Some(metadata) = obj.get(scope, is_primop_sym.into())
if let Some(metadata) = obj.get(scope, primop_metadata_sym.into())
&& let Some(metadata_obj) = metadata.to_object(scope)
&& let Some(applied_key) = v8::String::new(scope, "applied")
&& let Some(applied_val) = metadata_obj.get(scope, applied_key.into())