0
0
Fork 0
mirror of https://github.com/denoland/rusty_v8.git synced 2025-01-13 17:40:23 -05:00
denoland-rusty-v8/src/unbound_module_script.rs
2022-09-21 08:15:33 +05:30

29 lines
904 B
Rust

use crate::CachedData;
use crate::UnboundModuleScript;
use crate::UniqueRef;
extern "C" {
fn v8__UnboundModuleScript__CreateCodeCache(
script: *const UnboundModuleScript,
) -> *mut CachedData<'static>;
}
impl UnboundModuleScript {
/// Creates and returns code cache for the specified unbound_module_script.
/// This will return nullptr if the script cannot be serialized. The
/// CachedData returned by this function should be owned by the caller.
#[inline(always)]
pub fn create_code_cache(&self) -> Option<UniqueRef<CachedData<'static>>> {
let code_cache = unsafe {
UniqueRef::try_from_raw(v8__UnboundModuleScript__CreateCodeCache(self))
};
#[cfg(debug_assertions)]
if let Some(code_cache) = &code_cache {
debug_assert_eq!(
code_cache.buffer_policy(),
crate::script_compiler::BufferPolicy::BufferOwned
);
}
code_cache
}
}