#[allow(non_camel_case_types)]
const fn op_cppgc_object() -> ::simien_core::_ops::OpDecl {
#[allow(non_camel_case_types)]
struct op_cppgc_object {
_unconstructable: ::std::marker::PhantomData<()>,
}
impl ::simien_core::_ops::Op for op_cppgc_object {
const NAME: &'static str = stringify!(op_cppgc_object);
const DECL: ::simien_core::_ops::OpDecl = ::simien_core::_ops::OpDecl::new_internal_op2(
::simien_core::__op_name_fast!(op_cppgc_object),
false,
false,
false,
1usize as u8,
false,
false,
Self::v8_fn_ptr as _,
Self::slow_function_impl,
::simien_core::AccessorType::None,
Some({
use simien_core::v8::fast_api::Type as CType;
use simien_core::v8;
simien_core::v8::fast_api::CFunction::new(
Self::v8_fn_ptr_fast as _,
&simien_core::v8::fast_api::CFunctionInfo::new(
CType::Void.as_info(),
&[
CType::V8Value.as_info(),
CType::V8Value.as_info(),
CType::CallbackOptions.as_info(),
],
simien_core::v8::fast_api::Int64Representation::BigInt,
),
)
}),
Some({
use simien_core::v8::fast_api::Type as CType;
use simien_core::v8;
simien_core::v8::fast_api::CFunction::new(
Self::v8_fn_ptr_fast_metrics as _,
&simien_core::v8::fast_api::CFunctionInfo::new(
CType::Void.as_info(),
&[
CType::V8Value.as_info(),
CType::V8Value.as_info(),
CType::CallbackOptions.as_info(),
],
simien_core::v8::fast_api::Int64Representation::BigInt,
),
)
}),
::simien_core::OpMetadata {
..::simien_core::OpMetadata::default()
},
);
}
impl op_cppgc_object {
pub const fn name() -> &'static str {
<Self as simien_core::_ops::Op>::NAME
}
#[allow(clippy::too_many_arguments)]
extern "C" fn v8_fn_ptr_fast_metrics<'s>(
this: simien_core::v8::Local<simien_core::v8::Object>,
arg0: simien_core::v8::Local<simien_core::v8::Value>,
fast_api_callback_options: *mut simien_core::v8::fast_api::FastApiCallbackOptions<
's,
>,
) -> () {
let fast_api_callback_options: &'s mut _ = unsafe {
&mut *fast_api_callback_options
};
let opctx: &'s _ = unsafe {
&*(simien_core::v8::Local::<
simien_core::v8::External,
>::cast_unchecked(unsafe { fast_api_callback_options.data })
.value() as *const simien_core::_ops::OpCtx)
};
simien_core::_ops::dispatch_metrics_fast(
opctx,
simien_core::_ops::OpMetricsEvent::Dispatched,
);
let res = Self::v8_fn_ptr_fast(this, arg0, fast_api_callback_options);
simien_core::_ops::dispatch_metrics_fast(
opctx,
simien_core::_ops::OpMetricsEvent::Completed,
);
res
}
#[allow(clippy::too_many_arguments)]
extern "C" fn v8_fn_ptr_fast<'s>(
this: simien_core::v8::Local<simien_core::v8::Object>,
arg0: simien_core::v8::Local<simien_core::v8::Value>,
fast_api_callback_options: *mut simien_core::v8::fast_api::FastApiCallbackOptions<
's,
>,
) -> () {
#[cfg(debug_assertions)]
let _reentrancy_check_guard = simien_core::_ops::reentrancy_check(
&<Self as simien_core::_ops::Op>::DECL,
);
let fast_api_callback_options: &'s mut _ = unsafe {
&mut *fast_api_callback_options
};
let mut scope = unsafe { fast_api_callback_options.isolate_unchecked_mut() };
let result = {
let Some(arg0) = simien_core::_ops::try_unwrap_cppgc_object::<
Wrap,
>(&mut scope, arg0) else {
{
let scope = ::std::pin::pin!(
unsafe { simien_core::v8::CallbackScope::new(& *
fast_api_callback_options) }
);
let mut scope = scope.init();
simien_core::_ops::throw_error_one_byte(
&mut scope,
"expected Path { leading_colon: None, segments: [PathSegment { ident: Ident(Wrap), arguments: PathArguments::None }] }",
);
return unsafe { std::mem::zeroed() };
}
};
let arg0 = unsafe { arg0.as_ref() };
Self::call(arg0)
};
result as _
}
fn slow_function_impl<'s>(
info: *const simien_core::v8::FunctionCallbackInfo,
) -> usize {
let info: &'s _ = unsafe { &*info };
#[cfg(debug_assertions)]
let _reentrancy_check_guard = simien_core::_ops::reentrancy_check(
&<Self as simien_core::_ops::Op>::DECL,
);
let parts: simien_core::v8::FunctionCallbackInfoParts<'s> = info.get_parts();
let scope = ::std::pin::pin!(
unsafe { simien_core::v8::CallbackScope::new(info) }
);
let mut scope = scope.init();
let mut rv = parts.return_value;
let args = simien_core::v8::FunctionCallbackArguments::from_function_callback_info_parts(
info,
&parts,
);
let result = {
let arg0 = args.get(0usize as i32);
let Some(arg0) = simien_core::_ops::try_unwrap_cppgc_object::<
Wrap,
>(&mut scope, arg0) else {
simien_core::_ops::throw_error_one_byte_info(&info, "expected Wrap");
return 1;
};
let arg0 = unsafe { arg0.as_ref() };
Self::call(arg0)
};
simien_core::_ops::RustToV8RetVal::to_v8_rv(result, &mut rv);
return 0;
}
extern "C" fn v8_fn_ptr(info: *const simien_core::v8::FunctionCallbackInfo) {
Self::slow_function_impl(info);
}
}
impl op_cppgc_object {
#[allow(clippy::too_many_arguments)]
fn call(_resource: &Wrap) {}
}
<op_cppgc_object as ::simien_core::_ops::Op>::DECL
}
#[allow(non_camel_case_types)]
const fn op_option_cppgc_object() -> ::simien_core::_ops::OpDecl {
#[allow(non_camel_case_types)]
struct op_option_cppgc_object {
_unconstructable: ::std::marker::PhantomData<()>,
}
impl ::simien_core::_ops::Op for op_option_cppgc_object {
const NAME: &'static str = stringify!(op_option_cppgc_object);
const DECL: ::simien_core::_ops::OpDecl = ::simien_core::_ops::OpDecl::new_internal_op2(
::simien_core::__op_name_fast!(op_option_cppgc_object),
false,
false,
false,
1usize as u8,
false,
false,
Self::v8_fn_ptr as _,
Self::slow_function_impl,
::simien_core::AccessorType::None,
Some({
use simien_core::v8::fast_api::Type as CType;
use simien_core::v8;
simien_core::v8::fast_api::CFunction::new(
Self::v8_fn_ptr_fast as _,
&simien_core::v8::fast_api::CFunctionInfo::new(
CType::Void.as_info(),
&[
CType::V8Value.as_info(),
CType::V8Value.as_info(),
CType::CallbackOptions.as_info(),
],
simien_core::v8::fast_api::Int64Representation::BigInt,
),
)
}),
Some({
use simien_core::v8::fast_api::Type as CType;
use simien_core::v8;
simien_core::v8::fast_api::CFunction::new(
Self::v8_fn_ptr_fast_metrics as _,
&simien_core::v8::fast_api::CFunctionInfo::new(
CType::Void.as_info(),
&[
CType::V8Value.as_info(),
CType::V8Value.as_info(),
CType::CallbackOptions.as_info(),
],
simien_core::v8::fast_api::Int64Representation::BigInt,
),
)
}),
::simien_core::OpMetadata {
..::simien_core::OpMetadata::default()
},
);
}
impl op_option_cppgc_object {
pub const fn name() -> &'static str {
<Self as simien_core::_ops::Op>::NAME
}
#[allow(clippy::too_many_arguments)]
extern "C" fn v8_fn_ptr_fast_metrics<'s>(
this: simien_core::v8::Local<simien_core::v8::Object>,
arg0: simien_core::v8::Local<simien_core::v8::Value>,
fast_api_callback_options: *mut simien_core::v8::fast_api::FastApiCallbackOptions<
's,
>,
) -> () {
let fast_api_callback_options: &'s mut _ = unsafe {
&mut *fast_api_callback_options
};
let opctx: &'s _ = unsafe {
&*(simien_core::v8::Local::<
simien_core::v8::External,
>::cast_unchecked(unsafe { fast_api_callback_options.data })
.value() as *const simien_core::_ops::OpCtx)
};
simien_core::_ops::dispatch_metrics_fast(
opctx,
simien_core::_ops::OpMetricsEvent::Dispatched,
);
let res = Self::v8_fn_ptr_fast(this, arg0, fast_api_callback_options);
simien_core::_ops::dispatch_metrics_fast(
opctx,
simien_core::_ops::OpMetricsEvent::Completed,
);
res
}
#[allow(clippy::too_many_arguments)]
extern "C" fn v8_fn_ptr_fast<'s>(
this: simien_core::v8::Local<simien_core::v8::Object>,
arg0: simien_core::v8::Local<simien_core::v8::Value>,
fast_api_callback_options: *mut simien_core::v8::fast_api::FastApiCallbackOptions<
's,
>,
) -> () {
#[cfg(debug_assertions)]
let _reentrancy_check_guard = simien_core::_ops::reentrancy_check(
&<Self as simien_core::_ops::Op>::DECL,
);
let fast_api_callback_options: &'s mut _ = unsafe {
&mut *fast_api_callback_options
};
let mut scope = unsafe { fast_api_callback_options.isolate_unchecked_mut() };
let result = {
let arg0 = if arg0.is_null_or_undefined() {
None
} else if let Some(arg0) = simien_core::_ops::try_unwrap_cppgc_object::<
Wrap,
>(&mut scope, arg0) {
Some(arg0)
} else {
{
let scope = ::std::pin::pin!(
unsafe { simien_core::v8::CallbackScope::new(& *
fast_api_callback_options) }
);
let mut scope = scope.init();
simien_core::_ops::throw_error_one_byte(
&mut scope,
"expected Wrap",
);
return unsafe { std::mem::zeroed() };
}
};
let arg0 = unsafe { arg0.as_ref().map(|a| a.as_ref()) };
Self::call(arg0)
};
result as _
}
fn slow_function_impl<'s>(
info: *const simien_core::v8::FunctionCallbackInfo,
) -> usize {
let info: &'s _ = unsafe { &*info };
#[cfg(debug_assertions)]
let _reentrancy_check_guard = simien_core::_ops::reentrancy_check(
&<Self as simien_core::_ops::Op>::DECL,
);
let parts: simien_core::v8::FunctionCallbackInfoParts<'s> = info.get_parts();
let scope = ::std::pin::pin!(
unsafe { simien_core::v8::CallbackScope::new(info) }
);
let mut scope = scope.init();
let mut rv = parts.return_value;
let args = simien_core::v8::FunctionCallbackArguments::from_function_callback_info_parts(
info,
&parts,
);
let result = {
let arg0 = args.get(0usize as i32);
let arg0 = if arg0.is_null_or_undefined() {
None
} else if let Some(arg0) = simien_core::_ops::try_unwrap_cppgc_object::<
Wrap,
>(&mut scope, arg0) {
Some(arg0)
} else {
simien_core::_ops::throw_error_one_byte_info(&info, "expected Wrap");
return 1;
};
let arg0 = unsafe { arg0.as_ref().map(|a| a.as_ref()) };
Self::call(arg0)
};
simien_core::_ops::RustToV8RetVal::to_v8_rv(result, &mut rv);
return 0;
}
extern "C" fn v8_fn_ptr(info: *const simien_core::v8::FunctionCallbackInfo) {
Self::slow_function_impl(info);
}
}
impl op_option_cppgc_object {
#[allow(clippy::too_many_arguments)]
fn call(_resource: Option<&Wrap>) {}
}
<op_option_cppgc_object as ::simien_core::_ops::Op>::DECL
}
#[allow(non_camel_case_types)]
const fn op_make_cppgc_object() -> ::simien_core::_ops::OpDecl {
#[allow(non_camel_case_types)]
struct op_make_cppgc_object {
_unconstructable: ::std::marker::PhantomData<()>,
}
impl ::simien_core::_ops::Op for op_make_cppgc_object {
const NAME: &'static str = stringify!(op_make_cppgc_object);
const DECL: ::simien_core::_ops::OpDecl = ::simien_core::_ops::OpDecl::new_internal_op2(
::simien_core::__op_name_fast!(op_make_cppgc_object),
false,
false,
false,
0usize as u8,
false,
false,
Self::v8_fn_ptr as _,
Self::slow_function_impl,
::simien_core::AccessorType::None,
None,
None,
::simien_core::OpMetadata {
..::simien_core::OpMetadata::default()
},
);
}
impl op_make_cppgc_object {
pub const fn name() -> &'static str {
<Self as simien_core::_ops::Op>::NAME
}
fn slow_function_impl<'s>(
info: *const simien_core::v8::FunctionCallbackInfo,
) -> usize {
let info: &'s _ = unsafe { &*info };
#[cfg(debug_assertions)]
let _reentrancy_check_guard = simien_core::_ops::reentrancy_check(
&<Self as simien_core::_ops::Op>::DECL,
);
let parts: simien_core::v8::FunctionCallbackInfoParts<'s> = info.get_parts();
let scope = ::std::pin::pin!(
unsafe { simien_core::v8::CallbackScope::new(info) }
);
let mut scope = scope.init();
let mut rv = parts.return_value;
let result = { Self::call() };
rv.set(
simien_core::_ops::RustToV8::to_v8(
simien_core::_ops::RustToV8Marker::<
simien_core::_ops::CppGcMarker,
_,
>::from(result),
&mut scope,
),
);
return 0;
}
extern "C" fn v8_fn_ptr(info: *const simien_core::v8::FunctionCallbackInfo) {
Self::slow_function_impl(info);
}
}
impl op_make_cppgc_object {
#[allow(clippy::too_many_arguments)]
fn call() -> Wrap {
Wrap
}
}
<op_make_cppgc_object as ::simien_core::_ops::Op>::DECL
}
#[allow(non_camel_case_types)]
const fn op_use_cppgc_object() -> ::simien_core::_ops::OpDecl {
#[allow(non_camel_case_types)]
struct op_use_cppgc_object {
_unconstructable: ::std::marker::PhantomData<()>,
}
impl ::simien_core::_ops::Op for op_use_cppgc_object {
const NAME: &'static str = stringify!(op_use_cppgc_object);
const DECL: ::simien_core::_ops::OpDecl = ::simien_core::_ops::OpDecl::new_internal_op2(
::simien_core::__op_name_fast!(op_use_cppgc_object),
false,
false,
false,
1usize as u8,
false,
false,
Self::v8_fn_ptr as _,
Self::slow_function_impl,
::simien_core::AccessorType::None,
Some({
use simien_core::v8::fast_api::Type as CType;
use simien_core::v8;
simien_core::v8::fast_api::CFunction::new(
Self::v8_fn_ptr_fast as _,
&simien_core::v8::fast_api::CFunctionInfo::new(
CType::Void.as_info(),
&[
CType::V8Value.as_info(),
CType::V8Value.as_info(),
CType::CallbackOptions.as_info(),
],
simien_core::v8::fast_api::Int64Representation::BigInt,
),
)
}),
Some({
use simien_core::v8::fast_api::Type as CType;
use simien_core::v8;
simien_core::v8::fast_api::CFunction::new(
Self::v8_fn_ptr_fast_metrics as _,
&simien_core::v8::fast_api::CFunctionInfo::new(
CType::Void.as_info(),
&[
CType::V8Value.as_info(),
CType::V8Value.as_info(),
CType::CallbackOptions.as_info(),
],
simien_core::v8::fast_api::Int64Representation::BigInt,
),
)
}),
::simien_core::OpMetadata {
..::simien_core::OpMetadata::default()
},
);
}
impl op_use_cppgc_object {
pub const fn name() -> &'static str {
<Self as simien_core::_ops::Op>::NAME
}
#[allow(clippy::too_many_arguments)]
extern "C" fn v8_fn_ptr_fast_metrics<'s>(
this: simien_core::v8::Local<simien_core::v8::Object>,
arg0: simien_core::v8::Local<simien_core::v8::Value>,
fast_api_callback_options: *mut simien_core::v8::fast_api::FastApiCallbackOptions<
's,
>,
) -> () {
let fast_api_callback_options: &'s mut _ = unsafe {
&mut *fast_api_callback_options
};
let opctx: &'s _ = unsafe {
&*(simien_core::v8::Local::<
simien_core::v8::External,
>::cast_unchecked(unsafe { fast_api_callback_options.data })
.value() as *const simien_core::_ops::OpCtx)
};
simien_core::_ops::dispatch_metrics_fast(
opctx,
simien_core::_ops::OpMetricsEvent::Dispatched,
);
let res = Self::v8_fn_ptr_fast(this, arg0, fast_api_callback_options);
simien_core::_ops::dispatch_metrics_fast(
opctx,
simien_core::_ops::OpMetricsEvent::Completed,
);
res
}
#[allow(clippy::too_many_arguments)]
extern "C" fn v8_fn_ptr_fast<'s>(
this: simien_core::v8::Local<simien_core::v8::Object>,
arg0: simien_core::v8::Local<simien_core::v8::Value>,
fast_api_callback_options: *mut simien_core::v8::fast_api::FastApiCallbackOptions<
's,
>,
) -> () {
#[cfg(debug_assertions)]
let _reentrancy_check_guard = simien_core::_ops::reentrancy_check(
&<Self as simien_core::_ops::Op>::DECL,
);
let fast_api_callback_options: &'s mut _ = unsafe {
&mut *fast_api_callback_options
};
let mut scope = unsafe { fast_api_callback_options.isolate_unchecked_mut() };
let result = {
let Some(arg0) = simien_core::_ops::try_unwrap_cppgc_object::<
Wrap,
>(&mut scope, arg0) else {
{
let scope = ::std::pin::pin!(
unsafe { simien_core::v8::CallbackScope::new(& *
fast_api_callback_options) }
);
let mut scope = scope.init();
simien_core::_ops::throw_error_one_byte(
&mut scope,
"expected Path { leading_colon: None, segments: [PathSegment { ident: Ident(Wrap), arguments: PathArguments::None }] }",
);
return unsafe { std::mem::zeroed() };
}
};
let arg0 = unsafe { arg0.as_ref() };
Self::call(arg0)
};
result as _
}
fn slow_function_impl<'s>(
info: *const simien_core::v8::FunctionCallbackInfo,
) -> usize {
let info: &'s _ = unsafe { &*info };
#[cfg(debug_assertions)]
let _reentrancy_check_guard = simien_core::_ops::reentrancy_check(
&<Self as simien_core::_ops::Op>::DECL,
);
let parts: simien_core::v8::FunctionCallbackInfoParts<'s> = info.get_parts();
let scope = ::std::pin::pin!(
unsafe { simien_core::v8::CallbackScope::new(info) }
);
let mut scope = scope.init();
let mut rv = parts.return_value;
let args = simien_core::v8::FunctionCallbackArguments::from_function_callback_info_parts(
info,
&parts,
);
let result = {
let arg0 = args.get(0usize as i32);
let Some(arg0) = simien_core::_ops::try_unwrap_cppgc_object::<
Wrap,
>(&mut scope, arg0) else {
simien_core::_ops::throw_error_one_byte_info(&info, "expected Wrap");
return 1;
};
let arg0 = unsafe { arg0.as_ref() };
Self::call(arg0)
};
simien_core::_ops::RustToV8RetVal::to_v8_rv(result, &mut rv);
return 0;
}
extern "C" fn v8_fn_ptr(info: *const simien_core::v8::FunctionCallbackInfo) {
Self::slow_function_impl(info);
}
}
impl op_use_cppgc_object {
#[allow(clippy::too_many_arguments)]
fn call(_wrap: &Wrap) {}
}
<op_use_cppgc_object as ::simien_core::_ops::Op>::DECL
}
#[allow(non_camel_case_types)]
const fn op_make_cppgc_object_option() -> ::simien_core::_ops::OpDecl {
#[allow(non_camel_case_types)]
struct op_make_cppgc_object_option {
_unconstructable: ::std::marker::PhantomData<()>,
}
impl ::simien_core::_ops::Op for op_make_cppgc_object_option {
const NAME: &'static str = stringify!(op_make_cppgc_object_option);
const DECL: ::simien_core::_ops::OpDecl = ::simien_core::_ops::OpDecl::new_internal_op2(
::simien_core::__op_name_fast!(op_make_cppgc_object_option),
false,
false,
false,
0usize as u8,
false,
false,
Self::v8_fn_ptr as _,
Self::slow_function_impl,
::simien_core::AccessorType::None,
None,
None,
::simien_core::OpMetadata {
..::simien_core::OpMetadata::default()
},
);
}
impl op_make_cppgc_object_option {
pub const fn name() -> &'static str {
<Self as simien_core::_ops::Op>::NAME
}
fn slow_function_impl<'s>(
info: *const simien_core::v8::FunctionCallbackInfo,
) -> usize {
let info: &'s _ = unsafe { &*info };
#[cfg(debug_assertions)]
let _reentrancy_check_guard = simien_core::_ops::reentrancy_check(
&<Self as simien_core::_ops::Op>::DECL,
);
let parts: simien_core::v8::FunctionCallbackInfoParts<'s> = info.get_parts();
let scope = ::std::pin::pin!(
unsafe { simien_core::v8::CallbackScope::new(info) }
);
let mut scope = scope.init();
let mut rv = parts.return_value;
let result = { Self::call() };
rv.set(
simien_core::_ops::RustToV8::to_v8(
result
.map(
simien_core::_ops::RustToV8Marker::<
simien_core::_ops::CppGcMarker,
_,
>::from,
),
&mut scope,
),
);
return 0;
}
extern "C" fn v8_fn_ptr(info: *const simien_core::v8::FunctionCallbackInfo) {
Self::slow_function_impl(info);
}
}
impl op_make_cppgc_object_option {
#[allow(clippy::too_many_arguments)]
fn call() -> Option<Wrap> {
Some(Wrap)
}
}
<op_make_cppgc_object_option as ::simien_core::_ops::Op>::DECL
}
#[allow(non_camel_case_types)]
const fn op_use_cppgc_object_option() -> ::simien_core::_ops::OpDecl {
#[allow(non_camel_case_types)]
struct op_use_cppgc_object_option {
_unconstructable: ::std::marker::PhantomData<()>,
}
impl ::simien_core::_ops::Op for op_use_cppgc_object_option {
const NAME: &'static str = stringify!(op_use_cppgc_object_option);
const DECL: ::simien_core::_ops::OpDecl = ::simien_core::_ops::OpDecl::new_internal_op2(
::simien_core::__op_name_fast!(op_use_cppgc_object_option),
false,
false,
false,
1usize as u8,
false,
false,
Self::v8_fn_ptr as _,
Self::slow_function_impl,
::simien_core::AccessorType::None,
Some({
use simien_core::v8::fast_api::Type as CType;
use simien_core::v8;
simien_core::v8::fast_api::CFunction::new(
Self::v8_fn_ptr_fast as _,
&simien_core::v8::fast_api::CFunctionInfo::new(
CType::Void.as_info(),
&[
CType::V8Value.as_info(),
CType::V8Value.as_info(),
CType::CallbackOptions.as_info(),
],
simien_core::v8::fast_api::Int64Representation::BigInt,
),
)
}),
Some({
use simien_core::v8::fast_api::Type as CType;
use simien_core::v8;
simien_core::v8::fast_api::CFunction::new(
Self::v8_fn_ptr_fast_metrics as _,
&simien_core::v8::fast_api::CFunctionInfo::new(
CType::Void.as_info(),
&[
CType::V8Value.as_info(),
CType::V8Value.as_info(),
CType::CallbackOptions.as_info(),
],
simien_core::v8::fast_api::Int64Representation::BigInt,
),
)
}),
::simien_core::OpMetadata {
..::simien_core::OpMetadata::default()
},
);
}
impl op_use_cppgc_object_option {
pub const fn name() -> &'static str {
<Self as simien_core::_ops::Op>::NAME
}
#[allow(clippy::too_many_arguments)]
extern "C" fn v8_fn_ptr_fast_metrics<'s>(
this: simien_core::v8::Local<simien_core::v8::Object>,
arg0: simien_core::v8::Local<simien_core::v8::Value>,
fast_api_callback_options: *mut simien_core::v8::fast_api::FastApiCallbackOptions<
's,
>,
) -> () {
let fast_api_callback_options: &'s mut _ = unsafe {
&mut *fast_api_callback_options
};
let opctx: &'s _ = unsafe {
&*(simien_core::v8::Local::<
simien_core::v8::External,
>::cast_unchecked(unsafe { fast_api_callback_options.data })
.value() as *const simien_core::_ops::OpCtx)
};
simien_core::_ops::dispatch_metrics_fast(
opctx,
simien_core::_ops::OpMetricsEvent::Dispatched,
);
let res = Self::v8_fn_ptr_fast(this, arg0, fast_api_callback_options);
simien_core::_ops::dispatch_metrics_fast(
opctx,
simien_core::_ops::OpMetricsEvent::Completed,
);
res
}
#[allow(clippy::too_many_arguments)]
extern "C" fn v8_fn_ptr_fast<'s>(
this: simien_core::v8::Local<simien_core::v8::Object>,
arg0: simien_core::v8::Local<simien_core::v8::Value>,
fast_api_callback_options: *mut simien_core::v8::fast_api::FastApiCallbackOptions<
's,
>,
) -> () {
#[cfg(debug_assertions)]
let _reentrancy_check_guard = simien_core::_ops::reentrancy_check(
&<Self as simien_core::_ops::Op>::DECL,
);
let fast_api_callback_options: &'s mut _ = unsafe {
&mut *fast_api_callback_options
};
let mut scope = unsafe { fast_api_callback_options.isolate_unchecked_mut() };
let result = {
let Some(arg0) = simien_core::_ops::try_unwrap_cppgc_object::<
Wrap,
>(&mut scope, arg0) else {
{
let scope = ::std::pin::pin!(
unsafe { simien_core::v8::CallbackScope::new(& *
fast_api_callback_options) }
);
let mut scope = scope.init();
simien_core::_ops::throw_error_one_byte(
&mut scope,
"expected Path { leading_colon: None, segments: [PathSegment { ident: Ident(Wrap), arguments: PathArguments::None }] }",
);
return unsafe { std::mem::zeroed() };
}
};
let arg0 = unsafe { arg0.as_ref() };
Self::call(arg0)
};
result as _
}
fn slow_function_impl<'s>(
info: *const simien_core::v8::FunctionCallbackInfo,
) -> usize {
let info: &'s _ = unsafe { &*info };
#[cfg(debug_assertions)]
let _reentrancy_check_guard = simien_core::_ops::reentrancy_check(
&<Self as simien_core::_ops::Op>::DECL,
);
let parts: simien_core::v8::FunctionCallbackInfoParts<'s> = info.get_parts();
let scope = ::std::pin::pin!(
unsafe { simien_core::v8::CallbackScope::new(info) }
);
let mut scope = scope.init();
let mut rv = parts.return_value;
let args = simien_core::v8::FunctionCallbackArguments::from_function_callback_info_parts(
info,
&parts,
);
let result = {
let arg0 = args.get(0usize as i32);
let Some(arg0) = simien_core::_ops::try_unwrap_cppgc_object::<
Wrap,
>(&mut scope, arg0) else {
simien_core::_ops::throw_error_one_byte_info(&info, "expected Wrap");
return 1;
};
let arg0 = unsafe { arg0.as_ref() };
Self::call(arg0)
};
simien_core::_ops::RustToV8RetVal::to_v8_rv(result, &mut rv);
return 0;
}
extern "C" fn v8_fn_ptr(info: *const simien_core::v8::FunctionCallbackInfo) {
Self::slow_function_impl(info);
}
}
impl op_use_cppgc_object_option {
#[allow(clippy::too_many_arguments)]
fn call(_wrap: &Wrap) {}
}
<op_use_cppgc_object_option as ::simien_core::_ops::Op>::DECL
}