diff options
author | Andy Hayden <andyhayden1@gmail.com> | 2018-10-15 11:26:22 -0700 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2018-10-15 14:26:22 -0400 |
commit | fb90c6f52587e58378cb1ec7c97392efd3c42afa (patch) | |
tree | 5a1e173df78a8ad66389d25c767f37e0d08662f4 /src/isolate.rs | |
parent | 28682a1d2c2601033fb524b37c2796d55f72f22b (diff) |
Exit cleanly on unrecognized arguments (#990)
Refactor set_flags to return a Result
Diffstat (limited to 'src/isolate.rs')
-rw-r--r-- | src/isolate.rs | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/isolate.rs b/src/isolate.rs index 7860b216b..c19cd7cb1 100644 --- a/src/isolate.rs +++ b/src/isolate.rs @@ -100,12 +100,15 @@ pub struct Metrics { static DENO_INIT: std::sync::Once = std::sync::ONCE_INIT; impl Isolate { - pub fn new(argv: Vec<String>, dispatch: Dispatch) -> Isolate { + pub fn new( + flags: flags::DenoFlags, + argv_rest: Vec<String>, + dispatch: Dispatch, + ) -> Isolate { DENO_INIT.call_once(|| { unsafe { libdeno::deno_init() }; }); - let (flags, argv_rest) = flags::set_flags(argv); let libdeno_isolate = unsafe { libdeno::deno_new(pre_dispatch) }; // This channel handles sending async messages back to the runtime. let (tx, rx) = mpsc::channel::<(i32, Buf)>(); @@ -353,7 +356,8 @@ mod tests { #[test] fn test_dispatch_sync() { let argv = vec![String::from("./deno"), String::from("hello.js")]; - let mut isolate = Isolate::new(argv, dispatch_sync); + let (flags, rest_argv) = flags::set_flags(argv).unwrap(); + let mut isolate = Isolate::new(flags, rest_argv, dispatch_sync); tokio_util::init(|| { isolate .execute( @@ -393,7 +397,8 @@ mod tests { #[test] fn test_metrics_sync() { let argv = vec![String::from("./deno"), String::from("hello.js")]; - let mut isolate = Isolate::new(argv, metrics_dispatch_sync); + let (flags, rest_argv) = flags::set_flags(argv).unwrap(); + let mut isolate = Isolate::new(flags, rest_argv, metrics_dispatch_sync); tokio_util::init(|| { // Verify that metrics have been properly initialized. { @@ -428,7 +433,8 @@ mod tests { #[test] fn test_metrics_async() { let argv = vec![String::from("./deno"), String::from("hello.js")]; - let mut isolate = Isolate::new(argv, metrics_dispatch_async); + let (flags, rest_argv) = flags::set_flags(argv).unwrap(); + let mut isolate = Isolate::new(flags, rest_argv, metrics_dispatch_async); tokio_util::init(|| { // Verify that metrics have been properly initialized. { |