mirror of
https://github.com/denoland/deno.git
synced 2025-01-21 21:50:00 -05:00
Lift snapshot to be an argument of Isolate::new().
This commit is contained in:
parent
b2bc0a7fc9
commit
9d9853b319
2 changed files with 27 additions and 8 deletions
|
@ -10,7 +10,6 @@ use errors::DenoResult;
|
|||
use flags;
|
||||
use libdeno;
|
||||
use permissions::DenoPermissions;
|
||||
use snapshot;
|
||||
|
||||
use futures::Future;
|
||||
use libc::c_void;
|
||||
|
@ -130,6 +129,7 @@ fn empty() -> libdeno::deno_buf {
|
|||
|
||||
impl Isolate {
|
||||
pub fn new(
|
||||
snapshot: libdeno::deno_buf,
|
||||
flags: flags::DenoFlags,
|
||||
argv_rest: Vec<String>,
|
||||
dispatch: Dispatch,
|
||||
|
@ -138,9 +138,8 @@ impl Isolate {
|
|||
unsafe { libdeno::deno_init() };
|
||||
});
|
||||
let shared = empty(); // TODO Use shared for message passing.
|
||||
let libdeno_isolate = unsafe {
|
||||
libdeno::deno_new(snapshot::deno_snapshot(), shared, pre_dispatch)
|
||||
};
|
||||
let libdeno_isolate =
|
||||
unsafe { libdeno::deno_new(snapshot, shared, pre_dispatch) };
|
||||
// This channel handles sending async messages back to the runtime.
|
||||
let (tx, rx) = mpsc::channel::<(i32, Buf)>();
|
||||
|
||||
|
@ -389,12 +388,15 @@ fn recv_deadline<T>(
|
|||
mod tests {
|
||||
use super::*;
|
||||
use futures;
|
||||
use snapshot;
|
||||
|
||||
#[test]
|
||||
fn test_dispatch_sync() {
|
||||
let argv = vec![String::from("./deno"), String::from("hello.js")];
|
||||
let (flags, rest_argv, _) = flags::set_flags(argv).unwrap();
|
||||
let mut isolate = Isolate::new(flags, rest_argv, dispatch_sync);
|
||||
// TODO Don't use deno_snapshot for these tests.
|
||||
let mut isolate =
|
||||
Isolate::new(snapshot::deno_snapshot(), flags, rest_argv, dispatch_sync);
|
||||
tokio_util::init(|| {
|
||||
isolate
|
||||
.execute(
|
||||
|
@ -434,7 +436,13 @@ mod tests {
|
|||
fn test_metrics_sync() {
|
||||
let argv = vec![String::from("./deno"), String::from("hello.js")];
|
||||
let (flags, rest_argv, _) = flags::set_flags(argv).unwrap();
|
||||
let mut isolate = Isolate::new(flags, rest_argv, metrics_dispatch_sync);
|
||||
// TODO Don't use deno_snapshot for these tests.
|
||||
let mut isolate = Isolate::new(
|
||||
snapshot::deno_snapshot(),
|
||||
flags,
|
||||
rest_argv,
|
||||
metrics_dispatch_sync,
|
||||
);
|
||||
tokio_util::init(|| {
|
||||
// Verify that metrics have been properly initialized.
|
||||
{
|
||||
|
@ -469,7 +477,13 @@ mod tests {
|
|||
fn test_metrics_async() {
|
||||
let argv = vec![String::from("./deno"), String::from("hello.js")];
|
||||
let (flags, rest_argv, _) = flags::set_flags(argv).unwrap();
|
||||
let mut isolate = Isolate::new(flags, rest_argv, metrics_dispatch_async);
|
||||
// TODO Don't use deno_snapshot for these tests.
|
||||
let mut isolate = Isolate::new(
|
||||
snapshot::deno_snapshot(),
|
||||
flags,
|
||||
rest_argv,
|
||||
metrics_dispatch_async,
|
||||
);
|
||||
tokio_util::init(|| {
|
||||
// Verify that metrics have been properly initialized.
|
||||
{
|
||||
|
|
|
@ -95,7 +95,12 @@ fn main() {
|
|||
log::LevelFilter::Info
|
||||
});
|
||||
|
||||
let mut isolate = isolate::Isolate::new(flags, rest_argv, ops::dispatch);
|
||||
let mut isolate = isolate::Isolate::new(
|
||||
snapshot::deno_snapshot(),
|
||||
flags,
|
||||
rest_argv,
|
||||
ops::dispatch,
|
||||
);
|
||||
tokio_util::init(|| {
|
||||
isolate
|
||||
.execute("deno_main.js", "denoMain();")
|
||||
|
|
Loading…
Add table
Reference in a new issue