refactor: Split isolate and state using safe get_slot() (#5929)

This commit is contained in:
Ryan Dahl 2020-05-29 17:41:39 -04:00 committed by GitHub
parent 106b001738
commit d4b05dd89e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 758 additions and 579 deletions

View file

@ -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 {