diff --git a/js-sandbox/Cargo.toml b/js-sandbox/Cargo.toml index e134a9e..8b4ac04 100644 --- a/js-sandbox/Cargo.toml +++ b/js-sandbox/Cargo.toml @@ -13,6 +13,6 @@ readme = "../ReadMe.md" [dependencies] js-sandbox-macros = { path = "../js-sandbox-macros", version = "=0.2.0-rc.1" } -deno_core = "0.178" +deno_core = "0.200" serde_json = "1" serde = { version = "1", features = ["derive"] } \ No newline at end of file diff --git a/js-sandbox/src/script.rs b/js-sandbox/src/script.rs index 968beb8..4453c9d 100644 --- a/js-sandbox/src/script.rs +++ b/js-sandbox/src/script.rs @@ -5,7 +5,7 @@ use std::path::Path; use std::rc::Rc; use std::{thread, time::Duration}; -use deno_core::{op, Extension, JsRuntime, OpState, ZeroCopyBuf}; +use deno_core::{op, Extension, FastString, JsBuffer, JsRuntime, Op, OpState}; use serde::de::DeserializeOwned; use crate::{AnyError, CallArgs, JsError, JsValue}; @@ -129,7 +129,8 @@ impl Script { Deno.core.ops.op_return(__rust_result); }})()" - ); + ) + .into(); if let Some(timeout) = self.timeout { let handle = self.runtime.v8_isolate().thread_safe_handle(); @@ -163,10 +164,14 @@ impl Script { Ok(extracted.json_value) } - fn create_script(js_code: String) -> Result { - let ext = Extension::builder("script") - .ops(vec![(op_return::decl())]) - .build(); + fn create_script(js_code: S) -> Result + where + S: Into, + { + let ext = Extension { + ops: Cow::Owned(vec![op_return::DECL]), + ..Default::default() + }; let mut runtime = JsRuntime::new(deno_core::RuntimeOptions { module_loader: Some(Rc::new(deno_core::FsModuleLoader)), @@ -175,7 +180,7 @@ impl Script { }); // We cannot provide a dynamic filename because execute_script() requires a &'static str - runtime.execute_script(Self::DEFAULT_FILENAME, js_code)?; + runtime.execute_script(Self::DEFAULT_FILENAME, js_code.into())?; Ok(Script { runtime, @@ -201,7 +206,7 @@ impl deno_core::Resource for ResultResource { fn op_return( state: &mut OpState, args: JsValue, - _buf: Option, + _buf: Option, ) -> Result { let entry = ResultResource { json_value: args }; let resource_table = &mut state.resource_table;