summaryrefslogtreecommitdiff
path: root/src/isolate.rs
diff options
context:
space:
mode:
authorAndy Hayden <andyhayden1@gmail.com>2018-10-15 11:26:22 -0700
committerRyan Dahl <ry@tinyclouds.org>2018-10-15 14:26:22 -0400
commitfb90c6f52587e58378cb1ec7c97392efd3c42afa (patch)
tree5a1e173df78a8ad66389d25c767f37e0d08662f4 /src/isolate.rs
parent28682a1d2c2601033fb524b37c2796d55f72f22b (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.rs16
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.
{