diff options
Diffstat (limited to 'cli/ops/runtime_compiler.rs')
-rw-r--r-- | cli/ops/runtime_compiler.rs | 84 |
1 files changed, 42 insertions, 42 deletions
diff --git a/cli/ops/runtime_compiler.rs b/cli/ops/runtime_compiler.rs index 3aaaf019d..a5991dabf 100644 --- a/cli/ops/runtime_compiler.rs +++ b/cli/ops/runtime_compiler.rs @@ -1,19 +1,23 @@ // Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. -use super::dispatch_json::{Deserialize, JsonOp, Value}; +use super::dispatch_json::{Deserialize, Value}; use crate::futures::FutureExt; use crate::state::State; use crate::tsc::runtime_bundle; use crate::tsc::runtime_compile; use crate::tsc::runtime_transpile; +use deno_core::BufVec; use deno_core::CoreIsolate; use deno_core::ErrBox; -use deno_core::ZeroCopyBuf; +use deno_core::ResourceTable; +use std::cell::RefCell; use std::collections::HashMap; use std::rc::Rc; pub fn init(i: &mut CoreIsolate, s: &Rc<State>) { - i.register_op("op_compile", s.stateful_json_op(op_compile)); - i.register_op("op_transpile", s.stateful_json_op(op_transpile)); + let t = &CoreIsolate::state(i).borrow().resource_table.clone(); + + i.register_op("op_compile", s.stateful_json_op_async(t, op_compile)); + i.register_op("op_transpile", s.stateful_json_op_async(t, op_transpile)); } #[derive(Deserialize, Debug)] @@ -25,40 +29,37 @@ struct CompileArgs { options: Option<String>, } -fn op_compile( - state: &Rc<State>, +async fn op_compile( + state: Rc<State>, + _resource_table: Rc<RefCell<ResourceTable>>, args: Value, - _zero_copy: &mut [ZeroCopyBuf], -) -> Result<JsonOp, ErrBox> { + _data: BufVec, +) -> Result<Value, ErrBox> { state.check_unstable("Deno.compile"); let args: CompileArgs = serde_json::from_value(args)?; let global_state = state.global_state.clone(); let permissions = state.permissions.borrow().clone(); - let fut = async move { - let fut = if args.bundle { - runtime_bundle( - &global_state, - permissions, - &args.root_name, - &args.sources, - &args.options, - ) - .boxed_local() - } else { - runtime_compile( - &global_state, - permissions, - &args.root_name, - &args.sources, - &args.options, - ) - .boxed_local() - }; - - fut.await - } - .boxed_local(); - Ok(JsonOp::Async(fut)) + let fut = if args.bundle { + runtime_bundle( + &global_state, + permissions, + &args.root_name, + &args.sources, + &args.options, + ) + .boxed_local() + } else { + runtime_compile( + &global_state, + permissions, + &args.root_name, + &args.sources, + &args.options, + ) + .boxed_local() + }; + let result = fut.await?; + Ok(result) } #[derive(Deserialize, Debug)] @@ -67,19 +68,18 @@ struct TranspileArgs { options: Option<String>, } -fn op_transpile( - state: &Rc<State>, +async fn op_transpile( + state: Rc<State>, + _resource_table: Rc<RefCell<ResourceTable>>, args: Value, - _zero_copy: &mut [ZeroCopyBuf], -) -> Result<JsonOp, ErrBox> { + _data: BufVec, +) -> Result<Value, ErrBox> { state.check_unstable("Deno.transpile"); let args: TranspileArgs = serde_json::from_value(args)?; let global_state = state.global_state.clone(); let permissions = state.permissions.borrow().clone(); - let fut = async move { + let result = runtime_transpile(&global_state, permissions, &args.sources, &args.options) - .await - } - .boxed_local(); - Ok(JsonOp::Async(fut)) + .await?; + Ok(result) } |