diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2024-03-05 01:17:39 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-05 01:17:39 +0000 |
commit | d9fa2dd5505a773ac2c8eb6ca2a8bbd237aca35d (patch) | |
tree | ec5b0008f8095d3c03e6af31685ed99569163dd9 /runtime | |
parent | 0022c35a237773b50a771b0fef48cac734f7a9d6 (diff) |
chore: upgrade deno_core (#22699)
Co-authored-by: Matt Mastracci <matthew@mastracci.com>
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/shared.rs | 33 | ||||
-rw-r--r-- | runtime/snapshot.rs | 15 | ||||
-rw-r--r-- | runtime/web_worker.rs | 24 | ||||
-rw-r--r-- | runtime/worker.rs | 24 |
4 files changed, 34 insertions, 62 deletions
diff --git a/runtime/shared.rs b/runtime/shared.rs index 04fcdcfdb..fc91be145 100644 --- a/runtime/shared.rs +++ b/runtime/shared.rs @@ -7,8 +7,9 @@ use deno_ast::SourceTextInfo; use deno_core::error::AnyError; use deno_core::extension; use deno_core::Extension; -use deno_core::ExtensionFileSource; -use deno_core::ExtensionFileSourceCode; +use deno_core::ModuleCodeString; +use deno_core::ModuleName; +use deno_core::SourceMapData; use std::path::Path; extension!(runtime, @@ -56,36 +57,38 @@ extension!(runtime, customizer = |ext: &mut Extension| { #[cfg(not(feature = "exclude_runtime_main_js"))] { - ext.esm_files.to_mut().push(ExtensionFileSource::new("ext:runtime_main/js/99_main.js", include_str!("./js/99_main.js"))); + use deno_core::ascii_str_include; + use deno_core::ExtensionFileSource; + ext.esm_files.to_mut().push(ExtensionFileSource::new("ext:runtime_main/js/99_main.js", ascii_str_include!("./js/99_main.js"))); ext.esm_entry_point = Some("ext:runtime_main/js/99_main.js"); } } ); pub fn maybe_transpile_source( - source: &mut ExtensionFileSource, -) -> Result<(), AnyError> { + name: ModuleName, + source: ModuleCodeString, +) -> Result<(ModuleCodeString, Option<SourceMapData>), AnyError> { // Always transpile `node:` built-in modules, since they might be TypeScript. - let media_type = if source.specifier.starts_with("node:") { + let media_type = if name.starts_with("node:") { MediaType::TypeScript } else { - MediaType::from_path(Path::new(&source.specifier)) + MediaType::from_path(Path::new(&name)) }; match media_type { MediaType::TypeScript => {} - MediaType::JavaScript => return Ok(()), - MediaType::Mjs => return Ok(()), + MediaType::JavaScript => return Ok((source, None)), + MediaType::Mjs => return Ok((source, None)), _ => panic!( "Unsupported media type for snapshotting {media_type:?} for file {}", - source.specifier + name ), } - let code = source.load()?; let parsed = deno_ast::parse_module(ParseParams { - specifier: deno_core::url::Url::parse(source.specifier).unwrap(), - text_info: SourceTextInfo::from_string(code.as_str().to_owned()), + specifier: deno_core::url::Url::parse(&name).unwrap(), + text_info: SourceTextInfo::from_string(source.as_str().to_owned()), media_type, capture_tokens: false, scope_analysis: false, @@ -97,7 +100,5 @@ pub fn maybe_transpile_source( ..Default::default() })?; - source.code = - ExtensionFileSourceCode::Computed(transpiled_source.text.into()); - Ok(()) + Ok((transpiled_source.text.into(), None)) } diff --git a/runtime/snapshot.rs b/runtime/snapshot.rs index e48af43ff..edfef39c2 100644 --- a/runtime/snapshot.rs +++ b/runtime/snapshot.rs @@ -13,6 +13,7 @@ use deno_http::DefaultHttpPropertyExtractor; use std::io::Write; use std::path::Path; use std::path::PathBuf; +use std::rc::Rc; use std::sync::Arc; #[derive(Clone)] @@ -204,7 +205,7 @@ pub fn create_runtime_snapshot( // NOTE(bartlomieju): ordering is important here, keep it in sync with // `runtime/worker.rs`, `runtime/web_worker.rs` and `runtime/snapshot.rs`! let fs = std::sync::Arc::new(deno_fs::RealFs); - let mut extensions: Vec<Extension> = vec![ + let extensions: Vec<Extension> = vec![ deno_webidl::deno_webidl::init_ops_and_esm(), deno_console::deno_console::init_ops_and_esm(), deno_url::deno_url::init_ops_and_esm(), @@ -257,20 +258,14 @@ pub fn create_runtime_snapshot( ops::web_worker::deno_web_worker::init_ops(), ]; - for extension in &mut extensions { - for source in extension.esm_files.to_mut() { - maybe_transpile_source(source).unwrap(); - } - for source in extension.js_files.to_mut() { - maybe_transpile_source(source).unwrap(); - } - } - let output = create_snapshot( CreateSnapshotOptions { cargo_manifest_dir: env!("CARGO_MANIFEST_DIR"), startup_snapshot: None, extensions, + extension_transpiler: Some(Rc::new(|specifier, source| { + maybe_transpile_source(specifier, source) + })), with_runtime_cb: Some(Box::new(|rt| { let isolate = rt.v8_isolate(); let scope = &mut v8::HandleScope::new(isolate); diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs index 97b855c56..6571da6c2 100644 --- a/runtime/web_worker.rs +++ b/runtime/web_worker.rs @@ -2,6 +2,7 @@ use crate::inspector_server::InspectorServer; use crate::ops; use crate::permissions::PermissionsContainer; +use crate::shared::maybe_transpile_source; use crate::shared::runtime; use crate::tokio_util::create_and_run_current_thread; use crate::worker::import_meta_resolve_callback; @@ -498,16 +499,6 @@ impl WebWorker { extension.esm_files = std::borrow::Cow::Borrowed(&[]); extension.esm_entry_point = None; } - #[cfg(not(feature = "only_snapshotted_js_sources"))] - { - use crate::shared::maybe_transpile_source; - for source in extension.esm_files.to_mut() { - maybe_transpile_source(source).unwrap(); - } - for source in extension.js_files.to_mut() { - maybe_transpile_source(source).unwrap(); - } - } } extensions.extend(std::mem::take(&mut options.extensions)); @@ -535,6 +526,9 @@ impl WebWorker { shared_array_buffer_store: options.shared_array_buffer_store.clone(), compiled_wasm_module_store: options.compiled_wasm_module_store.clone(), extensions, + extension_transpiler: Some(Rc::new(|specifier, source| { + maybe_transpile_source(specifier, source) + })), inspector: options.maybe_inspector_server.is_some(), feature_checker: Some(options.feature_checker.clone()), op_metrics_factory_fn, @@ -664,10 +658,7 @@ impl WebWorker { &mut self, module_specifier: &ModuleSpecifier, ) -> Result<ModuleId, AnyError> { - self - .js_runtime - .load_main_module(module_specifier, None) - .await + self.js_runtime.load_main_es_module(module_specifier).await } /// Loads and instantiates specified JavaScript module as "side" module. @@ -675,10 +666,7 @@ impl WebWorker { &mut self, module_specifier: &ModuleSpecifier, ) -> Result<ModuleId, AnyError> { - self - .js_runtime - .load_side_module(module_specifier, None) - .await + self.js_runtime.load_side_es_module(module_specifier).await } /// Loads, instantiates and executes specified JavaScript module. diff --git a/runtime/worker.rs b/runtime/worker.rs index d19e520c9..ab3e5fa87 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -45,6 +45,7 @@ use log::debug; use crate::inspector_server::InspectorServer; use crate::ops; use crate::permissions::PermissionsContainer; +use crate::shared::maybe_transpile_source; use crate::shared::runtime; use crate::BootstrapOptions; @@ -445,16 +446,6 @@ impl MainWorker { extension.esm_files = std::borrow::Cow::Borrowed(&[]); extension.esm_entry_point = None; } - #[cfg(not(feature = "only_snapshotted_js_sources"))] - { - use crate::shared::maybe_transpile_source; - for source in extension.esm_files.to_mut() { - maybe_transpile_source(source).unwrap(); - } - for source in extension.js_files.to_mut() { - maybe_transpile_source(source).unwrap(); - } - } } extensions.extend(std::mem::take(&mut options.extensions)); @@ -481,6 +472,9 @@ impl MainWorker { shared_array_buffer_store: options.shared_array_buffer_store.clone(), compiled_wasm_module_store: options.compiled_wasm_module_store.clone(), extensions, + extension_transpiler: Some(Rc::new(|specifier, source| { + maybe_transpile_source(specifier, source) + })), inspector: options.maybe_inspector_server.is_some(), is_main: true, feature_checker: Some(options.feature_checker.clone()), @@ -579,10 +573,7 @@ impl MainWorker { &mut self, module_specifier: &ModuleSpecifier, ) -> Result<ModuleId, AnyError> { - self - .js_runtime - .load_main_module(module_specifier, None) - .await + self.js_runtime.load_main_es_module(module_specifier).await } /// Loads and instantiates specified JavaScript module as "side" module. @@ -590,10 +581,7 @@ impl MainWorker { &mut self, module_specifier: &ModuleSpecifier, ) -> Result<ModuleId, AnyError> { - self - .js_runtime - .load_side_module(module_specifier, None) - .await + self.js_runtime.load_side_es_module(module_specifier).await } /// Executes specified JavaScript module. |