summaryrefslogtreecommitdiff
path: root/runtime/worker.rs
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/worker.rs')
-rw-r--r--runtime/worker.rs198
1 files changed, 0 insertions, 198 deletions
diff --git a/runtime/worker.rs b/runtime/worker.rs
index c7226b76b..0c439c703 100644
--- a/runtime/worker.rs
+++ b/runtime/worker.rs
@@ -13,9 +13,6 @@ use deno_core::error::AnyError;
use deno_core::error::JsError;
use deno_core::futures::Future;
use deno_core::located_script_name;
-use deno_core::serde_json::json;
-use deno_core::serde_v8;
-use deno_core::v8;
use deno_core::CompiledWasmModuleStore;
use deno_core::Extension;
use deno_core::FsModuleLoader;
@@ -66,10 +63,6 @@ pub struct MainWorker {
pub js_runtime: JsRuntime,
should_break_on_first_statement: bool,
exit_code: ExitCode,
- js_run_tests_callback: v8::Global<v8::Function>,
- js_run_benchmarks_callback: v8::Global<v8::Function>,
- js_enable_test_callback: v8::Global<v8::Function>,
- js_enable_bench_callback: v8::Global<v8::Function>,
}
pub struct WorkerOptions {
@@ -99,15 +92,6 @@ pub struct WorkerOptions {
pub stdio: Stdio,
}
-fn grab_cb(
- scope: &mut v8::HandleScope,
- path: &str,
-) -> v8::Global<v8::Function> {
- let cb = JsRuntime::eval::<v8::Function>(scope, path)
- .unwrap_or_else(|| panic!("{} must be defined", path));
- v8::Global::new(scope, cb)
-}
-
impl Default for WorkerOptions {
fn default() -> Self {
Self {
@@ -267,29 +251,10 @@ impl MainWorker {
);
}
- let (
- js_run_tests_callback,
- js_run_benchmarks_callback,
- js_enable_test_callback,
- js_enable_bench_callback,
- ) = {
- let scope = &mut js_runtime.handle_scope();
- (
- grab_cb(scope, "__bootstrap.testing.runTests"),
- grab_cb(scope, "__bootstrap.testing.runBenchmarks"),
- grab_cb(scope, "__bootstrap.testing.enableTest"),
- grab_cb(scope, "__bootstrap.testing.enableBench"),
- )
- };
-
Self {
js_runtime,
should_break_on_first_statement: options.should_break_on_first_statement,
exit_code,
- js_run_tests_callback,
- js_run_benchmarks_callback,
- js_enable_test_callback,
- js_enable_bench_callback,
}
}
@@ -377,65 +342,6 @@ impl MainWorker {
self.evaluate_module(id).await
}
- /// Run tests declared with `Deno.test()`. Test events will be dispatched
- /// by calling ops which are currently only implemented in the CLI crate.
- // TODO(nayeemrmn): Move testing ops to deno_runtime and redesign/unhide.
- #[doc(hidden)]
- pub async fn run_tests(
- &mut self,
- shuffle: &Option<u64>,
- ) -> Result<(), AnyError> {
- let promise = {
- let scope = &mut self.js_runtime.handle_scope();
- let cb = self.js_run_tests_callback.open(scope);
- let this = v8::undefined(scope).into();
- let options =
- serde_v8::to_v8(scope, json!({ "shuffle": shuffle })).unwrap();
- let promise = cb.call(scope, this, &[options]).unwrap();
- v8::Global::new(scope, promise)
- };
- self.js_runtime.resolve_value(promise).await?;
- Ok(())
- }
-
- /// Run benches declared with `Deno.bench()`. Bench events will be dispatched
- /// by calling ops which are currently only implemented in the CLI crate.
- // TODO(nayeemrmn): Move benchmark ops to deno_runtime and redesign/unhide.
- #[doc(hidden)]
- pub async fn run_benchmarks(&mut self) -> Result<(), AnyError> {
- let promise = {
- let scope = &mut self.js_runtime.handle_scope();
- let cb = self.js_run_benchmarks_callback.open(scope);
- let this = v8::undefined(scope).into();
- let promise = cb.call(scope, this, &[]).unwrap();
- v8::Global::new(scope, promise)
- };
- self.js_runtime.resolve_value(promise).await?;
- Ok(())
- }
-
- /// Enable `Deno.test()`. If this isn't called before executing user code,
- /// `Deno.test()` calls will noop.
- // TODO(nayeemrmn): Move testing ops to deno_runtime and redesign/unhide.
- #[doc(hidden)]
- pub fn enable_test(&mut self) {
- let scope = &mut self.js_runtime.handle_scope();
- let cb = self.js_enable_test_callback.open(scope);
- let this = v8::undefined(scope).into();
- cb.call(scope, this, &[]).unwrap();
- }
-
- /// Enable `Deno.bench()`. If this isn't called before executing user code,
- /// `Deno.bench()` calls will noop.
- // TODO(nayeemrmn): Move benchmark ops to deno_runtime and redesign/unhide.
- #[doc(hidden)]
- pub fn enable_bench(&mut self) {
- let scope = &mut self.js_runtime.handle_scope();
- let cb = self.js_enable_bench_callback.open(scope);
- let this = v8::undefined(scope).into();
- cb.call(scope, this, &[]).unwrap();
- }
-
fn wait_for_inspector_session(&mut self) {
if self.should_break_on_first_statement {
self
@@ -542,107 +448,3 @@ impl MainWorker {
Ok(local_value.is_false())
}
}
-
-#[cfg(test)]
-mod tests {
- use super::*;
- use deno_core::resolve_url_or_path;
-
- fn create_test_worker() -> MainWorker {
- let main_module = resolve_url_or_path("./hello.js").unwrap();
- let permissions = Permissions::default();
-
- let options = WorkerOptions {
- bootstrap: BootstrapOptions {
- args: vec![],
- cpu_count: 1,
- debug_flag: false,
- enable_testing_features: false,
- locale: deno_core::v8::icu::get_language_tag(),
- location: None,
- no_color: true,
- is_tty: false,
- runtime_version: "x".to_string(),
- ts_version: "x".to_string(),
- unstable: false,
- user_agent: "x".to_string(),
- inspect: false,
- },
- extensions: vec![],
- startup_snapshot: None,
- unsafely_ignore_certificate_errors: None,
- root_cert_store: None,
- seed: None,
- format_js_error_fn: None,
- source_map_getter: None,
- web_worker_preload_module_cb: Arc::new(|_| unreachable!()),
- web_worker_pre_execute_module_cb: Arc::new(|_| unreachable!()),
- create_web_worker_cb: Arc::new(|_| unreachable!()),
- maybe_inspector_server: None,
- should_break_on_first_statement: false,
- module_loader: Rc::new(FsModuleLoader),
- npm_resolver: None,
- get_error_class_fn: None,
- cache_storage_dir: None,
- origin_storage_dir: None,
- blob_store: BlobStore::default(),
- broadcast_channel: InMemoryBroadcastChannel::default(),
- shared_array_buffer_store: None,
- compiled_wasm_module_store: None,
- stdio: Default::default(),
- };
-
- MainWorker::bootstrap_from_options(main_module, permissions, options)
- }
-
- #[tokio::test]
- async fn execute_mod_esm_imports_a() {
- let p = test_util::testdata_path().join("runtime/esm_imports_a.js");
- let module_specifier = resolve_url_or_path(&p.to_string_lossy()).unwrap();
- let mut worker = create_test_worker();
- let result = worker.execute_main_module(&module_specifier).await;
- if let Err(err) = result {
- eprintln!("execute_mod err {:?}", err);
- }
- if let Err(e) = worker.run_event_loop(false).await {
- panic!("Future got unexpected error: {:?}", e);
- }
- }
-
- #[tokio::test]
- async fn execute_mod_circular() {
- let p = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR"))
- .parent()
- .unwrap()
- .join("tests/circular1.js");
- let module_specifier = resolve_url_or_path(&p.to_string_lossy()).unwrap();
- let mut worker = create_test_worker();
- let result = worker.execute_main_module(&module_specifier).await;
- if let Err(err) = result {
- eprintln!("execute_mod err {:?}", err);
- }
- if let Err(e) = worker.run_event_loop(false).await {
- panic!("Future got unexpected error: {:?}", e);
- }
- }
-
- #[tokio::test]
- async fn execute_mod_resolve_error() {
- // "foo" is not a valid module specifier so this should return an error.
- let mut worker = create_test_worker();
- let module_specifier = resolve_url_or_path("does-not-exist").unwrap();
- let result = worker.execute_main_module(&module_specifier).await;
- assert!(result.is_err());
- }
-
- #[tokio::test]
- async fn execute_mod_002_hello() {
- // This assumes cwd is project root (an assumption made throughout the
- // tests).
- let mut worker = create_test_worker();
- let p = test_util::testdata_path().join("run/001_hello.js");
- let module_specifier = resolve_url_or_path(&p.to_string_lossy()).unwrap();
- let result = worker.execute_main_module(&module_specifier).await;
- assert!(result.is_ok());
- }
-}