mirror of
https://github.com/denoland/deno.git
synced 2025-09-28 13:14:48 +00:00
refactor: Split isolate and state using safe get_slot() (#5929)
This commit is contained in:
parent
106b001738
commit
d4b05dd89e
30 changed files with 758 additions and 579 deletions
|
@ -9,6 +9,7 @@ mod ops;
|
|||
use deno_core::js_check;
|
||||
pub use deno_core::v8_set_flags;
|
||||
use deno_core::CoreIsolate;
|
||||
use deno_core::CoreIsolateState;
|
||||
use deno_core::ErrBox;
|
||||
use deno_core::ModuleSpecifier;
|
||||
use deno_core::Op;
|
||||
|
@ -49,11 +50,11 @@ pub struct TSState {
|
|||
fn compiler_op<D>(
|
||||
ts_state: Arc<Mutex<TSState>>,
|
||||
dispatcher: D,
|
||||
) -> impl Fn(&mut CoreIsolate, &[u8], Option<ZeroCopyBuf>) -> Op
|
||||
) -> impl Fn(&mut CoreIsolateState, &[u8], Option<ZeroCopyBuf>) -> Op
|
||||
where
|
||||
D: Fn(&mut TSState, &[u8]) -> Op,
|
||||
{
|
||||
move |_isolate: &mut CoreIsolate,
|
||||
move |_state: &mut CoreIsolateState,
|
||||
control: &[u8],
|
||||
zero_copy_buf: Option<ZeroCopyBuf>|
|
||||
-> Op {
|
||||
|
@ -64,7 +65,7 @@ where
|
|||
}
|
||||
|
||||
pub struct TSIsolate {
|
||||
isolate: Box<CoreIsolate>,
|
||||
isolate: CoreIsolate,
|
||||
state: Arc<Mutex<TSState>>,
|
||||
}
|
||||
|
||||
|
@ -331,11 +332,11 @@ pub fn trace_serializer() {
|
|||
/// CoreIsolate.
|
||||
pub fn op_fetch_asset<S: ::std::hash::BuildHasher>(
|
||||
custom_assets: HashMap<String, PathBuf, S>,
|
||||
) -> impl Fn(&mut CoreIsolate, &[u8], Option<ZeroCopyBuf>) -> Op {
|
||||
) -> impl Fn(&mut CoreIsolateState, &[u8], Option<ZeroCopyBuf>) -> Op {
|
||||
for (_, path) in custom_assets.iter() {
|
||||
println!("cargo:rerun-if-changed={}", path.display());
|
||||
}
|
||||
move |_isolate: &mut CoreIsolate,
|
||||
move |_state: &mut CoreIsolateState,
|
||||
control: &[u8],
|
||||
zero_copy_buf: Option<ZeroCopyBuf>|
|
||||
-> Op {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue