summaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2024-03-05 01:17:39 +0000
committerGitHub <noreply@github.com>2024-03-05 01:17:39 +0000
commitd9fa2dd5505a773ac2c8eb6ca2a8bbd237aca35d (patch)
treeec5b0008f8095d3c03e6af31685ed99569163dd9 /runtime
parent0022c35a237773b50a771b0fef48cac734f7a9d6 (diff)
chore: upgrade deno_core (#22699)
Co-authored-by: Matt Mastracci <matthew@mastracci.com>
Diffstat (limited to 'runtime')
-rw-r--r--runtime/shared.rs33
-rw-r--r--runtime/snapshot.rs15
-rw-r--r--runtime/web_worker.rs24
-rw-r--r--runtime/worker.rs24
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.