1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-01 16:51:13 -05:00
denoland-deno/serde_v8/utils.rs
Aaron O'Mullan 1d774683b2
chore: drop src/ in bench_util & serde_v8 (#14097)
To align with conventions used in our other crates
2022-03-25 13:31:02 +01:00

33 lines
738 B
Rust

// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
use std::sync::Once;
pub fn js_exec<'s>(
scope: &mut v8::HandleScope<'s>,
src: &str,
) -> v8::Local<'s, v8::Value> {
let code = v8::String::new(scope, src).unwrap();
let script = v8::Script::compile(scope, code, None).unwrap();
script.run(scope).unwrap()
}
pub fn v8_init() {
let platform = v8::new_default_platform(0, false).make_shared();
v8::V8::initialize_platform(platform);
v8::V8::initialize();
}
pub fn v8_shutdown() {
unsafe {
v8::V8::dispose();
}
v8::V8::dispose_platform();
}
pub fn v8_do(f: impl FnOnce()) {
static V8_INIT: Once = Once::new();
V8_INIT.call_once(|| {
v8_init();
});
f();
// v8_shutdown();
}