deno.land / x / deno@v1.28.2 / serde_v8 / utils.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// 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() { // SAFETY: this is safe, because all isolates have been shut down already. 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();}
deno

Version Info

Tagged at
a year ago